dtoc: Move the main logic into the dtb_platdata file

Collect the main logic of dtoc into a function and put it into
dtb_platdata. This will allow tests to use this function instead of
duplicating the code themselves.

Signed-off-by: Simon Glass <sjg@chromium.org>
master
Simon Glass 7 years ago
parent 56e0bbe057
commit fa0ea5b09e
  1. 29
      tools/dtoc/dtb_platdata.py
  2. 19
      tools/dtoc/dtoc.py

@ -422,3 +422,32 @@ class DtbPlatdata(object):
nodes_to_output.remove(req_node)
self.output_node(node)
nodes_to_output.remove(node)
def run_steps(args, dtb_file, include_disabled, output):
"""Run all the steps of the dtoc tool
Args:
args: List of non-option arguments provided to the problem
dtb_file: Filename of dtb file to process
include_disabled: True to include disabled nodes
output: Name of output file
"""
if not args:
raise ValueError('Please specify a command: struct, platdata')
plat = DtbPlatdata(dtb_file, include_disabled)
plat.scan_dtb()
plat.scan_tree()
plat.setup_output(output)
structs = plat.scan_structs()
plat.scan_phandles()
for cmd in args[0].split(','):
if cmd == 'struct':
plat.generate_structs(structs)
elif cmd == 'platdata':
plat.generate_tables()
else:
raise ValueError("Unknown command '%s': (use: struct, platdata)" %
cmd)

@ -49,20 +49,5 @@ parser.add_option('-o', '--output', action='store', default='-',
help='Select output filename')
(options, args) = parser.parse_args()
if not args:
raise ValueError('Please specify a command: struct, platdata')
plat = dtb_platdata.DtbPlatdata(options.dtb_file, options.include_disabled)
plat.scan_dtb()
plat.scan_tree()
plat.setup_output(options.output)
structs = plat.scan_structs()
plat.scan_phandles()
for cmd in args[0].split(','):
if cmd == 'struct':
plat.generate_structs(structs)
elif cmd == 'platdata':
plat.generate_tables()
else:
raise ValueError("Unknown command '%s': (use: struct, platdata)" % cmd)
dtb_platdata.run_steps(args, options.dtb_file, options.include_disabled,
options.output)

Loading…
Cancel
Save