From: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
To: <xen-devel@lists.xenproject.org>
Cc: <sstabellini@kernel.org>, <michal.orzel@amd.com>,
<andrei.cherechesu@nxp.com>, <dmukhin@ford.com>,
Ayan Kumar Halder <ayan.kumar.halder@amd.com>
Subject: [ImageBuilder v2] Make DEVICE_TREE optional parameter
Date: Tue, 12 Aug 2025 18:33:50 +0100 [thread overview]
Message-ID: <20250812173350.2612682-1-ayan.kumar.halder@amd.com> (raw)
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@amd.com>
---
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
next reply other threads:[~2025-08-12 17:34 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-12 17:33 Ayan Kumar Halder [this message]
2025-08-12 23:10 ` [ImageBuilder v2] Make DEVICE_TREE optional parameter Stefano Stabellini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250812173350.2612682-1-ayan.kumar.halder@amd.com \
--to=ayan.kumar.halder@amd.com \
--cc=andrei.cherechesu@nxp.com \
--cc=dmukhin@ford.com \
--cc=michal.orzel@amd.com \
--cc=sstabellini@kernel.org \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.