097f72e92c
Change-Id: I968752c3eae56bee099f3cec5db7856dbe007592 Reviewed-on: https://review.haiku-os.org/c/haiku/+/5232 Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
98 lines
2.4 KiB
ReStructuredText
98 lines
2.4 KiB
ReStructuredText
Raspberry Pi 2
|
||
##############
|
||
|
||
- http://raspberrypi.org
|
||
|
||
Hardware Information
|
||
====================
|
||
|
||
- ARMv7 Architecture
|
||
- Broadcom BCM2836 (SoC)
|
||
|
||
- Includes Quad ARM Cortex-A7 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
|
||
- fixup.dat: Additional code for 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
|
||
- 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>`__
|