David Karoly ba0c49863a docs/arm: add info on Raspberry Pi 4
Change-Id: Ic8cc47394c9e49f05e30b5ba54ff70557b1e2c47
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5237
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2022-04-23 09:18:03 +00:00

96 lines
2.5 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 4
##############
- http://raspberrypi.org
Hardware Information
====================
- ARMv8 Architecture (64-bit)
- Broadcom BCM2711 (SoC)
- Includes Quad ARM Cortex-A72 CPU @ 1.8 GHz
- Includes VideoCore VI GPU
- SD Card Storage
- 1, 2, 4 or 8 GB RAM
- Video Outputs
- 2x HDMI Video Output via micro-HDMI
- Composite Video Output
- Ethernet 10/100/1000 Mbit/s
- Wifi b/g/n/ac dual band 2.4/5 GHz
- Bluetooth 5.0
- 2x USB 2.0, 2x USB 3.0
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 ef
- partition 2 BeFS, Haiku filesystem, type eb
Boot Partition
--------------
Required Files
~~~~~~~~~~~~~~
- start4.elf: The GPU binary firmware image
- fixup4.dat: Additional code for the GPU
- bcm2711-rpi-4-b.dtb: FDT binary for the Raspberry Pi 4B
- bcm2711-rpi-400.dtb: FDT binary for the Raspberry Pi 400
- config.txt: A configuration file read by the Pi to start u-boot.bin
- u-boot.bin: u-boot loader for the Pi 4
- boot.scr: u-boot loader script for starting Haiku Loader
- uEnv.txt: configuration file for the boot.scr script
- haiku_loader.efi: Haiku Loader
Note: unlike previous Raspberry Pi models, there's no bootcode.bin on the
Raspberry Pi 4 as it's replaced by a boot EEPROM.
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 --cross-tools-source ../../buildtools``
- Build SD card image using ``jam -q -j6 @minimum-mmc``
- Prepare customized SD card using the ``rune`` tool. E.g. ``rune -b rpi4 -i haiku-mmc.image /dev/mmcblk0``
Booting
=======
1. SOC starts the boot EEPROM
2. Boot EEPROM runs start4.elf
3. start4.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>`__