uboot-sign: support to add users specific image tree source

Currently, uboot-sign.bbclass only supports to create Image Tree Source(ITS)
for "u-boot" and "flat_dt". However, users may want to add their private
images into u-boot FIT image for specific application and purpose.

To make this bbclass more flexible and support to add users specific snippet
ITS, creates a new "UBOOT_FIT_USER_SETTINGS" variable. Users can add their
specific snippet ITS into this variable.

Example:

```
UBOOT_FIT_MY_ITS = '\
       myfw {\n\
            description = \"MY Firmware\";\n\
            data = /incbin/(\"myfw.bin\");\n\
            type = \"mytype\";\n\
            arch = \"myarch\";\n\
            os = \"myos\";\n\
            load = <0xb2000000>;\n\
            entry = <0xb2000000>;\n\
            compression = \"none\";\n\
        };\n\
'

UBOOT_FIT_USER_SETTINGS = "${UBOOT_FIT_MY_ITS}"
```

The generated ITS

```
       myfw {
            description = "My Firmware";
            data = /incbin/("myfw.bin");
            type = "mytype";
            arch = "myarch";
            os = "myos";
            load = <0xb2000000>;
            entry = <0xb2000000>;
            compression = "none";
       };
```

Add a variable "UBOOT_FIT_CONF_USER_LOADABLES" to load users specific images
and it is an empty by default.

(From OE-Core rev: c12e013453689697a8680f1c7de3e625a0ff28ec)

Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Jamin Lin 2025-02-17 16:52:32 +08:00 committed by Richard Purdie
parent e6ff708977
commit 7be7e16cbb

View File

@ -98,6 +98,13 @@ UBOOT_FIT_ARM_TRUSTED_FIRMWARE_IMAGE ?= "bl31.bin"
UBOOT_FIT_TEE ?= "0"
UBOOT_FIT_TEE_IMAGE ?= "tee-raw.bin"
# User specific settings
UBOOT_FIT_USER_SETTINGS ?= ""
# Unit name containing a list of users additional binaries to be loaded.
# It is a comma-separated list of strings.
UBOOT_FIT_CONF_USER_LOADABLES ?= ''
UBOOT_FIT_UBOOT_LOADADDRESS ?= "${UBOOT_LOADADDRESS}"
UBOOT_FIT_UBOOT_ENTRYPOINT ?= "${UBOOT_ENTRYPOINT}"
@ -414,6 +421,15 @@ EOF
conf_loadables="\"atf\", ${conf_loadables}"
uboot_fitimage_atf
fi
if [ -n "${UBOOT_FIT_USER_SETTINGS}" ] ; then
echo -e "${UBOOT_FIT_USER_SETTINGS}" >> ${UBOOT_ITS}
fi
if [ -n "${UBOOT_FIT_CONF_USER_LOADABLES}" ] ; then
conf_loadables="${conf_loadables}${UBOOT_FIT_CONF_USER_LOADABLES}"
fi
cat << EOF >> ${UBOOT_ITS}
};