[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [ImageBuilder] Make DEVICE_TREE optional parameter
On Thu, 7 Aug 2025, Ayan Kumar Halder wrote: > There are systems where device tree binary is passed by the U-Boot as > $fdtcontroladdr. In such cases, no external device tree binary is provided > during uboot script generation. > > This is an enhancement on top of the following commit:- > uboot-script-gen: Dynamically compute addr and size when loading bina… > > When DEVICE_TREE is not present, $CALC is set as the addresses and sizes > should > be computed dynamically from U-Boot. I would prefer if we did not automatically enable $CALC. If it doesn't work without $CALC enabled, we could add a check for it and print an error and exit. I would prefer that then enabling $CALC silently. Also I don't think we should use the check ${DEVICE_TREE+x}. I'd prefer to stick with the existing checks based on test ${DEVICE_TREE}. The rest looks OK. It might be possible to simplify this patch down to this (untested). The last chunk of the diff is actually an unrelated fix, it looks like we didn't test BOOT_CMD="none" when the -s option was introduced. What do you think? diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen index 9e97944..67e0f9a 100755 --- a/scripts/uboot-script-gen +++ b/scripts/uboot-script-gen @@ -1646,6 +1646,15 @@ if test "$FIT" then echo 'fit_addr=$fileaddr' >> $UBOOT_SOURCE fi +if test -z "$DEVICE_TREE" +then + if test -z "$CALC" + then + echo "DEVICE_TREE is unset and -s is not specified" + exit 1 + fi + echo "setenv host_fdt_addr \${fdtcontroladdr}" >> $UBOOT_SOURCE +fi memaddr=$(( $MEMORY_START + $offset )) # 12582912 is 0xc00000, 12MB @@ -1689,9 +1698,12 @@ then done fi -check_file_type $DEVICE_TREE "Device Tree Blob" -device_tree_addr=$memaddr -load_file $DEVICE_TREE "host_fdt" "$XEN_LOAD" +if test "$DEVICE_TREE" +then + check_file_type $DEVICE_TREE "Device Tree Blob" + device_tree_addr=$memaddr + load_file $DEVICE_TREE "host_fdt" "$XEN_LOAD" +fi bitstream_load_and_config # bitstream is loaded last but used first device_tree_editing $device_tree_addr @@ -1719,8 +1731,11 @@ then fi else # skip boot command but store load addresses to be used later - echo "setenv host_kernel_addr $kernel_addr" >> $UBOOT_SOURCE - echo "setenv host_fdt_addr $device_tree_addr" >> $UBOOT_SOURCE + if test -z "$CALC" + then + echo "setenv host_kernel_addr $kernel_addr" >> $UBOOT_SOURCE + echo "setenv host_fdt_addr $device_tree_addr" >> $UBOOT_SOURCE + fi fi if test "$FIT"
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |