[gnome-continuous-yocto/gnomeostree-3.28-rocko: 5213/8267] kernel-fitimage: dtb sections named by their filenames and one config section for each dtb



commit 1ec405ef5df82884c8997878bbe6c66d924b5127
Author: Florian Wickert <fw javox-solutions com>
Date:   Fri Mar 17 16:33:03 2017 +0100

    kernel-fitimage: dtb sections named by their filenames and one config section for each dtb
    
    Before this, dtb sections were named by their position index in KERNEL_DEVICETREE. Also there was only 
one item in the config section, so only the first dtb was seen by the bootloader.
    This patch adds a config section for each dtb named by the dtb filename. This is what bootloaders usually 
know about the machine they run on.
    
    (From OE-Core rev: cd2ed7f80b555add07795cc0cbaee866e6c193a3)
    
    Signed-off-by: Florian Wickert <fw javox-solutions com>
    Signed-off-by: Ross Burton <ross burton intel com>
    Signed-off-by: Richard Purdie <richard purdie linuxfoundation org>

 meta/classes/kernel-fitimage.bbclass |   28 +++++++++++++++++++++-------
 1 files changed, 21 insertions(+), 7 deletions(-)
---
diff --git a/meta/classes/kernel-fitimage.bbclass b/meta/classes/kernel-fitimage.bbclass
index f9702f8..2d344b5 100644
--- a/meta/classes/kernel-fitimage.bbclass
+++ b/meta/classes/kernel-fitimage.bbclass
@@ -229,9 +229,10 @@ EOF
 #
 # $1 ... .its filename
 # $2 ... Linux kernel ID
-# $3 ... DTB image ID
+# $3 ... DTB image name
 # $4 ... ramdisk ID
 # $5 ... config ID
+# $6 ... default flag
 fitimage_emit_section_config() {
 
        conf_csum="sha1"
@@ -244,6 +245,8 @@ fitimage_emit_section_config() {
        kernel_line="kernel = \"kernel@${2}\";"
        fdt_line=""
        ramdisk_line=""
+       setup_line=""
+       default_line=""
 
        if [ -n "${3}" ]; then
                conf_desc="${conf_desc}, FDT blob"
@@ -260,10 +263,14 @@ fitimage_emit_section_config() {
                setup_line="setup = \"setup@${5}\";"
        fi
 
+       if [ "${6}" = "1" ]; then
+               default_line="default = \"conf@${3}\";"
+       fi
+
        cat << EOF >> ${1}
-                default = "conf@1";
-                conf@1 {
-                        description = "${conf_desc}";
+                ${default_line}
+                conf@${3} {
+                       description = "${6} ${conf_desc}";
                        ${kernel_line}
                        ${fdt_line}
                        ${ramdisk_line}
@@ -314,6 +321,7 @@ EOF
 fitimage_assemble() {
        kernelcount=1
        dtbcount=""
+       DTBS=""
        ramdiskcount=${3}
        setupcount=""
        rm -f ${1} arch/${ARCH}/boot/${2}
@@ -343,8 +351,8 @@ fitimage_assemble() {
                                DTB_PATH="arch/${ARCH}/boot/${DTB}"
                        fi
 
-                       fitimage_emit_section_dtb ${1} ${dtbcount} ${DTB_PATH}
-                       dtbcount=`expr ${dtbcount} + 1`
+                       DTBS="${DTBS} ${DTB}"
+                       fitimage_emit_section_dtb ${1} ${DTB} ${DTB_PATH}
                done
        fi
 
@@ -384,7 +392,13 @@ fitimage_assemble() {
        #
        fitimage_emit_section_maint ${1} confstart
 
-       fitimage_emit_section_config ${1} "${kernelcount}" "${dtbcount}" "${ramdiskcount}" "${setupcount}"
+       if test -n "${DTBS}"; then
+               i=1
+               for DTB in ${DTBS}; do
+                       fitimage_emit_section_config ${1} "${kernelcount}" "${DTB}" "${ramdiskcount}" 
"${setupcount}" "`expr ${i} = ${dtbcount}`"
+                       i=`expr ${i} + 1`
+               done
+       fi
 
        fitimage_emit_section_maint ${1} sectend
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]