diff options
author | Tom Rini <trini@konsulko.com> | 2024-10-15 16:51:05 -0600 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2024-10-15 20:35:07 -0600 |
commit | d5cab0d6adc26ec1bbd45c2fed101184d04454ae (patch) | |
tree | 30a73e83a2fc41c942574efc8fde2a27978160ba | |
parent | 83362ce1f53e303eeab52ee941b6264e108281e5 (diff) | |
download | u-boot-WIP/15Oct2024.tar.gz |
Revert "Makefile: Drop SPL_FIT_GENERATOR / SPL_FIT_SOURCE support" changesWIP/15Oct2024
:hile we had hoped to be able to remove these options finally, it was
missed that zynq still requires these currently.
This reverts commit 5b9261fb0b1ed087387f2036d279fd3f4bb20a61 and
commit 099b6df556c95f5d06864612e9199eab7ba50ed3.
Reported-by: Jonas Karlman <jonas@kwiboo.se>
Signed-off-by: Tom Rini <trini@konsulko.com>
-rw-r--r-- | Makefile | 24 | ||||
-rw-r--r-- | boot/Kconfig | 23 | ||||
-rw-r--r-- | doc/usage/fit/howto.rst | 9 |
3 files changed, 56 insertions, 0 deletions
@@ -1146,6 +1146,13 @@ ifeq ($(CONFIG_OF_EMBED)$(CONFIG_EFI_APP),y) @echo >&2 "See doc/develop/devicetree/control.rst for more info." @echo >&2 "====================================================" endif +ifneq ($(CONFIG_SPL_FIT_GENERATOR),) + @echo >&2 "===================== WARNING ======================" + @echo >&2 "This board uses CONFIG_SPL_FIT_GENERATOR. Please migrate" + @echo >&2 "to binman instead, to avoid the proliferation of" + @echo >&2 "arch-specific scripts with no tests." + @echo >&2 "====================================================" +endif $(call deprecated,CONFIG_WDT,DM watchdog,v2019.10,\ $(CONFIG_WATCHDOG)$(CONFIG_HW_WATCHDOG)) $(call deprecated,CONFIG_DM_I2C,I2C drivers,v2022.04,$(CONFIG_SYS_I2C_LEGACY)) @@ -1412,6 +1419,23 @@ OBJCOPYFLAGS_u-boot.ldr.srec := -I binary -O srec u-boot.ldr.hex u-boot.ldr.srec: u-boot.ldr FORCE $(call if_changed,objcopy) +# Boards with more complex image requirements can provide an .its source file +# or a generator script +# NOTE: Please do not use this. We are migrating away from Makefile rules to use +# binman instead. +ifneq ($(CONFIG_SPL_FIT_SOURCE),"") +U_BOOT_ITS := u-boot.its +$(U_BOOT_ITS): $(subst ",,$(CONFIG_SPL_FIT_SOURCE)) + $(call if_changed,copy) +else +ifneq ($(CONFIG_USE_SPL_FIT_GENERATOR),) +U_BOOT_ITS := u-boot.its +$(U_BOOT_ITS): $(U_BOOT_ITS_DEPS) FORCE + $(srctree)/$(CONFIG_SPL_FIT_GENERATOR) \ + $(patsubst %,$(dt_dir)/%.dtb,$(subst ",,$(CONFIG_OF_LIST))) > $@ +endif +endif + ifdef CONFIG_SPL_LOAD_FIT MKIMAGEFLAGS_u-boot.img = -f auto -A $(ARCH) -T firmware -C none -O u-boot \ -a $(CONFIG_TEXT_BASE) -e $(CONFIG_SYS_UBOOT_START) \ diff --git a/boot/Kconfig b/boot/Kconfig index 4314227d5f8..925afe06a19 100644 --- a/boot/Kconfig +++ b/boot/Kconfig @@ -282,6 +282,29 @@ config SPL_FIT_IMAGE_POST_PROCESS injected into the FIT creation (i.e. the blobs would have been pre- processed before being added to the FIT image). +config SPL_FIT_SOURCE + string ".its source file for U-Boot FIT image" + depends on SPL_FIT + help + Specifies a (platform specific) FIT source file to generate the + U-Boot FIT image. This could specify further image to load and/or + execute. + +config USE_SPL_FIT_GENERATOR + bool "Use a script to generate the .its script" + depends on SPL_FIT + default y if SPL_FIT && ARCH_ZYNQMP + +config SPL_FIT_GENERATOR + string ".its file generator script for U-Boot FIT image" + depends on USE_SPL_FIT_GENERATOR + default "arch/arm/mach-zynqmp/mkimage_fit_atf.sh" if SPL_LOAD_FIT && ARCH_ZYNQMP + help + Specifies a (platform specific) script file to generate the FIT + source file used to build the U-Boot FIT image file. This gets + passed a list of supported device tree file stub names to + include in the generated image. + if VPL config VPL_FIT diff --git a/doc/usage/fit/howto.rst b/doc/usage/fit/howto.rst index 675c9aa5bb0..b5097d4460b 100644 --- a/doc/usage/fit/howto.rst +++ b/doc/usage/fit/howto.rst @@ -57,6 +57,15 @@ own subnode under the /images node, which should then be referenced from one or multiple /configurations subnodes. The required images must be enumerated in the "loadables" property as a list of strings. +If a platform specific image source file (.its) is shipped with the U-Boot +source, it can be specified using the CONFIG_SPL_FIT_SOURCE Kconfig symbol. +In this case it will be automatically used by U-Boot's Makefile to generate +the image. +If a static source file is not flexible enough, CONFIG_SPL_FIT_GENERATOR +can point to a script which generates this image source file during +the build process. It gets passed a list of device tree files (taken from the +CONFIG_OF_LIST symbol). + The SPL also records to a DT all additional images (called loadables) which are loaded. The information about loadables locations is passed via the DT node with fit-images name. |