From: Felix Moessbauer <felix.moessbauer@siemens.com>
To: isar-users@googlegroups.com
Cc: florian.bezdeka@siemens.com, jan.kiszka@siemens.com,
Felix Moessbauer <felix.moessbauer@siemens.com>
Subject: [PATCH 3/4] u-boot-script: add support to use builtin dt
Date: Tue, 1 Aug 2023 09:37:05 +0000 [thread overview]
Message-ID: <20230801093706.1347928-4-felix.moessbauer@siemens.com> (raw)
In-Reply-To: <20230801093706.1347928-1-felix.moessbauer@siemens.com>
This patch adds support to use the u-boot builtin device tree instead of
the one from the rootfs / linux. This enables the use of dt overlays
even if the corresponding device tree in the kernel is not compiled with
symbol support (uboot builtin DTBs always have symbol information).
To use the builtin dt, add the WKS sourceparam "builtin_dt=yes" to the
rootfs-u-boot sourcer.
Co-developed-by: Florian Bezdeka <florian.bezdeka@siemens.com>
Signed-off-by: Felix Moessbauer <felix.moessbauer@siemens.com>
---
.../u-boot-script/files/u-boot-script | 3 +++
.../u-boot-script/files/update-u-boot-script | 16 ++++++++++++----
.../lib/wic/plugins/source/rootfs-u-boot.py | 3 +++
3 files changed, 18 insertions(+), 4 deletions(-)
diff --git a/meta/recipes-bsp/u-boot-script/files/u-boot-script b/meta/recipes-bsp/u-boot-script/files/u-boot-script
index d053d721..a11212c0 100644
--- a/meta/recipes-bsp/u-boot-script/files/u-boot-script
+++ b/meta/recipes-bsp/u-boot-script/files/u-boot-script
@@ -15,3 +15,6 @@ NO_INITRD=""
# U-boot commands to prepend to boot script
SCRIPT_PREPEND=""
+
+# use u-boot builtin device tree
+BUILTIN_DT="no"
diff --git a/meta/recipes-bsp/u-boot-script/files/update-u-boot-script b/meta/recipes-bsp/u-boot-script/files/update-u-boot-script
index 14a81563..f4e36ed2 100755
--- a/meta/recipes-bsp/u-boot-script/files/update-u-boot-script
+++ b/meta/recipes-bsp/u-boot-script/files/update-u-boot-script
@@ -33,10 +33,18 @@ echo "${SCRIPT_PREPEND}" >> ${BOOT_CMD}
echo "setenv bootargs ${KERNEL_ARGS}" >> ${BOOT_CMD}
-echo "echo Loading /usr/lib/linux-image-${KERNEL_VERSION}/\${fdtfile}..." \
- >> ${BOOT_CMD}
-echo "load \${devtype} \${devnum}:${ROOT_PARTITION} \${fdt_addr_r}" \
- "/usr/lib/linux-image-${KERNEL_VERSION}/\${fdtfile}" >> ${BOOT_CMD}
+if [ "${BUILTIN_DT}" = "yes" ]; then
+ echo "echo Loading builtin device tree..." \
+ >> ${BOOT_CMD}
+ echo "fdt addr \${fdtcontroladdr}" >> ${BOOT_CMD}
+ echo "fdt move \${fdtcontroladdr} \${fdt_addr_r}" >> ${BOOT_CMD}
+else
+ echo "echo Loading /usr/lib/linux-image-${KERNEL_VERSION}/\${fdtfile}..." \
+ >> ${BOOT_CMD}
+ echo "load \${devtype} \${devnum}:${ROOT_PARTITION} \${fdt_addr_r}" \
+ "/usr/lib/linux-image-${KERNEL_VERSION}/\${fdtfile}" >> ${BOOT_CMD}
+fi
+
echo "echo Loading /boot/${KERNEL_FILE}-${KERNEL_VERSION}..." >> ${BOOT_CMD}
echo "load \${devtype} \${devnum}:\${distro_bootpart} \${kernel_addr_r}" \
"/boot/${KERNEL_FILE}-${KERNEL_VERSION}" >> ${BOOT_CMD}
diff --git a/meta/scripts/lib/wic/plugins/source/rootfs-u-boot.py b/meta/scripts/lib/wic/plugins/source/rootfs-u-boot.py
index 0b4f9eec..93600dc2 100644
--- a/meta/scripts/lib/wic/plugins/source/rootfs-u-boot.py
+++ b/meta/scripts/lib/wic/plugins/source/rootfs-u-boot.py
@@ -10,6 +10,7 @@
# Recognized sourceparams:
# - no_initrd=yes (disables initrd loading)
# - overlays=file.dtbo ... (overlay files)
+# - builtin_dt=no (use DT from uboot instead of kernel)
# - script_prepend=cmd;... (prepends U-Boot command)
import glob
@@ -82,6 +83,8 @@ class RootfsUBootPlugin(RootfsPlugin):
cfg.write('NO_INITRD="%s"\n' % no_initrd)
overlays = source_params.get('overlays') or ''
cfg.write('OVERLAYS="%s"\n' % overlays)
+ builtin_dt = source_params.get('builtin_dt') or ''
+ cfg.write('BUILTIN_DT="%s"\n' % builtin_dt)
script_prepend = source_params.get('script_prepend') or ''
# remove escapes from $\{var\} that are needed to avoid expansion by wic
script_prepend = re.sub(r'\$\\{([^\\]+)\\}', r'${\1}', script_prepend)
--
2.34.1
next prev parent reply other threads:[~2023-08-01 9:38 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-01 9:37 [PATCH 0/4] Rework and extend u-boot-script for DT overlays Felix Moessbauer
2023-08-01 9:37 ` [PATCH 1/4] fix(u-boot-script): use correct ramdisk size Felix Moessbauer
2023-08-03 10:22 ` Gylstorff Quirin
2023-08-01 9:37 ` [PATCH 2/4] refactor loading of DT overlays in uboot Felix Moessbauer
2023-08-08 8:48 ` Jan Kiszka
2023-08-31 4:56 ` MOESSBAUER, Felix
2023-08-01 9:37 ` Felix Moessbauer [this message]
2023-08-01 9:37 ` [PATCH 4/4] use builtin DT for nanopi-neo target Felix Moessbauer
2023-08-08 8:48 ` Jan Kiszka
2023-08-31 5:34 ` MOESSBAUER, Felix
2023-08-31 7:01 ` Jan Kiszka
2023-08-31 7:07 ` MOESSBAUER, Felix
2023-08-08 7:05 ` [PATCH 0/4] Rework and extend u-boot-script for DT overlays Uladzimir Bely
2023-08-08 10:24 ` Jan Kiszka
2023-08-09 5:40 ` Uladzimir Bely
2023-08-09 7:43 ` Baurzhan Ismagulov
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=20230801093706.1347928-4-felix.moessbauer@siemens.com \
--to=felix.moessbauer@siemens.com \
--cc=florian.bezdeka@siemens.com \
--cc=isar-users@googlegroups.com \
--cc=jan.kiszka@siemens.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox