diff --git a/docs/develop/ports/arm/raspberry_pi.md b/docs/develop/ports/arm/rpi1.md similarity index 51% rename from docs/develop/ports/arm/raspberry_pi.md rename to docs/develop/ports/arm/rpi1.md index 4f555d5224..7729cf101f 100644 --- a/docs/develop/ports/arm/raspberry_pi.md +++ b/docs/develop/ports/arm/rpi1.md @@ -27,35 +27,45 @@ The Raspberry Pi SD card generally uses the MBR file system layout below. Partit * bootcode.bin : 2nd stage bootloader * start.elf: The GPU binary firmware image -* haiku_loader: Haiku Loader -* haiku-floppyboot.tgz: Compressed image with Haiku kernel -* config.txt: A configuration file read by the GPU. +* config.txt: A configuration file read by the Pi to start u-boot.bin +* u-boot.bin: u-boot loader for the Pi 2 +* bcm2835-rpi-b.dtb: FDT binary for the Raspberry 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 work directory `mkdir generated.arm; cd generated.arm` -* Build an ARM toolchain using `../configure --build-cross-tools arm ../../buildtools` -* Build our loader using `jam -q -sHAIKU_BOOT_BOARD=raspberry_pi -sHAIKU_BOOT_PLATFORM=raspberrypi_arm haiku_loader` -* Build our file system using `jam -q -sHAIKU_BOOT_BOARD=raspberry_pi -sHAIKU_BOOT_PLATFORM=raspberrypi_arm haiku-floppyboot.tgz` +* Create your ARM work directory `mkdir generated.arm; cd generated.arm` +* Build an ARM toolchain using `../configure --build-cross-tools arm ../../buildtools --target-board=rpi1` +* 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 -2. start.elf reads config.txt and cmdline.txt -3. start.elf runs specified binary at specified address +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=haiku_loader - kernel_address=0x0 - disable_commandline_tags=1 - ramfsfile=haiku-floppyboot.tgz - ramfsaddr=0x04000000 + 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` +* `fdt addr ${fdt_addr_r}` +* `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 diff --git a/docs/develop/ports/arm/rpi2.md b/docs/develop/ports/arm/rpi2.md new file mode 100644 index 0000000000..df19f3d24d --- /dev/null +++ b/docs/develop/ports/arm/rpi2.md @@ -0,0 +1,74 @@ +# Raspberry Pi 2 +* http://raspberrypi.org + +# Hardware Information + +* ARMv7 Architecture +* Broadcom BCM2836 (SoC) + * Includes Quad ARM1176JZF-S CPU @ 900 MHz + * Includes VideoCore IV GPU +* SD Card Storage +* 1 GB RAM +* Video Outputs + * HDMI Video Output + * Composite Video Output +* Ethernet + +# 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 +* config.txt: A configuration file read by the Pi to start u-boot.bin +* u-boot.bin: u-boot loader for the Pi 2 +* bcm2836-rpi-2-b.dtb: FDT binary for the Raspberry 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` +* `fdt addr ${fdt_addr_r}` +* `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](http://github.com/raspberrypi/firmware/tree/master/boot) +* [config.txt options](http://www.elinux.org/RPiconfig) +