All of lore.kernel.org
 help / color / mirror / Atom feed
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



             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.