]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
xilinx: zynqmp: Generate different u-boot.itb for MULTI_DTB_FIT
authorMichal Simek <michal.simek@xilinx.com>
Thu, 19 Aug 2021 10:02:57 +0000 (12:02 +0200)
committerMichal Simek <michal.simek@xilinx.com>
Thu, 26 Aug 2021 06:14:43 +0000 (08:14 +0200)
When MULTI_DTB_FIT is enabled fit-dtb.blob fit image is created which
contain all DTBs listed by CONFIG_OF_LIST. And with DTB_RELESELECT there is
a need to handle it as one file with DTBs in it not as separate DTBs in
u-boot.its/itb.
That's why extend mkimage_fit_atf.sh to generate u-boot.itb correctly.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
arch/arm/mach-zynqmp/mkimage_fit_atf.sh

index 592be7f670664c32f1e190966bb15a1796770069..feb3a6260a3495d46806accbd517793873dedf9b 100755 (executable)
@@ -111,6 +111,51 @@ cat << __TEE
 __TEE
 fi
 
+MULTI_DTB=`awk '/CONFIG_MULTI_DTB_FIT / { print $3 }' include/generated/autoconf.h`
+
+if [ 1"$MULTI_DTB" -eq 11 ]; then
+       cat << __FDT_IMAGE_EOF
+               fdt_1 {
+                       description = "Multi DTB fit image";
+                       data = /incbin/("fit-dtb.blob");
+                       type = "flat_dt";
+                       arch = "arm64";
+                       compression = "none";
+                       $DTB_LOAD
+                       hash {
+                               algo = "md5";
+                       };
+               };
+       };
+       configurations {
+               default = "config_1";
+__FDT_IMAGE_EOF
+
+if [ ! -f $BL31 ]; then
+cat << __CONF_SECTION1_EOF
+               config_1 {
+                       description = "Multi DTB without TF-A";
+                       firmware = "uboot";
+                       loadables = "fdt_1";
+               };
+__CONF_SECTION1_EOF
+else
+cat << __CONF_SECTION1_EOF
+               config_1 {
+                       description = "Multi DTB with TF-A";
+                       firmware = "atf";
+                       loadables = "uboot", "fdt_1";
+               };
+__CONF_SECTION1_EOF
+fi
+
+cat << __ITS_EOF
+       };
+};
+__ITS_EOF
+
+else
+
 DEFAULT=1
 cnt=1
 for dtname in $DT
@@ -181,3 +226,5 @@ cat << __ITS_EOF
        };
 };
 __ITS_EOF
+
+fi