💾 Archived View for lofi.haiku-os.org › docs › develop › kernel › arch › arm › rpi2.gmi captured on 2024-03-21 at 15:26:25. Gemini links have been rewritten to link to archived content
View Raw
More Information
⬅️ Previous capture (2023-09-28)
-=-=-=-=-=-=-
Raspberry Pi 2
http://raspberrypi.org
Hardware Information
- Includes Quad ARM Cortex-A7 CPU @ 900 MHz
- Includes VideoCore IV GPU
Setting up the Haiku SD card
The Raspberry Pi SD card generally uses the MBR file system layout below. Partition 1 is all that is required to boot an OS.
- partition 1 – FAT32, bootable flag, type ‘c’
- partition 2 – BeFS, Haiku filesystem, type ‘eb’
Boot Partition
Required Files
- bootcode.bin: 2nd stage bootloader
- start.elf: The GPU binary firmware image
- fixup.dat: Additional code for the GPU
- bcm2709-rpi-2-b.dtb: FDT binary for the Raspberry Pi 2B
- bcm2710-rpi-2-b.dtb: FDT binary for the Raspberry Pi 2B rev 1.2
- config.txt: A configuration file read by the Pi to start u-boot.bin
- u-boot.bin: u-boot loader for the Pi 2
- haiku_loader_linux.ub: Haiku Loader
- haiku-floppyboot.tgz.ub: Compressed initial ram image with Haiku kernel
Optional Files
- vlls directory: Additional GPU code, e.g. extra codecs.
- uEnv.txt: u-boot configuration script to automate boot.
Compiling
- Create your ARM work directory "mkdir generated.arm; cd generated.arm"
- Build an ARM toolchain using "../configure --build-cross-tools arm ../../buildtools --target-board=rpi2"
- Build our loader using "jam -q haiku_loader_linux.ub"
- Build our initial ram disk using "jam -q haiku-floppyboot.tgz.ub"
Booting
1. SOC finds bootcode.bin
2. bootcode.bin runs start.elf
3. start.elf reads config.txt and start u-boot
4. u-boot.bin starts the Haiku loader
5. Haiku loader boots Haiku kernel
config.txt Options
kernel=u-boot.bin
u-boot startup
These will be condensed and automated long-term via uEnv.txt :-)
- "fatload mmc 0 ${fdt_addr_r} bcm2836-rpi-2-b.dtb"
- "fatload mmc 0 ${ramdisk_addr_r} haiku-floppyboot.tgz.ub"
- "fatload mmc 0 ${kernel_addr_r} haiku_loader_linux.ub"
- "bootm ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}"
Additional Information
Latest Raspberry Pi
firmware
config.txt options