sunxi: Support building a SPL as a TOC0 image

Now that mkimage can generate TOC0 images, and the SPL can interpret
them, hook up the build infrastructure so the user can choose which
image type to build. Since the absolute load address is stored in the
TOC0 header, that information must be passed to mkimage.

Signed-off-by: Samuel Holland <samuel@sholland.org>
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
This commit is contained in:
Samuel Holland 2022-03-18 00:00:45 -05:00 committed by Andre Przywara
parent 44de13d945
commit a0ca51f70b
3 changed files with 30 additions and 1 deletions

View file

@ -1047,6 +1047,8 @@ config BLUETOOTH_DT_DEVICE_FIXUP
The used address is "bdaddr" if set, and "ethaddr" with the LSB
flipped elsewise.
source "board/sunxi/Kconfig"
endif
config CHIP_DIP_SCAN

24
board/sunxi/Kconfig Normal file
View file

@ -0,0 +1,24 @@
choice
prompt "SPL Image Type"
default SPL_IMAGE_TYPE_SUNXI_EGON
config SPL_IMAGE_TYPE_SUNXI_EGON
bool "eGON (normal)"
help
Select this option to embed the SPL binary in an eGON.BT0 image,
which is compatible with the normal boot ROM (NBROM).
This is usually the correct option to choose.
config SPL_IMAGE_TYPE_SUNXI_TOC0
bool "TOC0 (secure)"
help
Select this option to embed the SPL binary in a TOC0 image,
which is compatible with the secure boot ROM (SBROM).
endchoice
config SPL_IMAGE_TYPE
string
default "sunxi_egon" if SPL_IMAGE_TYPE_SUNXI_EGON
default "sunxi_toc0" if SPL_IMAGE_TYPE_SUNXI_TOC0

View file

@ -411,7 +411,10 @@ endif
$(obj)/$(SPL_BIN).sfp: $(obj)/$(SPL_BIN).bin FORCE
$(call if_changed,mkimage)
MKIMAGEFLAGS_sunxi-spl.bin = -A $(ARCH) -T sunxi_egon \
MKIMAGEFLAGS_sunxi-spl.bin = \
-A $(ARCH) \
-T $(CONFIG_SPL_IMAGE_TYPE) \
-a $(CONFIG_SPL_TEXT_BASE) \
-n $(CONFIG_DEFAULT_DEVICE_TREE)
OBJCOPYFLAGS_u-boot-spl-dtb.hex := -I binary -O ihex --change-address=$(CONFIG_SPL_TEXT_BASE)