[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [ImageBuilder] Make DEVICE_TREE optional parameter
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. Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@xxxxxxx> --- README.md | 3 ++- scripts/uboot-script-gen | 26 +++++++++++++++++++------- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 4be6efb..d80bdc9 100644 --- a/README.md +++ b/README.md @@ -90,7 +90,8 @@ 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. - 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 fed53aa..9fe4a55 100755 --- a/scripts/uboot-script-gen +++ b/scripts/uboot-script-gen @@ -560,7 +560,7 @@ function device_tree_editing() if test $UBOOT_SOURCE then if test "$CALC"; then - echo "fdt addr \${host_fdt_addr}" >> $UBOOT_SOURCE + echo "fdt addr \${fdtcontroladdr}" >> $UBOOT_SOURCE else echo "fdt addr $device_tree_addr" >> $UBOOT_SOURCE fi @@ -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+x} then if test "$CALC"; then return @@ -1502,6 +1502,11 @@ check_depends declare -A DOMU_VCPU_HARD_AFFINITY source "$cfg_file" +if test -z ${DEVICE_TREE+x} +then + CALC=y +fi + SCRIPT_PATH=$(dirname "$0") source "$SCRIPT_PATH/common" source "$SCRIPT_PATH/xen_dt_domu" @@ -1703,9 +1708,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+x} +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 @@ -1727,14 +1736,17 @@ fi if [ "$BOOT_CMD" != "none" ] then if test "$CALC"; then - echo "$BOOT_CMD \${host_kernel_addr} $([ "$BOOT_CMD" = "bootefi" ] || echo '-') \${host_fdt_addr}" >> $UBOOT_SOURCE + echo "$BOOT_CMD \${host_kernel_addr} $([ "$BOOT_CMD" = "bootefi" ] || echo '-') \${fdtcontroladdr}" >> $UBOOT_SOURCE else echo "$BOOT_CMD $kernel_addr $([ "$BOOT_CMD" = "bootefi" ] || echo '-') $device_tree_addr" >> $UBOOT_SOURCE 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 ${DEVICE_TREE+x} + then + 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 |