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