summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2019-07-20 12:23:53 -0600
committerSimon Glass <sjg@chromium.org>2019-07-29 09:38:06 -0600
commit96b6c506ca162b97ece5a59c0d2619173e6bfad8 (patch)
tree50f7f4a6f57913695da262cbf456c0db549b4500
parent4ab88b6f2f7d857f7a998f5aae8d52af9379fb1c (diff)
binman: Write the original input fdtmap to a file
When reading an image in, write its fdtmap to a file in the output directory. This is useful for debugging. Update the 'ls' command to set up the output directory; otherwise it will fail. Signed-off-by: Simon Glass <sjg@chromium.org>
-rw-r--r--tools/binman/control.py6
-rw-r--r--tools/binman/image.py5
2 files changed, 9 insertions, 2 deletions
diff --git a/tools/binman/control.py b/tools/binman/control.py
index ab94f9d482..f9680e3948 100644
--- a/tools/binman/control.py
+++ b/tools/binman/control.py
@@ -342,7 +342,11 @@ def Binman(args):
return 0
if args.cmd == 'ls':
- ListEntries(args.image, args.paths)
+ try:
+ tools.PrepareOutputDir(None)
+ ListEntries(args.image, args.paths)
+ finally:
+ tools.FinaliseOutputDir()
return 0
if args.cmd == 'extract':
diff --git a/tools/binman/image.py b/tools/binman/image.py
index c81f7e3172..893e8cb4cd 100644
--- a/tools/binman/image.py
+++ b/tools/binman/image.py
@@ -94,7 +94,10 @@ class Image(section.Entry_section):
data[pos + fdtmap.FDTMAP_HDR_LEN:pos + 256])
dtb_size = probe_dtb.GetFdtObj().totalsize()
fdtmap_data = data[pos:pos + dtb_size + fdtmap.FDTMAP_HDR_LEN]
- dtb = fdt.Fdt.FromData(fdtmap_data[fdtmap.FDTMAP_HDR_LEN:])
+ fdt_data = fdtmap_data[fdtmap.FDTMAP_HDR_LEN:]
+ out_fname = tools.GetOutputFilename('fdtmap.in.dtb')
+ tools.WriteFile(out_fname, fdt_data)
+ dtb = fdt.Fdt.FromData(fdt_data, out_fname)
dtb.Scan()
# Return an Image with the associated nodes