[PATCH 0/2] tools: mkimage: add SpacemiT K3 AIHD image support
Junhui Liu <[email protected]>
| Newsgroups | gmane.comp.boot-loaders.u-boot |
|---|---|
| Message-ID | <20260822-spacemit-aihd-v1-0-bf4c41993891__48938.3491383464$1787389142$gmane$org@pigmoral.tech> |
The SpacemiT BootROM loads a first-stage bootloader from storage or over
USB in MaskROM mode. Vendor firmware packages this bootloader as FSBL.bin.
Its headers use the magic "AIHD".
This series documents the AIHD image format and adds the "aihdimage"
mkimage type for the CRC32-protected K3 variant used in non-secure boot
mode. It provides the FSBL packaging needed for future K3 SPL support.
Select K3 with "-n k3" when creating an image.
K1 and K3 secure boot use RSA authentication and are not supported yet.
How to test
-----------
Rebuild mkimage, wrap a small UART test payload, and load it through K3
MaskROM fastboot. The payload is linked at 0xc0801000 because the BootROM
places the complete image at 0xc0800000 and enters the payload after the
4 KiB prefix. UART0 should print "Hello SpacemiT K3!" and then loop
indefinitely.
$ make tools-only_defconfig
$ make tools-only
$ cat > k3-uart.S << 'EOF'
.equ UART0_THR, 0xd4017000
.equ UART0_LSR, 0xd4017014
.section .text
.global _start
_start:
la s0, str
1:
lbu a0, (s0)
beqz a0, exit
call uart_send
addi s0, s0, 1
j 1b
exit:
j exit
uart_send:
li t0, UART0_LSR
lw t1, (t0)
andi t1, t1, 0x20
beqz t1, uart_send
li t0, UART0_THR
sw a0, (t0)
ret
.section .rodata
str:
.asciz "Hello SpacemiT K3!\n"
EOF
$ riscv64-linux-gnu-gcc -nostdlib -fno-builtin -fno-pie -no-pie -static \
-march=rv64gc -mabi=lp64 -g -Wall -Wl,--build-id=none \
-Ttext=0xc0801000 -o k3-uart.elf k3-uart.S
$ riscv64-linux-gnu-objcopy -O binary k3-uart.elf k3-uart.bin
$ ./tools/mkimage -T aihdimage -n k3 -d k3-uart.bin k3-uart-aihd.bin
Hold the FDL button, power on the board to enter MaskROM, then run
fastboot on host:
$ fastboot stage k3-uart-aihd.bin
$ fastboot continue
---
Junhui Liu (2):
tools: mkimage: add SpacemiT K3 AIHD image support
doc: board: spacemit: document the AIHD image format
boot/image.c | 1 +
doc/board/spacemit/aihd.rst | 145 +++++++++++++++++++++++++++++++
doc/board/spacemit/index.rst | 2 +-
include/image.h | 1 +
tools/Makefile | 3 +-
tools/aihdimage.c | 202 +++++++++++++++++++++++++++++++++++++++++++
6 files changed, 352 insertions(+), 2 deletions(-)
---
base-commit: 6073c36b2c8d39afe3ecc789b281667a3ddebc70
change-id: 20260820-spacemit-aihd-05c46aae886e
Best regards,
--
Junhui Liu <[email protected]>