summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/classes/kernel-fitimage.bbclass28
1 files changed, 21 insertions, 7 deletions
diff --git a/meta/classes/kernel-fitimage.bbclass b/meta/classes/kernel-fitimage.bbclass
index f9702f8032..2d344b52cd 100644
--- a/meta/classes/kernel-fitimage.bbclass
+++ b/meta/classes/kernel-fitimage.bbclass
@@ -229,9 +229,10 @@ EOF
229# 229#
230# $1 ... .its filename 230# $1 ... .its filename
231# $2 ... Linux kernel ID 231# $2 ... Linux kernel ID
232# $3 ... DTB image ID 232# $3 ... DTB image name
233# $4 ... ramdisk ID 233# $4 ... ramdisk ID
234# $5 ... config ID 234# $5 ... config ID
235# $6 ... default flag
235fitimage_emit_section_config() { 236fitimage_emit_section_config() {
236 237
237 conf_csum="sha1" 238 conf_csum="sha1"
@@ -244,6 +245,8 @@ fitimage_emit_section_config() {
244 kernel_line="kernel = \"kernel@${2}\";" 245 kernel_line="kernel = \"kernel@${2}\";"
245 fdt_line="" 246 fdt_line=""
246 ramdisk_line="" 247 ramdisk_line=""
248 setup_line=""
249 default_line=""
247 250
248 if [ -n "${3}" ]; then 251 if [ -n "${3}" ]; then
249 conf_desc="${conf_desc}, FDT blob" 252 conf_desc="${conf_desc}, FDT blob"
@@ -260,10 +263,14 @@ fitimage_emit_section_config() {
260 setup_line="setup = \"setup@${5}\";" 263 setup_line="setup = \"setup@${5}\";"
261 fi 264 fi
262 265
266 if [ "${6}" = "1" ]; then
267 default_line="default = \"conf@${3}\";"
268 fi
269
263 cat << EOF >> ${1} 270 cat << EOF >> ${1}
264 default = "conf@1"; 271 ${default_line}
265 conf@1 { 272 conf@${3} {
266 description = "${conf_desc}"; 273 description = "${6} ${conf_desc}";
267 ${kernel_line} 274 ${kernel_line}
268 ${fdt_line} 275 ${fdt_line}
269 ${ramdisk_line} 276 ${ramdisk_line}
@@ -314,6 +321,7 @@ EOF
314fitimage_assemble() { 321fitimage_assemble() {
315 kernelcount=1 322 kernelcount=1
316 dtbcount="" 323 dtbcount=""
324 DTBS=""
317 ramdiskcount=${3} 325 ramdiskcount=${3}
318 setupcount="" 326 setupcount=""
319 rm -f ${1} arch/${ARCH}/boot/${2} 327 rm -f ${1} arch/${ARCH}/boot/${2}
@@ -343,8 +351,8 @@ fitimage_assemble() {
343 DTB_PATH="arch/${ARCH}/boot/${DTB}" 351 DTB_PATH="arch/${ARCH}/boot/${DTB}"
344 fi 352 fi
345 353
346 fitimage_emit_section_dtb ${1} ${dtbcount} ${DTB_PATH} 354 DTBS="${DTBS} ${DTB}"
347 dtbcount=`expr ${dtbcount} + 1` 355 fitimage_emit_section_dtb ${1} ${DTB} ${DTB_PATH}
348 done 356 done
349 fi 357 fi
350 358
@@ -384,7 +392,13 @@ fitimage_assemble() {
384 # 392 #
385 fitimage_emit_section_maint ${1} confstart 393 fitimage_emit_section_maint ${1} confstart
386 394
387 fitimage_emit_section_config ${1} "${kernelcount}" "${dtbcount}" "${ramdiskcount}" "${setupcount}" 395 if test -n "${DTBS}"; then
396 i=1
397 for DTB in ${DTBS}; do
398 fitimage_emit_section_config ${1} "${kernelcount}" "${DTB}" "${ramdiskcount}" "${setupcount}" "`expr ${i} = ${dtbcount}`"
399 i=`expr ${i} + 1`
400 done
401 fi
388 402
389 fitimage_emit_section_maint ${1} sectend 403 fitimage_emit_section_maint ${1} sectend
390 404