0001 # SPDX-License-Identifier: GPL-2.0
0002 config DTC
0003 bool
0004
0005 menuconfig OF
0006 bool "Device Tree and Open Firmware support"
0007 help
0008 This option enables the device tree infrastructure.
0009 It is automatically selected by platforms that need it or can
0010 be enabled manually for unittests, overlays or
0011 compile-coverage.
0012
0013 if OF
0014
0015 config OF_UNITTEST
0016 bool "Device Tree runtime unit tests"
0017 depends on !SPARC
0018 select IRQ_DOMAIN
0019 select OF_EARLY_FLATTREE
0020 select OF_RESOLVE
0021 help
0022 This option builds in test cases for the device tree infrastructure
0023 that are executed once at boot time, and the results dumped to the
0024 console.
0025
0026 If unsure, say N here, but this option is safe to enable.
0027
0028 config OF_ALL_DTBS
0029 bool "Build all Device Tree Blobs"
0030 depends on COMPILE_TEST
0031 select DTC
0032 help
0033 This option builds all possible Device Tree Blobs (DTBs) for the
0034 current architecture.
0035
0036 If unsure, say N here, but this option is safe to enable.
0037
0038 config OF_FLATTREE
0039 bool
0040 select DTC
0041 select LIBFDT
0042 select CRC32
0043
0044 config OF_EARLY_FLATTREE
0045 bool
0046 select DMA_DECLARE_COHERENT if HAS_DMA
0047 select OF_FLATTREE
0048
0049 config OF_PROMTREE
0050 bool
0051
0052 config OF_KOBJ
0053 def_bool SYSFS
0054
0055 # Hardly any platforms need this. It is safe to select, but only do so if you
0056 # need it.
0057 config OF_DYNAMIC
0058 bool "Support for dynamic device trees" if OF_UNITTEST
0059 select OF_KOBJ
0060 help
0061 On some platforms, the device tree can be manipulated at runtime.
0062 While this option is selected automatically on such platforms, you
0063 can enable it manually to improve device tree unit test coverage.
0064
0065 config OF_ADDRESS
0066 def_bool y
0067 depends on !SPARC && (HAS_IOMEM || UML)
0068
0069 config OF_IRQ
0070 def_bool y
0071 depends on !SPARC && IRQ_DOMAIN
0072
0073 config OF_RESERVED_MEM
0074 def_bool OF_EARLY_FLATTREE
0075
0076 config OF_RESOLVE
0077 bool
0078
0079 config OF_OVERLAY
0080 bool "Device Tree overlays"
0081 select OF_DYNAMIC
0082 select OF_FLATTREE
0083 select OF_RESOLVE
0084 help
0085 Overlays are a method to dynamically modify part of the kernel's
0086 device tree with dynamically loaded data.
0087 While this option is selected automatically when needed, you can
0088 enable it manually to improve device tree unit test coverage.
0089
0090 config OF_NUMA
0091 bool
0092
0093 config OF_DMA_DEFAULT_COHERENT
0094 # arches should select this if DMA is coherent by default for OF devices
0095 bool
0096
0097 endif # OF