mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 01:04:41 +01:00
scripts/make_fit: Move dtb processing into a function
Since build_fit() is getting quite long, move the dtb processing into a separate function. Change the double quotes in the write() call to single, to match the rest of the script. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Nicolas Schier <nsc@kernel.org> Reviewed-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Reviewed-by: Chen-Yu Tsai <wenst@chromium.org> Link: https://patch.msgid.link/20260106162738.2605574-4-sjg@chromium.org Signed-off-by: Nathan Chancellor <nathan@kernel.org>
This commit is contained in:
parent
26428e7dd6
commit
873c283698
1 changed files with 44 additions and 23 deletions
|
|
@ -277,6 +277,47 @@ def process_dtb(fname, args):
|
|||
|
||||
return (model, compat, files)
|
||||
|
||||
|
||||
def _process_dtbs(args, fsw, entries, fdts):
|
||||
"""Process all DTB files and add them to the FIT
|
||||
|
||||
Args:
|
||||
args: Program arguments
|
||||
fsw: FIT writer object
|
||||
entries: List to append entries to
|
||||
fdts: Dictionary of processed DTBs
|
||||
|
||||
Returns:
|
||||
tuple:
|
||||
Number of files processed
|
||||
Total size of files processed
|
||||
"""
|
||||
seq = 0
|
||||
size = 0
|
||||
for fname in args.dtbs:
|
||||
# Ignore non-DTB (*.dtb) files
|
||||
if os.path.splitext(fname)[1] != '.dtb':
|
||||
continue
|
||||
|
||||
try:
|
||||
(model, compat, files) = process_dtb(fname, args)
|
||||
except Exception as e:
|
||||
sys.stderr.write(f'Error processing {fname}:\n')
|
||||
raise e
|
||||
|
||||
for fn in files:
|
||||
if fn not in fdts:
|
||||
seq += 1
|
||||
size += os.path.getsize(fn)
|
||||
output_dtb(fsw, seq, fn, args.arch, args.compress)
|
||||
fdts[fn] = seq
|
||||
|
||||
files_seq = [fdts[fn] for fn in files]
|
||||
entries.append([model, compat, files_seq])
|
||||
|
||||
return seq, size
|
||||
|
||||
|
||||
def build_fit(args):
|
||||
"""Build the FIT from the provided files and arguments
|
||||
|
||||
|
|
@ -289,7 +330,6 @@ def build_fit(args):
|
|||
int: Number of configurations generated
|
||||
size: Total uncompressed size of data
|
||||
"""
|
||||
seq = 0
|
||||
size = 0
|
||||
fsw = libfdt.FdtSw()
|
||||
setup_fit(fsw, args.name)
|
||||
|
|
@ -310,34 +350,15 @@ def build_fit(args):
|
|||
size += len(data)
|
||||
write_ramdisk(fsw, data, args)
|
||||
|
||||
for fname in args.dtbs:
|
||||
# Ignore non-DTB (*.dtb) files
|
||||
if os.path.splitext(fname)[1] != '.dtb':
|
||||
continue
|
||||
|
||||
try:
|
||||
(model, compat, files) = process_dtb(fname, args)
|
||||
except Exception as e:
|
||||
sys.stderr.write(f"Error processing {fname}:\n")
|
||||
raise e
|
||||
|
||||
for fn in files:
|
||||
if fn not in fdts:
|
||||
seq += 1
|
||||
size += os.path.getsize(fn)
|
||||
output_dtb(fsw, seq, fn, args.arch, args.compress)
|
||||
fdts[fn] = seq
|
||||
|
||||
files_seq = [fdts[fn] for fn in files]
|
||||
|
||||
entries.append([model, compat, files_seq])
|
||||
count, fdt_size = _process_dtbs(args, fsw, entries, fdts)
|
||||
size += fdt_size
|
||||
|
||||
finish_fit(fsw, entries, bool(args.ramdisk))
|
||||
|
||||
# Include the kernel itself in the returned file count
|
||||
fdt = fsw.as_fdt()
|
||||
fdt.pack()
|
||||
return fdt.as_bytearray(), seq + 1 + bool(args.ramdisk), size
|
||||
return fdt.as_bytearray(), count + 1 + bool(args.ramdisk), size
|
||||
|
||||
|
||||
def run_make_fit():
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue