xref: /haiku/docs/develop/kernel/arch/arm/rpi3.rst (revision 6f80a9801fedbe7355c4360bd204ba746ec3ec2d)
1Raspberry Pi 3
2##############
3
4-  http://raspberrypi.org
5
6Hardware Information
7====================
8
9-  ARMv8 Architecture (64-bit)
10-  Broadcom BCM2837 (SoC)
11
12   -  Includes Quad ARM Cortex-A53 CPU @ 1.2 GHz
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-  Wifi b/g/n single band 2.4 GHz
24-  Bluetooth 4.1 BLE
25-  4x USB 2.0
26
27Setting up the Haiku SD card
28============================
29
30The Raspberry Pi SD card generally uses the MBR file system layout
31below. Partition 1 is all that is required to boot an OS.
32
33-  partition 1 – FAT32, bootable flag, type ‘c’
34-  partition 2 – BeFS, Haiku filesystem, type ‘eb’
35
36Boot Partition
37--------------
38
39Required Files
40~~~~~~~~~~~~~~
41
42-  bootcode.bin: 2nd stage bootloader
43-  start.elf: The GPU binary firmware image
44-  fixup.dat: Additional code for the GPU
45-  bcm2710-rpi-3-b.dtb: FDT binary for the Raspberry Pi 3B
46-  bcm2710-rpi-3-b-plus.dtb: FDT binary for the Raspberry Pi 3B+
47-  config.txt: A configuration file read by the Pi to start u-boot.bin
48-  u-boot.bin: u-boot loader for the Pi 3
49-  boot.scr: u-boot loader script for starting Haiku Loader
50-  uEnv.txt: configuration file for the boot.scr script
51-  haiku_loader.efi: Haiku Loader
52
53Optional Files
54~~~~~~~~~~~~~~
55
56-  vlls directory: Additional GPU code, e.g. extra codecs.
57-  uEnv.txt: u-boot configuration script to automate boot.
58
59Compiling Haiku and preparing SD card
60=====================================
61
62-  Create your ARM work directory
63   ``mkdir generated.arm; cd generated.arm``
64-  Build an ARM toolchain using
65   ``../configure --build-cross-tools arm --cross-tools-source ../../buildtools``
66-  Build SD card image using ``jam -q -j6 @minimum-mmc``
67-  Prepare customized SD card using the ``rune`` tool. E.g. ``rune -b rpi3 -i haiku-mmc.image /dev/mmcblk0``
68-  Ensure that partition 1 has partition type fat16: ``parted /dev/mmcblk0 set 1 esp off``
69
70Booting
71=======
72
731. SOC finds bootcode.bin
742. bootcode.bin runs start.elf
753. start.elf reads config.txt and start u-boot
764. u-boot.bin starts the Haiku loader
775. Haiku loader boots Haiku kernel
78
79config.txt Options
80------------------
81
82::
83
84   uart_2ndstage=1
85   enable_uart=1
86   kernel=u-boot.bin
87
88
89Additional Information
90======================
91
92-  `Latest Raspberry Pi
93   firmware <http://github.com/raspberrypi/firmware/tree/master/boot>`__
94-  `config.txt options <http://www.elinux.org/RPiconfig>`__
95