From 79eff033aeb4e25ae2783f44cb4f72e5cf04fd57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markku=20Ahvenj=C3=A4rvi?= Date: Wed, 25 May 2022 08:31:10 +0300 Subject: [PATCH] cmake: support supplying custom device trees MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- config.cmake | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/config.cmake b/config.cmake index b28aa750b..40bf26638 100644 --- a/config.cmake +++ b/config.cmake @@ -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(