xref: /haiku/docs/develop/kernel/arch/arm/rpi2.rst (revision 6f80a9801fedbe7355c4360bd204ba746ec3ec2d)
1Raspberry Pi 2
2##############
3
4-  http://raspberrypi.org
5
6Hardware Information
7====================
8
9-  ARMv7 Architecture
10-  Broadcom BCM2836 (SoC)
11
12   -  Includes Quad ARM Cortex-A7 CPU @ 900 MHz
13   -  Includes VideoCore IV GPU
14
15-  SD Card Storage
16-  1 GB RAM
17-  Video Outputs
18
19   -  HDMI Video Output
20   -  Composite Video Output
21
22-  Ethernet 10/100 Mbit/s
23-  4x USB 2.0
24
25Setting up the Haiku SD card
26============================
27
28The Raspberry Pi SD card generally uses the MBR file system layout
29below. Partition 1 is all that is required to boot an OS.
30
31-  partition 1 – FAT32, bootable flag, type ‘c’
32-  partition 2 – BeFS, Haiku filesystem, type ‘eb’
33
34Boot Partition
35--------------
36
37Required Files
38~~~~~~~~~~~~~~
39
40-  bootcode.bin: 2nd stage bootloader
41-  start.elf: The GPU binary firmware image
42-  fixup.dat: Additional code for the GPU
43-  bcm2709-rpi-2-b.dtb: FDT binary for the Raspberry Pi 2B
44-  bcm2710-rpi-2-b.dtb: FDT binary for the Raspberry Pi 2B rev 1.2
45-  config.txt: A configuration file read by the Pi to start u-boot.bin
46-  u-boot.bin: u-boot loader for the Pi 2
47-  haiku_loader_linux.ub: Haiku Loader
48-  haiku-floppyboot.tgz.ub: Compressed initial ram image with Haiku
49   kernel
50
51Optional Files
52~~~~~~~~~~~~~~
53
54-  vlls directory: Additional GPU code, e.g. extra codecs.
55-  uEnv.txt: u-boot configuration script to automate boot.
56
57Compiling
58=========
59
60-  Create your ARM work directory
61   ``mkdir generated.arm; cd generated.arm``
62-  Build an ARM toolchain using
63   ``../configure --build-cross-tools arm ../../buildtools --target-board=rpi2``
64-  Build our loader using ``jam -q haiku_loader_linux.ub``
65-  Build our initial ram disk using ``jam -q haiku-floppyboot.tgz.ub``
66
67Booting
68=======
69
701. SOC finds bootcode.bin
712. bootcode.bin runs start.elf
723. start.elf reads config.txt and start u-boot
734. u-boot.bin starts the Haiku loader
745. Haiku loader boots Haiku kernel
75
76config.txt Options
77------------------
78
79::
80
81   kernel=u-boot.bin
82
83u-boot startup
84--------------
85
86These will be condensed and automated long-term via uEnv.txt :-)
87
88-  ``fatload mmc 0 ${fdt_addr_r} bcm2836-rpi-2-b.dtb``
89-  ``fdt addr ${fdt_addr_r}``
90-  ``fatload mmc 0 ${ramdisk_addr_r} haiku-floppyboot.tgz.ub``
91-  ``fatload mmc 0 ${kernel_addr_r} haiku_loader_linux.ub``
92-  ``bootm ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}``
93
94Additional Information
95======================
96
97-  `Latest Raspberry Pi
98   firmware <http://github.com/raspberrypi/firmware/tree/master/boot>`__
99-  `config.txt options <http://www.elinux.org/RPiconfig>`__
100