bzt 586ddf60ac Updated FS/Z 11 ماه پیش
..
Makefile d0c66e7097 Updated binaries and BIOS extra check 2 سال پیش
OLVASSEL.md af218c5185 Support for RPi4 4 سال پیش
README.md af218c5185 Support for RPi4 4 سال پیش
boot.S e03097211b Update dates 3 سال پیش
bootboot.c 6977799528 Handle \r\n on serial properly 3 سال پیش
font.psf 52c96a7d88 Initial commit 6 سال پیش
fs.h 586ddf60ac Updated FS/Z 11 ماه پیش
link.ld a2653f0000 Added initstack symbol to the spec 3 سال پیش
mkboot.c e03097211b Update dates 3 سال پیش
raspbootcom.c eba8fa8451 Added initrd over serial to UEFI and docs 4 سال پیش
tinf.h 52c96a7d88 Initial commit 6 سال پیش
tinflate.c 52c96a7d88 Initial commit 6 سال پیش

README.md

BOOTBOOT Raspberry Pi 3 / 4 Implementation

See BOOTBOOT Protocol for common details.

On Raspberry Pi 3+ board the bootboot.img is loaded from the boot (or firmware) partition on SD card as kernel8.img by start.elf. For separating firmware and boot partitions see documentation.

Machine state

In addition to standard mappings, the MMIO is also mapped in kernel space:

   -128M         MMIO      (0xFFFFFFFFF8000000)

Code is running in supervisor mode, at EL1 on all cores. Dummy exception handlers are installed, but your kernel should use it's own handlers as soon as possible.

File system drivers

For boot partition, RPi3 version expects FAT16 or FAT32 file systems (if the initrd is a file and does not occupy the whole boot partition). The initrd can also be loaded over serial line, running raspbootcom or USBImager on a remote machine.

Gzip compression is not recommended as reading from SD card is considerably faster than uncompressing.

Installation

  1. Copy bootboot.img to FS0:\KERNEL8.IMG.

  2. You'll need other firmware files as well (bootcode.bin, start.elf, fixup,dat).

  3. If you have used a GPT disk with ESP as boot partition, then you need to map it in MBR so that Raspberry Pi firmware could find those files. The mkboot utility will do that for you.

Limitations

  • Initrd in ROM is not possible
  • Maps only the first 1G of RAM.
  • Cards other than SDHC Class 10 not supported.
  • Raspberry Pi does not have an on-board RTC, so always 0000-00-00 00:00:00 returned as bootboot.datetime.
  • Only supports SHA-XOR-CBC cipher, no AES