zephyr: fix handling of devicetree overlays in mcuboot
The current specific setting of devicetree overlay files using `set()` has a couple of built-in flaws. It keeps readding the overlay file on each subsequent CMake invocation. The build command (make/ninja), will automatically invoke CMake if there are any changes to files used as configure time dependencies. This can easily be seen by manually re-invoking CMake: ``` # First invocation $ cmake -DBOARD=nrf52840dk_nrf52840 -DDTC_OVERLAY_FILE=custom.dts .. Loading Zephyr default modules (Zephyr workspace). -- Application: /projects/github/ncs/bootloader/mcuboot/boot/zephyr ... -- Found devicetree overlay: custom.dts -- Found devicetree overlay: bootloader/mcuboot/boot/zephyr/dts.overlay # Second invocation $ cmake -DBOARD=nrf52840dk_nrf52840 -DDTC_OVERLAY_FILE=custom.dts .. Loading Zephyr default modules (Zephyr workspace). -- Application: /projects/github/ncs/bootloader/mcuboot/boot/zephyr ... -- Found devicetree overlay: custom.dts -- Found devicetree overlay: mcuboot/boot/zephyr/dts.overlay -- Found devicetree overlay: mcuboot/boot/zephyr/dts.overlay ``` Zephyr has built-in support for application specific overlay config which gets automatically applied when the overlay file is named: `app.overlay`. Therefore rename `dts.overlay` to `app.overlay`. Ref: https://docs.zephyrproject.org/3.2.0/build/dts/howtos.html \ #set-devicetree-overlays This change further allows users of mcuboot to place their mcuboot configuration out-of-tree of the sample by using the `APPLICATION_CONFIG_DIR` setting. Signed-off-by:Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
Loading
Please sign in to comment