Skip to content

Commit 8885b46

Browse files
author
Marcin Maka
committed
tools: sof-ri-info: move parsing adsp mft outside cse mft
There might be binaries where cse mft is not included. And adsp mft begins at std offset 0x2000 from the optional extended manifest. Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
1 parent dcefb7f commit 8885b46

1 file changed

Lines changed: 11 additions & 6 deletions

File tree

‎tools/sof_ri_info/sof_ri_info.py‎

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,7 @@ def parse_extended_manifest(reader):
316316

317317
return ext_mft
318318

319-
def parse_cse_manifest(reader, add_module_entries):
319+
def parse_cse_manifest(reader):
320320
""" Parses CSE manifest form sof binary
321321
"""
322322
cse_mft = CseManifest(reader.get_offset())
@@ -359,6 +359,9 @@ def parse_cse_manifest(reader, add_module_entries):
359359
hdr_entry.add_a(Ahex('entry_length', entry_length))
360360
hdr.add_comp(hdr_entry)
361361

362+
reader.info('CSE Entry name {} length {}'.format(entry_name,
363+
entry_length))
364+
362365
if '.man' in entry_name:
363366
entry = CssManifest(entry_name, entry_offset)
364367
cur_off = reader.set_offset(reader.ext_mft_length + entry_offset)
@@ -371,10 +374,8 @@ def parse_cse_manifest(reader, add_module_entries):
371374
entry.name = '{} ({})'.format(entry_name, entry.name)
372375
reader.set_offset(cur_off)
373376
else:
374-
# override offset with precise one
375-
cur_off = reader.set_offset(reader.ext_mft_length + 0x2000)
376-
entry = parse_adsp_manifest(reader, entry_name, add_module_entries)
377-
reader.set_offset(cur_off)
377+
# indicate the place, the entry is enumerated. mft parsed later
378+
entry = Component('adsp_mft_cse_entry', entry_name, entry_offset)
378379
cse_mft.add_comp(entry)
379380

380381
nb_index += 1
@@ -576,7 +577,10 @@ def parse_fw_bin(path, verbose, add_module_entries):
576577
parsed_bin.add_a(Astring('file_name', reader.file_name))
577578
parsed_bin.add_a(Auint('file_size', reader.file_size))
578579
parsed_bin.add_comp(parse_extended_manifest(reader))
579-
parsed_bin.add_comp(parse_cse_manifest(reader, add_module_entries))
580+
parsed_bin.add_comp(parse_cse_manifest(reader))
581+
reader.set_offset(reader.ext_mft_length + 0x2000)
582+
parsed_bin.add_comp(parse_adsp_manifest(reader, 'cavs0015',
583+
add_module_entries))
580584

581585
reader.info('Parsing finished', show_offset = False)
582586
return parsed_bin
@@ -587,6 +591,7 @@ class BinReader():
587591
def __init__(self, path, verbose):
588592
self.verbose = verbose
589593
self.cur_offset = 0
594+
self.ext_mft_length = 0
590595
self.info('Reading SOF ri image ' + path)
591596
self.file_name = path
592597
# read the content

0 commit comments

Comments
 (0)