]>
git.ipfire.org Git - people/ms/u-boot.git/blob - tools/dtoc/dtoc.py
3 # Copyright (C) 2016 Google, Inc
4 # Written by Simon Glass <sjg@chromium.org>
6 # SPDX-License-Identifier: GPL-2.0+
9 """Device tree to C tool
11 This tool converts a device tree binary file (.dtb) into two C files. The
12 indent is to allow a C program to access data from the device tree without
13 having to link against libfdt. By putting the data from the device tree into
14 C structures, normal C code can be used. This helps to reduce the size of the
17 Dtoc produces two output files:
19 dt-structs.h - contains struct definitions
20 dt-platdata.c - contains data from the device tree using the struct
21 definitions, as well as U-Boot driver definitions.
23 This tool is used in U-Boot to provide device tree data to SPL without
24 increasing the code size of SPL. This supports the CONFIG_SPL_OF_PLATDATA
25 options. For more information about the use of this options and tool please
26 see doc/driver-model/of-plat.txt
29 from optparse
import OptionParser
34 # Bring in the patman libraries
35 our_path
= os
.path
.dirname(os
.path
.realpath(__file__
))
36 sys
.path
.append(os
.path
.join(our_path
, '../patman'))
41 """Run all the test we have for dtoc"""
44 result
= unittest
.TestResult()
45 sys
.argv
= [sys
.argv
[0]]
46 for module
in (test_dtoc
.TestDtoc
,):
47 suite
= unittest
.TestLoader().loadTestsFromTestCase(module
)
51 for _
, err
in result
.errors
:
53 for _
, err
in result
.failures
:
56 if __name__
!= '__main__':
59 parser
= OptionParser()
60 parser
.add_option('-d', '--dtb-file', action
='store',
61 help='Specify the .dtb input file')
62 parser
.add_option('--include-disabled', action
='store_true',
63 help='Include disabled nodes')
64 parser
.add_option('-o', '--output', action
='store', default
='-',
65 help='Select output filename')
66 parser
.add_option('-t', '--test', action
='store_true', dest
='test',
67 default
=False, help='run tests')
68 (options
, args
) = parser
.parse_args()
70 # Run our meagre tests
75 dtb_platdata
.run_steps(args
, options
.dtb_file
, options
.include_disabled
,