SPI Boot
Updated 2019.12.09
SPI Flash Layout
partition | start | size | requirement | ||
---|---|---|---|---|---|
sector | bytes | sector | bytes | ||
mbr | 0 | 0 | 1 | 512 bytes | rk3326_header_miniloader_spiboot.img |
primary gpt | 1 | 512 bytes | 33 | 16.5 kB | |
reserved | 30 | 15 kB | |||
env | 64 | 32 kB | 64 | 32 kB | |
miniloader | 128 | 64 kB | 1920 | 960 kB | |
uboot | 2048 | 1 MB | 2048 | 1 MB | uboot_spi.img |
trust | 4096 | 2 MB | 4096 | 2 MB | trust_spi.img |
dtb | 8192 | 4 MB | 200 | 100 kB | odroidgo2-kernel.dtb |
logo1 | 8392 | 4196 kB | 400 | 200 kB | logo_hardkernel.bmp.gz |
logo2 | 8792 | 4396 kB | 400 | 200 kB | low_battery.bmp.gz |
logo3 | 9192 | 4596 kB | 400 | 200 kB | recovery.bmp.gz |
logo4 | 9592 | 4796 kB | 400 | 200 kB | system_error.bmp.gz |
logo5 | 9992 | 4996 kB | 400 | 200 kB | no_sdcard.bmp.gz |
reserved 2 | 10392 | 5196 kB | - | - |
How to build uboot and trust images for SPI Boot
Use the option, odroidgo2-spi to build boot loaders for SPI Boot.
$ git clone https://github.com/hardkernel/u-boot.git -b odroidgoA-v2017.09 $ cd u-boot $ ./make.sh odroidgo2-spi
Then, under the folder u-boot/sd_fuse, two new files will be generated.
And you can find one pre-built image, rk3326_header_miniloader_spiboot.img in same path.
- rk3326_header_miniloader_spiboot.img
- uboot_spi.img
- trust_spi.img
How to upgrade SPI Flash from SD Boot
1. Build uboot for SD boot.
$ git clone https://github.com/hardkernel/u-boot.git -b odroidgoA-v2017.09 $ cd u-boot $ make disticlean $ ./make.sh odroidgo2
2. Build uboot for SPI boot.
$ git clone https://github.com/hardkernel/u-boot.git -b odroidgoA-v2017.09 $ cd u-boot $ make disticlean $ ./make.sh odroidgo2-spi
3. Prepare a recovery image by running this script.
$ cd u-boot $ ./build_recovery.sh
Then, sdcard_recovery.img will be generated in sd_fuse folder.
4. Write sdcard_recovery.img to a blank sd card. Check the device path of your USB card reader and write sdcard_recovery.img to your blank sd card using dd.
$ sudo dd if=sd_fuse/sdcard_recovery.img of=<device/path/of/your/card> conv=fsync $ sync
5. Boot from SD card.
6. Now recovery will run automatically.
And you can see display logo and error messages on LCD.
SPI Boot Scenario
TBD
- 2019.11.15 version
After booting from SPI flash, u-boot will find kernel and dtb files in vfat of sd card,
then jump to its kernel stage automatically.