From: Sandeep Gundlupet Raju <sandeep.gundlupet-r...@amd.com>

Allow user to select the default DTB for FIT image when multiple
dtb's exists.

>From machine.conf or local.conf user can specify the default dtb
for FIT image as shown below.

FIT_CONF_DEFAULT_DTB = "board-default.dtb"

Also fallback to avaialable dtb when FIT_CONF_DEFAULT_DTB doesn't
exits or empty.

Signed-off-by: Sandeep Gundlupet Raju <sandeep.gundlupet-r...@amd.com>
Signed-off-by: Steve Sakoman <st...@sakoman.com>
(cherry picked from commit cd397284fa5f17de7e0a0d4b6b26fb8b56c3cd48)
Signed-off-by: Steve Sakoman <st...@sakoman.com>
---
 meta/classes/kernel-fitimage.bbclass | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/meta/classes/kernel-fitimage.bbclass 
b/meta/classes/kernel-fitimage.bbclass
index 3cd4a45bbe..27e17db951 100644
--- a/meta/classes/kernel-fitimage.bbclass
+++ b/meta/classes/kernel-fitimage.bbclass
@@ -67,6 +67,9 @@ FIT_CONF_PREFIX[doc] = "Prefix to use for FIT configuration 
node name"
 
 FIT_SUPPORTED_INITRAMFS_FSTYPES ?= "cpio.lz4 cpio.lzo cpio.lzma cpio.xz 
cpio.zst cpio.gz ext2.gz cpio"
 
+# Allow user to select the default DTB for FIT image when multiple dtb's 
exists.
+FIT_CONF_DEFAULT_DTB ?= ""
+
 # 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
@@ -369,6 +372,7 @@ fitimage_emit_section_config() {
        bootscr_line=""
        setup_line=""
        default_line=""
+       default_dtb_image="${FIT_CONF_DEFAULT_DTB}"
 
        # conf node name is selected based on dtb ID if it is present,
        # otherwise its selected based on kernel ID
@@ -411,7 +415,17 @@ 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 = 
\"${FIT_CONF_PREFIX}$dtb_image\";"
+                       # Select default node as user specified dtb when
+                       # multiple dtb exists.
+                       if [ -n "$default_dtb_image" ]; then
+                               if [ -s 
"${EXTERNAL_KERNEL_DEVICETREE}/$default_dtb_image" ]; then
+                                       default_line="default = 
\"${FIT_CONF_PREFIX}$default_dtb_image\";"
+                               else
+                                       bbwarn "Couldn't find a valid user 
specified dtb in ${EXTERNAL_KERNEL_DEVICETREE}/$default_dtb_image"
+                               fi
+                       else
+                               default_line="default = 
\"${FIT_CONF_PREFIX}$dtb_image\";"
+                       fi
                else
                        default_line="default = 
\"${FIT_CONF_PREFIX}$kernel_id\";"
                fi
-- 
2.25.1

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#176288): 
https://lists.openembedded.org/g/openembedded-core/message/176288
Mute This Topic: https://lists.openembedded.org/mt/96466396/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to