| 1 | # SPDX-License-Identifier: GPL-2.0 |
| 2 | config DTC |
| 3 | bool |
| 4 | |
| 5 | config GENERIC_BUILTIN_DTB |
| 6 | bool |
| 7 | |
| 8 | config BUILTIN_DTB_ALL |
| 9 | bool |
| 10 | |
| 11 | menuconfig 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 | |
| 19 | if OF |
| 20 | |
| 21 | config 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 | |
| 45 | config 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 | |
| 54 | config 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 | |
| 64 | config OF_FLATTREE |
| 65 | bool |
| 66 | select DTC |
| 67 | select LIBFDT |
| 68 | select CRC32 |
| 69 | |
| 70 | config 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 | |
| 75 | config OF_PROMTREE |
| 76 | bool |
| 77 | |
| 78 | config 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. |
| 83 | config 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 | |
| 91 | config OF_ADDRESS |
| 92 | def_bool y |
| 93 | depends on !SPARC && (HAS_IOMEM || UML) |
| 94 | |
| 95 | config OF_IRQ |
| 96 | def_bool y |
| 97 | depends on !SPARC && IRQ_DOMAIN |
| 98 | |
| 99 | config OF_RESERVED_MEM |
| 100 | def_bool OF_EARLY_FLATTREE |
| 101 | |
| 102 | config OF_RESOLVE |
| 103 | bool |
| 104 | |
| 105 | config 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 | |
| 116 | config 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 | |
| 126 | config OF_NUMA |
| 127 | bool |
| 128 | |
| 129 | endif # OF |