image_types_gbmc_dynamic: Support multiple DTS
Let add_partition_info_fitimage can support multiple DTS
Tested: build success with multiple KERNEL_DEVICETREE
Google-Bug-Id: 432169384
Fusion-Link:
https://fusion2.corp.google.com/39ad2d2f-e552-3c71-9cc4-74411eca69d0
https://fusion2.corp.google.com/2d88c962-2d62-31b8-8f80-c0d73070e563
https://fusion2.corp.google.com/75b703a8-ff2d-37b2-80c4-9c98aedd20b8
https://fusion2.corp.google.com/213fa53b-1bd3-3e0d-8695-8a5b2bece1f3
Change-Id: I9938abf5eeb24865dbffaaca0a9982fc6a99258b
Signed-off-by: Steven Cho <cho.steven@inventec.corp-partner.google.com>
diff --git a/classes/image_types_gbmc_dynamic.bbclass b/classes/image_types_gbmc_dynamic.bbclass
index 96c7fe1..2d00f77 100644
--- a/classes/image_types_gbmc_dynamic.bbclass
+++ b/classes/image_types_gbmc_dynamic.bbclass
@@ -2,27 +2,29 @@
add_partition_info_fitimage() {
cd ${DEPLOY_DIR_IMAGE}
- dtb=$(basename ${KERNEL_DEVICETREE})
- dts=${dtb%.*}.dts
- sed -e 's,"linux.bin","fitImage-linux.bin-${KERNEL_FIT_LINK_NAME}",' \
- -e "s,\"arch/.*.dtb\",\"$dtb\"," \
- -i fitImage-its-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_LINK_NAME}
- dtc $dtb>$dts
- rexpr() {
- printf '/%s@[0-9a-fA-F]* {/,/};/s/reg = <.*>/reg = <(%d*1024) ((%d-%d)*1024)>/' $* $2
- }
- sed -e "$(rexpr u-boot ${FLASH_UBOOT_OFFSET} ${FLASH_KERNEL_OFFSET})" \
- -e "$(rexpr kernel ${FLASH_KERNEL_OFFSET} ${FLASH_ROFS_OFFSET})" \
- -e "$(rexpr rofs ${FLASH_ROFS_OFFSET} ${FLASH_EMPTY_OFFSET})" \
- -e "$(rexpr rwfs ${FLASH_RWFS_OFFSET} ${FLASH_RWFS_END})" \
- -e "$(rexpr hoth-mailbox ${FLASH_HOTH_MAILBOX_OFFSET} ${FLASH_HOTH_MAILBOX_END})" \
- -e "$(rexpr hoth-update ${FLASH_HOTH_UPDATE_OFFSET} ${FLASH_HOTH_UPDATE_END})" \
- -e "$(rexpr hoth-secondary ${FLASH_HOTH_SECONDARY_OFFSET} ${FLASH_HOTH_SECONDARY_END})" \
- -e "$(rexpr image-descriptor ${FLASH_IMAGE_DESC_OFFSET} ${FLASH_IMAGE_DESC_END})" \
- $dts >$dts.new
- mv $dts.new $dts
- dtc -O dtb -o $dtb.tmp $dts
- mv $dtb.tmp $dtb
+ for dtb in ${KERNEL_DEVICETREE}; do
+ dtb=$(basename $dtb)
+ dts=${dtb%.*}.dts
+ sed -e 's,"linux.bin","fitImage-linux.bin-${KERNEL_FIT_LINK_NAME}",' \
+ -e "s,\"arch/.*.dtb\",\"$dtb\"," \
+ -i fitImage-its-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_LINK_NAME}
+ dtc $dtb > $dts
+ rexpr() {
+ printf '/%s@[0-9a-fA-F]* {/,/};/s/reg = <.*>/reg = <(%d*1024) ((%d-%d)*1024)>/' $* $2
+ }
+ sed -e "$(rexpr u-boot ${FLASH_UBOOT_OFFSET} ${FLASH_KERNEL_OFFSET})" \
+ -e "$(rexpr kernel ${FLASH_KERNEL_OFFSET} ${FLASH_ROFS_OFFSET})" \
+ -e "$(rexpr rofs ${FLASH_ROFS_OFFSET} ${FLASH_EMPTY_OFFSET})" \
+ -e "$(rexpr rwfs ${FLASH_RWFS_OFFSET} ${FLASH_RWFS_END})" \
+ -e "$(rexpr hoth-mailbox ${FLASH_HOTH_MAILBOX_OFFSET} ${FLASH_HOTH_MAILBOX_END})" \
+ -e "$(rexpr hoth-update ${FLASH_HOTH_UPDATE_OFFSET} ${FLASH_HOTH_UPDATE_END})" \
+ -e "$(rexpr hoth-secondary ${FLASH_HOTH_SECONDARY_OFFSET} ${FLASH_HOTH_SECONDARY_END})" \
+ -e "$(rexpr image-descriptor ${FLASH_IMAGE_DESC_OFFSET} ${FLASH_IMAGE_DESC_END})" \
+ $dts > $dts.new
+ mv $dts.new $dts
+ dtc -O dtb -o $dtb.tmp $dts
+ mv $dtb.tmp $dtb
+ done
fit=$(readlink -f fitImage-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_LINK_NAME})
oldsize=$(stat -c '%s' $fit)
${UBOOT_MKIMAGE} -f fitImage-its-${INITRAMFS_IMAGE_NAME}-${KERNEL_FIT_LINK_NAME} $fit.new