]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
kernel-fitimage: allow overriding FIT configuration prefix
authorAhmad Fatoum <a.fatoum@pengutronix.de>
Tue, 15 Mar 2022 17:23:53 +0000 (18:23 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 16 Mar 2022 10:31:37 +0000 (10:31 +0000)
The prefix was recently changed to play ball with the CVE-2021-27138
workaround in U-Boot. Already deployed bootloaders though may still
expect a configuration name containing @ or they may not be affected
by this issue.

Also, uses may want to customize it beyond the [@-] issue: When
device trees are built from a recipe using kernel-devicetree.bbclass
the configuration nodes will contain the parent directories, e.g.

KERNEL_DEVICETREE = "freescale/imx8mm-myboard.dtb"

will become "conf-freescale_imx8mm-myboard.dtb". When moving to
devicetree.bbclass, this prefix go away. With this change here,
users can restore it easily by setting FIT_CONF_PREFIX =
"conf-freescale_", ensuring backwards compatibility.

Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/kernel-fitimage.bbclass

index c16977c477ebeb5033ba95c8e51d3b70d1f2a462..8a9b195d6ee2a31ffbc1a2c462fa52ab61f8d0bb 100644 (file)
@@ -64,6 +64,9 @@ FIT_DESC ?= "Kernel fitImage for ${DISTRO_NAME}/${PV}/${MACHINE}"
 # Sign individual images as well
 FIT_SIGN_INDIVIDUAL ?= "0"
 
+FIT_CONF_PREFIX ?= "conf-"
+FIT_CONF_PREFIX[doc] = "Prefix to use for FIT configuration node name"
+
 # Keys used to sign individually image nodes.
 # The keys to sign image nodes must be different from those used to sign
 # configuration nodes, otherwise the "required" property, from
@@ -358,7 +361,7 @@ fitimage_emit_section_config() {
        # Test if we have any DTBs at all
        sep=""
        conf_desc=""
-       conf_node="conf-"
+       conf_node="${FIT_CONF_PREFIX}"
        kernel_line=""
        fdt_line=""
        ramdisk_line=""
@@ -407,9 +410,9 @@ fitimage_emit_section_config() {
                # default node is selected based on dtb ID if it is present,
                # otherwise its selected based on kernel ID
                if [ -n "$dtb_image" ]; then
-                       default_line="default = \"conf-$dtb_image\";"
+                       default_line="default = \"${FIT_CONF_PREFIX}$dtb_image\";"
                else
-                       default_line="default = \"conf-$kernel_id\";"
+                       default_line="default = \"${FIT_CONF_PREFIX}$kernel_id\";"
                fi
        fi