haiku/docs/develop/kernel/arch/arm/rpi3.rst
David Karoly be7333a8d7 docs/arm: add info on Raspberry Pi 3
Change-Id: Iee7bd2f99dfc11930a97683c2cf30c51110d6726
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5229
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2022-04-22 10:00:39 +00:00

94 lines
2.4 KiB
ReStructuredText
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Raspberry Pi 3
##############
- http://raspberrypi.org
Hardware Information
====================
- ARMv8 Architecture (64-bit)
- Broadcom BCM2837 (SoC)
- Includes Quad ARM Cortex-A53 CPU @ 1.2 GHz
- Includes VideoCore IV GPU
- SD Card Storage
- 1 GB RAM
- Video Outputs
- HDMI Video Output
- Composite Video Output
- Ethernet
- Wifi b/g/n single band 2.4 GHz
- Bluetooth
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
- bcm2710-rpi-3-b.dtb: FDT binary for the Raspberry Pi 3B
- bcm2710-rpi-3-b-plus.dtb: FDT binary for the Raspberry Pi 3B+
- config.txt: A configuration file read by the Pi to start u-boot.bin
- u-boot.bin: u-boot loader for the Pi 3
- boot.scr: u-boot loader script for starting Haiku Loader
- uEnv.txt: configuration file for the boot.scr script
- haiku_loader.efi: Haiku Loader
Optional Files
~~~~~~~~~~~~~~
- vlls directory: Additional GPU code, e.g. extra codecs.
- uEnv.txt: u-boot configuration script to automate boot.
Compiling Haiku and preparing SD card
=====================================
- Create your ARM work directory
``mkdir generated.arm; cd generated.arm``
- Build an ARM toolchain using
``../configure --build-cross-tools arm ../../buildtools``
- Build SD card image using ``jam -q -j6 @minimum-mmc``
- Prepare customized SD card using the ``rune`` tool. E.g. ``rune -b rpi3 -i haiku-mmc.image /dev/mmcblk0``
- Ensure that partition 1 has partition type fat16: ``parted /dev/mmcblk0 set 1 esp off``
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
------------------
::
uart_2ndstage=1
enable_uart=1
kernel=u-boot.bin
Additional Information
======================
- `Latest Raspberry Pi
firmware <http://github.com/raspberrypi/firmware/tree/master/boot>`__
- `config.txt options <http://www.elinux.org/RPiconfig>`__