[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [ImageBuilder v2] Make DEVICE_TREE optional parameter
On Tue, 12 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, user should provide '-s' as the addresses and > sizes should be computed dynamically from U-Boot. > > Also, fixed uboot-script-gen to set host_kernel_addr when BOOT_CMD="none" and > '-s' is not used. > > Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@xxxxxxx> Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx> > --- > This patch should be applied after the previous patch. > "[ImageBuilder v2] Add config option to use separate load commands for..." > > Changes from :- > > v1 :- 1. Check that user provides '-s' when DEVICE_TREE is not set, instead of > setting CALC silently. > > 2. Set 'host_fdt_addr' to '\${fdtcontroladdr}' when DEVICE_TREE is not set. > > 3. Add a fix for BOOT_CMD="none". > > README.md | 5 ++++- > scripts/uboot-script-gen | 29 +++++++++++++++++++++++------ > 2 files changed, 27 insertions(+), 7 deletions(-) > > diff --git a/README.md b/README.md > index 59919df..fc448e0 100644 > --- a/README.md > +++ b/README.md > @@ -92,7 +92,10 @@ Where: > DTB are stored in 'host_kernel_addr' and 'host_fdt_addr' u-boot > env variables respectively, to be used manually when booting. > > -- DEVICE_TREE specifies the DTB file to load. > +- DEVICE_TREE specifies the DTB file to load. If not set, then > $fdtcontroladdr > + is used as the address of the DTB loaded by u-boot. If user does not set > this > + option, then '-s' should be provided to ensure that addresses and sizes are > + calculated dynamically by uboot. > > - XEN specifies the Xen hypervisor binary to load. Note that it has to > be a regular Xen binary, not a u-boot binary. > diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen > index 656de72..be61fc4 100755 > --- a/scripts/uboot-script-gen > +++ b/scripts/uboot-script-gen > @@ -591,7 +591,7 @@ function device_tree_editing() > > function fill_reserved_spaces_from_dtb() > { > - if [ ! -f $DEVICE_TREE ] > + if test ! -f $DEVICE_TREE || test -z "$DEVICE_TREE" > then > if test "$CALC"; then > return > @@ -1674,6 +1674,16 @@ fi > > rm -f $UBOOT_SOURCE $UBOOT_SCRIPT > > +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 > + > if test "$FIT" > then > echo 'fit_addr=$fileaddr' >> $UBOOT_SOURCE > @@ -1721,9 +1731,13 @@ 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 > > @@ -1751,8 +1765,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" > -- > 2.25.1 >
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |