mail archive of the barebox mailing list
 help / color / mirror / Atom feed
* [PATCH 1/4] scripts/make_fit: factor dtb file name into configuration name
@ 2025-03-18  8:25 Ahmad Fatoum
  2025-03-18  8:25 ` [PATCH 2/4] amba: drop unused hepers for creating AMBA devices outside OF Ahmad Fatoum
                   ` (4 more replies)
  0 siblings, 5 replies; 12+ messages in thread
From: Ahmad Fatoum @ 2025-03-18  8:25 UTC (permalink / raw)
  To: barebox; +Cc: Uwe Kleine-König, Ahmad Fatoum

Bootloaders often support booting a specific FIT configuration by name.
This is useful when the automatic boot fails, because the bootloader's
DT compatible differs from the upstream one included with the Linux
device trees.

Currently, configuration are numbered sequentially requiring the user to
dump the FIT image to determine what number the configuration has.

Improve upon this by naming configurations after the dtb name instead.
This is what OE-core kernel-fitimage.bbclass does for example.

Cc: Uwe Kleine-König <uwe@kleine-koenig.org>
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
---
 scripts/make_fit.py | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/scripts/make_fit.py b/scripts/make_fit.py
index 075b7c258ff2..2190da4c003c 100755
--- a/scripts/make_fit.py
+++ b/scripts/make_fit.py
@@ -145,11 +145,9 @@ def finish_fit(fsw, entries):
             str: Compatible stringlist
     """
     fsw.end_node()
-    seq = 0
     with fsw.add_node('configurations'):
-        for model, compat, files in entries:
-            seq += 1
-            with fsw.add_node(f'conf-{seq}'):
+        for dtbname, model, compat, files in entries:
+            with fsw.add_node(f'conf-{dtbname}'):
                 fsw.property('compatible', bytes(compat))
                 fsw.property_string('description', model)
                 fsw.property('fdt', bytes(''.join(f'fdt-{x}\x00' for x in files), "ascii"))
@@ -266,6 +264,7 @@ def build_fit(args):
     fsw = libfdt.FdtSw()
     setup_fit(fsw, args.name)
     entries = []
+    dtbs_seen = set()
     fdts = {}
 
     # Handle the kernel
@@ -290,7 +289,13 @@ def build_fit(args):
 
         files_seq = [fdts[fn] for fn in files]
 
-        entries.append([model, compat, files_seq])
+        dtbname = os.path.basename(fname)
+        ndtbs_seen = len(dtbs_seen)
+        dtbs_seen.add(dtbname)
+        if len(dtbs_seen) == ndtbs_seen:
+            raise RuntimeError(f"Duplicate file name '{dtbname}' during FIT creation")
+
+        entries.append([dtbname, model, compat, files_seq])
 
     finish_fit(fsw, entries)
 
-- 
2.39.5




^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2025-03-18 11:34 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-03-18  8:25 [PATCH 1/4] scripts/make_fit: factor dtb file name into configuration name Ahmad Fatoum
2025-03-18  8:25 ` [PATCH 2/4] amba: drop unused hepers for creating AMBA devices outside OF Ahmad Fatoum
2025-03-18 10:53   ` Uwe Kleine-König
2025-03-18  8:25 ` [PATCH 3/4] amba: support masking data abort during identification Ahmad Fatoum
2025-03-18 11:04   ` Sascha Hauer
2025-03-18 11:24     ` Ahmad Fatoum
2025-03-18  8:25 ` [PATCH 4/4] ARM: qemu: mask data aborts during AMBA identification Ahmad Fatoum
2025-03-18 11:07   ` Sascha Hauer
2025-03-18 11:03 ` [PATCH 1/4] scripts/make_fit: factor dtb file name into configuration name Uwe Kleine-König
2025-03-18 11:27   ` Ahmad Fatoum
2025-03-18 11:33     ` Uwe Kleine-König
2025-03-18 11:07 ` Sascha Hauer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox