Thread (3 messages) 3 messages, 2 authors, 2021-10-29

Re: [OE-core][PATCH] uboot-sign: fix the concatenation when multiple U-BOOT configurations are specified

From: Thomas Perrot <hidden>
Date: 2021-10-29 22:17:14

Hello Richard,

On Wed, 2021-10-27 at 19:02 +0100, Richard Purdie wrote:
On Wed, 2021-10-27 at 16:04 +0200, Thomas Perrot wrote:
quoted
Some BSPs, especially those of meta-freescale and meta-ti allow to
build U-Boot
binaries using different configuration for a given target, for
example:
- UBOOT_CONFIG ??= "tfa-secure-boot tfa"
- UBOOT_CONFIG ??= "nand sdcard spi nor"

When this is the case the public key wasn't concatenated to all U-
Boot binaries
built.

Signed-off-by: Thomas Perrot <redacted>
---
 meta/classes/uboot-sign.bbclass | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/meta/classes/uboot-sign.bbclass b/meta/classes/uboot-
sign.bbclass
index bae8cada0ac3..8d136e940589 100644
--- a/meta/classes/uboot-sign.bbclass
+++ b/meta/classes/uboot-sign.bbclass
@@ -131,6 +131,20 @@ concat_dtb_helper() {
                elif [ -e "${DEPLOYDIR}/${UBOOT_NODTB_IMAGE}" -a -e
"$deployed_uboot_dtb_binary" ]; then
                        cd ${DEPLOYDIR}
                        cat ${UBOOT_NODTB_IMAGE}
$deployed_uboot_dtb_binary | tee
${B}/${CONFIG_B_PATH}/${UBOOT_BINARY} > ${UBOOT_IMAGE}
+
+                       if [ -n "${UBOOT_CONFIG}" ]
+                       then
+                               for config in ${UBOOT_MACHINE}; do
+                                       i=$(expr $i + 1);
+                                       for type in
${UBOOT_CONFIG}; do
+                                               j=$(expr $j + 1);
+                                               if [ $j -eq $i ]
+                                               then
+                                                       cp
${UBOOT_IMAGE} ${B}/${CONFIG_B_PATH}/u-boot-$type.${UBOOT_SUFFIX}
+                                               fi
+                                       done
+                               done
+                       fi
                else
                        bbwarn "Failure while adding public key to
u-boot binary. Verified boot won't be available."
                fi
@@ -205,7 +219,7 @@ install_helper() {
        fi
 }
 
-# Install SPL dtb and u-boot nodtb to datadir, 
+# Install SPL dtb and u-boot nodtb to datadir,
 install_spl_helper() {
        if [ -f "${SPL_DIR}/${SPL_DTB_BINARY}" ]; then
                install -Dm 0644 ${SPL_DIR}/${SPL_DTB_BINARY}
${D}${datadir}/${SPL_DTB_IMAGE}

We seem to be just piling more and more conditional code into these
classes for
different weird corner cases.

Are there some tests we should be adding to ensure people understand
why this
code is here and if/as/when something else changes it and regresses
it?
I should be able to add a test in "oeqa/selftest/fitimage". I will
resubmit when it's done.

Best regards,
Thomas
Cheers,

Richard



-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#157562): 
https://lists.openembedded.org/g/openembedded-core/message/157562
Mute This Topic: https://lists.openembedded.org/mt/86628322/5443093
Group Owner: openembedded-core+owner@lists.openembedded.org
Unsubscribe:
https://lists.openembedded.org/g/openembedded-core/unsub [thomas.perrot@bootlin.com
]
-=-=-=-=-=-=-=-=-=-=-=-
-- 
Thomas Perrot, Bootlin
Embedded Linux and kernel engineering
https://bootlin.com

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help