cmake: support supplying custom device trees

Sometimes device trees may have differences between vanilla Linux
and SoC vendor, and the changes can be tedious to override with a
device tree overlay.

This change allows overriding the platform default dts and overlays
with a custom dts.

Signed-off-by: Markku Ahvenjärvi <markkux@ssrc.tii.ae>
This commit is contained in:
Markku Ahvenjärvi
2022-05-25 08:31:10 +03:00
committed by Gerwin Klein
parent 812c0c2a39
commit 79eff033ae

View File

@@ -92,6 +92,18 @@ include(src/arch/${KernelArch}/config.cmake)
include(include/${KernelWordSize}/mode/config.cmake)
include(src/config.cmake)
set(KernelCustomDTS "" CACHE FILEPATH "Provide a device tree file to use instead of the \
KernelPlatform's defaults")
if(NOT "${KernelCustomDTS}" STREQUAL "")
if(NOT EXISTS ${KernelCustomDTS})
message(FATAL_ERROR "Can't open external dts file '${KernelCustomDTS}'!")
endif()
# Override list to hold only custom dts
set(KernelDTSList "${KernelCustomDTS}")
message(STATUS "Using custom ${KernelCustomDTS} device tree, ignoring default dts and overlays")
endif()
if(DEFINED KernelDTSList AND (NOT "${KernelDTSList}" STREQUAL ""))
set(KernelDTSIntermediate "${CMAKE_CURRENT_BINARY_DIR}/kernel.dts")
set(