bztsrc--bootboot/aarch64-rpi/README.md

51 lines
2.1 KiB
Markdown
Raw Permalink Normal View History

2020-02-26 11:54:20 +00:00
BOOTBOOT Raspberry Pi 3 / 4 Implementation
==========================================
2018-06-05 18:34:03 +00:00
See [BOOTBOOT Protocol](https://gitlab.com/bztsrc/bootboot) for common details.
2020-02-26 11:54:20 +00:00
On [Raspberry Pi 3+](https://www.raspberrypi.org/documentation/hardware/raspberrypi/bootmodes/sdcard.md) board the bootboot.img
2018-06-05 18:34:03 +00:00
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](https://gitlab.com/bztsrc/bootboot/blob/master/bootboot_spec_1st_ed.pdf).
Machine state
-------------
In addition to standard mappings, the MMIO is also mapped in kernel space:
```
-128M MMIO (0xFFFFFFFFF8000000)
```
2019-02-07 23:41:34 +00:00
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.
2018-06-05 18:34:03 +00:00
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,
2020-02-26 11:57:02 +00:00
running [raspbootcom](https://gitlab.com/bztsrc/bootboot/blob/master/aarch64-rpi/raspbootcom.c) or
[USBImager](https://gitlab.com/bztsrc/usbimager) on a remote machine.
2018-06-05 18:34:03 +00:00
Gzip compression is not recommended as reading from SD card is considerably faster than uncompressing.
Installation
------------
1. Copy __bootboot.img__ to **_FS0:\KERNEL8.IMG_**.
2019-03-15 01:48:34 +00:00
2. You'll need other [firmware files](https://gitlab.com/raspberrypi/firmware/tree/master/boot) as well (bootcode.bin, start.elf, fixup,dat).
2018-06-05 18:34:03 +00:00
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](https://gitlab.com/bztsrc/bootboot/blob/master/aarch64-rpi/mkboot.c)
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.
2018-11-09 11:43:03 +00:00
- Only supports SHA-XOR-CBC cipher, no AES