kernel-fitimage: build configuration for image tree when dtb is not present

This patch adds support for adding configuration node even
when dtb is not part of the FIT image. The conf and default
node number are therefore changed to point to kernel ID rather
than dtb ID when dtb does not exist.

(From OE-Core rev: 2d9f3c3d763e2bca704da4019add973b9a2c572f)

Signed-off-by: Usama Arif <usama.arif@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Usama Arif
2020-07-20 18:18:21 +01:00
committed by Richard Purdie
parent d5bb221646
commit 8f8ec92d7b

View File

@@ -257,12 +257,21 @@ fitimage_emit_section_config() {
# Test if we have any DTBs at all
sep=""
conf_desc=""
conf_node="conf@"
kernel_line=""
fdt_line=""
ramdisk_line=""
setup_line=""
default_line=""
# conf node name is selected based on dtb ID if it is present,
# otherwise its selected based on kernel ID
if [ -n "${3}" ]; then
conf_node=$conf_node${3}
else
conf_node=$conf_node${2}
fi
if [ -n "${2}" ]; then
conf_desc="Linux kernel"
sep=", "
@@ -287,12 +296,18 @@ fitimage_emit_section_config() {
fi
if [ "${6}" = "1" ]; then
default_line="default = \"conf@${3}\";"
# default node is selected based on dtb ID if it is present,
# otherwise its selected based on kernel ID
if [ -n "${3}" ]; then
default_line="default = \"conf@${3}\";"
else
default_line="default = \"conf@${2}\";"
fi
fi
cat << EOF >> ${1}
${default_line}
conf@${3} {
$conf_node {
description = "${6} ${conf_desc}";
${kernel_line}
${fdt_line}
@@ -434,6 +449,13 @@ fitimage_assemble() {
#
fitimage_emit_section_maint ${1} confstart
# kernel-fitimage.bbclass currently only supports a single kernel (no less or
# more) to be added to the FIT image along with 0 or more device trees and
# 0 or 1 ramdisk.
# If a device tree is to be part of the FIT image, then select
# the default configuration to be used is based on the dtbcount. If there is
# no dtb present than select the default configuation to be based on
# the kernelcount.
if [ -n "${DTBS}" ]; then
i=1
for DTB in ${DTBS}; do
@@ -445,6 +467,9 @@ fitimage_assemble() {
fi
i=`expr ${i} + 1`
done
else
defaultconfigcount=1
fitimage_emit_section_config ${1} "${kernelcount}" "" "${ramdiskcount}" "${setupcount}" "${defaultconfigcount}"
fi
fitimage_emit_section_maint ${1} sectend