[PATCH v4 4/4] sunxi: Support building a SPL as a TOC0 image

Andre Przywara andre.przywara at arm.com
Thu Oct 21 01:50:14 CEST 2021


On Tue, 19 Oct 2021 21:44:54 -0500
Samuel Holland <samuel at sholland.org> wrote:

Hi,

> 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 at sholland.org>

Nice, that allows to build TOC0 images very easily!
Tested for regressions on a bunch of boards, and on a Remix Mini PC,
selecting SPL_IMAGE_TYPE_SUNXI_TOC0: boots straight through!
Will double check the DT I made, then send it later, so that we get a
user in the tree.

Reviewed-by: Andre Przywara <andre.przywara at arm.com>

Cheers,
Andre

> ---
> 
> (no changes since v2)
> 
> Changes in v2:
>  - Rebase on top of Icenowy's RISC-V support series
>  - Rename Kconfig symbols to include the full image type name
> 
>  arch/arm/mach-sunxi/Kconfig |  2 ++
>  board/sunxi/Kconfig         | 24 ++++++++++++++++++++++++
>  scripts/Makefile.spl        |  5 ++++-
>  3 files changed, 30 insertions(+), 1 deletion(-)
>  create mode 100644 board/sunxi/Kconfig
> 
> diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig
> index 2c18cf02d1..879efb9f61 100644
> --- a/arch/arm/mach-sunxi/Kconfig
> +++ b/arch/arm/mach-sunxi/Kconfig
> @@ -1050,6 +1050,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
> diff --git a/board/sunxi/Kconfig b/board/sunxi/Kconfig
> new file mode 100644
> index 0000000000..084a8b0c6c
> --- /dev/null
> +++ b/board/sunxi/Kconfig
> @@ -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
> diff --git a/scripts/Makefile.spl b/scripts/Makefile.spl
> index 4cc23799db..635fa14cb9 100644
> --- a/scripts/Makefile.spl
> +++ b/scripts/Makefile.spl
> @@ -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)



More information about the U-Boot mailing list