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