Linux 6.9-rc1
[linux-2.6-microblaze.git] / drivers / of / Kconfig
1 # SPDX-License-Identifier: GPL-2.0
2 config DTC
3         bool
4
5 menuconfig OF
6         bool "Device Tree and Open Firmware support"
7         help
8           This option enables the device tree infrastructure.
9           It is automatically selected by platforms that need it or can
10           be enabled manually for unittests, overlays or
11           compile-coverage.
12
13 if OF
14
15 config OF_UNITTEST
16         bool "Device Tree runtime unit tests"
17         depends on OF_EARLY_FLATTREE
18         select IRQ_DOMAIN
19         select OF_RESOLVE
20         help
21           This option builds in test cases for the device tree infrastructure
22           that are executed once at boot time, and the results dumped to the
23           console.
24
25           This option should only be enabled for a development kernel. The tests
26           will taint the kernel with TAINT_TEST. The tests will cause ERROR and
27           WARNING messages to print on the console. The tests will cause stack
28           traces to print on the console.  It is possible that the tests will
29           leave the devicetree in a corrupted state.
30
31           The unittest output will be verbose.  Copy the output to a file
32           via capturing the console output or via the dmesg command.  Process
33           this file with scripts/dtc/of_unittest_expect to reduce the
34           verbosity, test whether expected output is present, and to
35           summarize the results.
36
37           If unsure, say N here. This option is not safe to enable.
38
39 config OF_KUNIT_TEST
40         tristate "Devicetree KUnit Test" if !KUNIT_ALL_TESTS
41         depends on KUNIT
42         default KUNIT_ALL_TESTS
43         help
44           This option builds KUnit unit tests for device tree infrastructure.
45
46           If unsure, say N here, but this option is safe to enable.
47
48 config OF_ALL_DTBS
49         bool "Build all Device Tree Blobs"
50         depends on COMPILE_TEST
51         select DTC
52         help
53           This option builds all possible Device Tree Blobs (DTBs) for the
54           current architecture.
55
56           If unsure, say N here, but this option is safe to enable.
57
58 config OF_FLATTREE
59         bool
60         select DTC
61         select LIBFDT
62         select CRC32
63
64 config OF_EARLY_FLATTREE
65         def_bool OF && !(SPARC || ALPHA || HEXAGON || M68K || PARISC || S390)
66         select DMA_DECLARE_COHERENT if HAS_DMA && HAS_IOMEM
67         select OF_FLATTREE
68
69 config OF_PROMTREE
70         bool
71
72 config OF_KOBJ
73         def_bool SYSFS
74
75 # Hardly any platforms need this.  It is safe to select, but only do so if you
76 # need it.
77 config OF_DYNAMIC
78         bool "Support for dynamic device trees" if OF_UNITTEST
79         select OF_KOBJ
80         help
81           On some platforms, the device tree can be manipulated at runtime.
82           While this option is selected automatically on such platforms, you
83           can enable it manually to improve device tree unit test coverage.
84
85 config OF_ADDRESS
86         def_bool y
87         depends on !SPARC && (HAS_IOMEM || UML)
88
89 config OF_IRQ
90         def_bool y
91         depends on !SPARC && IRQ_DOMAIN
92
93 config OF_RESERVED_MEM
94         def_bool OF_EARLY_FLATTREE
95
96 config OF_RESOLVE
97         bool
98
99 config OF_OVERLAY
100         bool "Device Tree overlays"
101         select OF_DYNAMIC
102         select OF_FLATTREE
103         select OF_RESOLVE
104         help
105           Overlays are a method to dynamically modify part of the kernel's
106           device tree with dynamically loaded data.
107           While this option is selected automatically when needed, you can
108           enable it manually to improve device tree unit test coverage.
109
110 config OF_NUMA
111         bool
112
113 endif # OF