diff --git a/boards/arm/actinius_icarus_bee/CMakeLists.txt b/boards/arm/actinius_icarus_bee/CMakeLists.txt new file mode 100644 index 00000000000..eb960d65665 --- /dev/null +++ b/boards/arm/actinius_icarus_bee/CMakeLists.txt @@ -0,0 +1,7 @@ +# +# Copyright (c) 2021 Actinius +# +# SPDX-License-Identifier: Apache-2.0 + +zephyr_library() +zephyr_library_sources(board.c) diff --git a/boards/arm/actinius_icarus_bee/Kconfig b/boards/arm/actinius_icarus_bee/Kconfig new file mode 100644 index 00000000000..b915b23e89a --- /dev/null +++ b/boards/arm/actinius_icarus_bee/Kconfig @@ -0,0 +1,17 @@ +# Actinius Icarus board configuration + +# Copyright (c) 2021 Actinius +# SPDX-License-Identifier: Apache-2.0 + +if BOARD_ACTINIUS_ICARUS_BEE || BOARD_ACTINIUS_ICARUS_BEE_NS + +config BOARD_SELECT_SIM_EXTERNAL + bool "Use external SIM" + help + Use the external SIM for communication, instead of the eSIM + +module = BOARD_ICARUS_BEE +module-str = Board Control +source "subsys/logging/Kconfig.template.log_config" + +endif # BOARD_ACTINIUS_ICARUS_BEE || BOARD_ACTINIUS_ICARUS_BEE_NS diff --git a/boards/arm/actinius_icarus_bee/Kconfig.board b/boards/arm/actinius_icarus_bee/Kconfig.board new file mode 100644 index 00000000000..39081152558 --- /dev/null +++ b/boards/arm/actinius_icarus_bee/Kconfig.board @@ -0,0 +1,14 @@ +# Actinius Icarus Bee board configuration + +# Copyright (c) 2021 Actinius +# SPDX-License-Identifier: Apache-2.0 + +if SOC_NRF9160_SICA + +config BOARD_ACTINIUS_ICARUS_BEE + bool "Actinius Icarus Bee" + +config BOARD_ACTINIUS_ICARUS_BEE_NS + bool "Actinius Icarus Bee Non-Secure" + +endif # SOC_NRF9160_SICA diff --git a/boards/arm/actinius_icarus_bee/Kconfig.defconfig b/boards/arm/actinius_icarus_bee/Kconfig.defconfig new file mode 100644 index 00000000000..40900311774 --- /dev/null +++ b/boards/arm/actinius_icarus_bee/Kconfig.defconfig @@ -0,0 +1,38 @@ +# Actinius Icarus Bee board configuration + +# Copyright (c) 2021 Actinius +# SPDX-License-Identifier: Apache-2.0 + +if BOARD_ACTINIUS_ICARUS_BEE || BOARD_ACTINIUS_ICARUS_BEE_NS + +config BOARD + default "actinius_icarus_bee" + +# For the secure version of the board the firmware is linked at the beginning +# of the flash, or into the code-partition defined in DT if it is intended to +# be loaded by MCUboot. If the secure firmware is to be combined with a non- +# secure image (TRUSTED_EXECUTION_SECURE=y), the secure FW image shall always +# be restricted to the size of its code partition. +# For the non-secure version of the board, the firmware +# must be linked into the code-partition (non-secure) defined in DT, regardless. +# Apply this configuration below by setting the Kconfig symbols used by +# the linker according to the information extracted from DT partitions. + +# Workaround for not being able to have commas in macro arguments +DT_CHOSEN_Z_CODE_PARTITION := zephyr,code-partition + +config FLASH_LOAD_SIZE + default $(dt_chosen_reg_size_hex,$(DT_CHOSEN_Z_CODE_PARTITION)) + depends on BOARD_ACTINIUS_ICARUS_BEE && TRUSTED_EXECUTION_SECURE + +if BOARD_ACTINIUS_ICARUS_BEE_NS + +config FLASH_LOAD_OFFSET + default $(dt_chosen_reg_addr_hex,$(DT_CHOSEN_Z_CODE_PARTITION)) + +config FLASH_LOAD_SIZE + default $(dt_chosen_reg_size_hex,$(DT_CHOSEN_Z_CODE_PARTITION)) + +endif # BOARD_ACTINIUS_ICARUS_BEE_NS + +endif # BOARD_ACTINIUS_ICARUS_BEE || BOARD_ACTINIUS_ICARUS_BEE_NS diff --git a/boards/arm/actinius_icarus_bee/actinius_icarus_bee.dts b/boards/arm/actinius_icarus_bee/actinius_icarus_bee.dts new file mode 100644 index 00000000000..98d70fc2815 --- /dev/null +++ b/boards/arm/actinius_icarus_bee/actinius_icarus_bee.dts @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2021 Actinius + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/dts-v1/; +#include +#include "actinius_icarus_bee_common.dts" + +/ { + chosen { + zephyr,sram = &sram0_s; + zephyr,flash = &flash0; + zephyr,code-partition = &slot0_partition; + zephyr,sram-secure-partition = &sram0_s; + zephyr,sram-non-secure-partition = &sram0_ns; + }; +}; diff --git a/boards/arm/actinius_icarus_bee/actinius_icarus_bee.yaml b/boards/arm/actinius_icarus_bee/actinius_icarus_bee.yaml new file mode 100644 index 00000000000..955c92c9790 --- /dev/null +++ b/boards/arm/actinius_icarus_bee/actinius_icarus_bee.yaml @@ -0,0 +1,17 @@ +identifier: actinius_icarus_bee +name: Actinius Icarus Bee +type: mcu +arch: arm +toolchain: + - gnuarmemb + - xtools + - zephyr +ram: 64 +flash: 256 +supported: + - gpio + - i2c + - pwm + - spi + - watchdog + - counter diff --git a/boards/arm/actinius_icarus_bee/actinius_icarus_bee_common.dts b/boards/arm/actinius_icarus_bee/actinius_icarus_bee_common.dts new file mode 100644 index 00000000000..17d7ea47bd0 --- /dev/null +++ b/boards/arm/actinius_icarus_bee/actinius_icarus_bee_common.dts @@ -0,0 +1,221 @@ +/* + * Copyright (c) 2021 Actinius + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + model = "Actinius Icarus Bee"; + compatible = "actinius,icarus_bee"; + + chosen { + zephyr,console = &uart0; + zephyr,shell-uart = &uart0; + zephyr,uart-mcumgr = &uart0; + }; + + leds { + compatible = "gpio-leds"; + + red_led: led_0 { + gpios = <&gpio0 21 GPIO_ACTIVE_LOW>; + label = "Red LED"; + }; + + green_led: led_1 { + gpios = <&gpio0 22 GPIO_ACTIVE_LOW>; + label = "Green LED"; + }; + + blue_led: led_2 { + gpios = <&gpio0 25 GPIO_ACTIVE_LOW>; + label = "Blue LED"; + }; + }; + + pwmleds { + compatible = "pwm-leds"; + + red_pwm_led: led_pwm_0 { + pwms = <&pwm0 21>; + label = "Red PWM LED"; + }; + + green_pwm_led: led_pwm_1 { + pwms = <&pwm0 22>; + label = "Green PWM LED"; + }; + + blue_pwm_led: led_pwm_2 { + pwms = <&pwm0 25>; + label = "Blue PWM LED"; + }; + }; + + buttons { + compatible = "gpio-keys"; + + button0: button_0 { + gpios = <&gpio0 4 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; + label = "Push Button 1"; + }; + }; + + aliases { + led0 = &red_led; + led1 = &green_led; + led2 = &blue_led; + pwm-led0 = &red_pwm_led; + pwm-led1 = &green_pwm_led; + pwm-led2 = &blue_pwm_led; + red-pwm-led = &red_pwm_led; + green-pwm-led = &green_pwm_led; + blue-pwm-led = &blue_pwm_led; + sw0 = &button0; + bootloader-led0 = &green_pwm_led; + }; +}; + +&adc { + status ="okay"; +}; + +&gpiote { + status = "okay"; +}; + +&gpio0 { + status = "okay"; +}; + +&uart0 { + status = "okay"; + + current-speed = <115200>; + tx-pin = <2>; + rx-pin = <5>; + cts-pin = <14>; + rts-pin = <18>; +}; + +&i2c2 { + compatible = "nordic,nrf-twim"; + status = "okay"; + + clock-frequency = ; + sda-pin = <10>; + scl-pin = <11>; + + lis2dh12-accel@19 { + compatible = "st,lis2dh12", "st,lis2dh"; + reg = <0x19>; + irq-gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>, + <&gpio0 29 GPIO_ACTIVE_HIGH>; + label = "LIS2DH12-ACCEL"; + }; +}; + +&spi3 { + compatible = "nordic,nrf-spim"; + status = "okay"; + + sck-pin = <6>; + mosi-pin = <3>; + miso-pin = <8>; + + cs-gpios = <&gpio0 9 GPIO_ACTIVE_LOW>; + + w25q64: w25q64jv@0 { + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <80000000>; + label = "W25Q64"; + jedec-id = [ef 40 17]; + size = <0x4000000>; + has-dpd; + t-enter-dpd = <3500>; + t-exit-dpd = <3500>; + }; +}; + +&pwm0 { + status = "okay"; + + ch0-pin = <21>; + ch0-inverted; + + ch1-pin = <22>; + ch1-inverted; + + ch2-pin = <25>; + ch2-inverted; +}; + +&timer0 { + status = "okay"; +}; + +&timer1 { + status = "okay"; +}; + +&timer2 { + status = "okay"; +}; + +&flash0 { + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + boot_partition: partition@0 { + label = "mcuboot"; + reg = <0x00000000 0x10000>; + }; + slot0_partition: partition@10000 { + label = "image-0"; + }; + slot0_ns_partition: partition@50000 { + label = "image-0-nonsecure"; + }; + slot1_partition: partition@80000 { + label = "image-1"; + }; + slot1_ns_partition: partition@c0000 { + label = "image-1-nonsecure"; + }; + scratch_partition: partition@f0000 { + label = "image-scratch"; + reg = <0x000f0000 0xa000>; + }; + storage_partition: partition@fa000 { + label = "storage"; + reg = <0x000fa000 0x00006000>; + }; + }; +}; + +/ { + + reserved-memory { + #address-cells = <1>; + #size-cells = <1>; + ranges; + + sram0_s: image_s@20000000 { + /* Secure image memory */ + }; + + sram0_modem: image_modem@20010000 { + /* Modem (shared) memory */ + }; + + sram0_ns: image_ns@20020000 { + /* Non-Secure image memory */ + }; + }; +}; + +/* Include partition configuration file */ +#include "actinius_icarus_bee_partition_conf.dts" diff --git a/boards/arm/actinius_icarus_bee/actinius_icarus_bee_defconfig b/boards/arm/actinius_icarus_bee/actinius_icarus_bee_defconfig new file mode 100644 index 00000000000..64de49c899b --- /dev/null +++ b/boards/arm/actinius_icarus_bee/actinius_icarus_bee_defconfig @@ -0,0 +1,24 @@ +# SPDX-License-Identifier: Apache-2.0 + +CONFIG_SOC_SERIES_NRF91X=y +CONFIG_SOC_NRF9160_SICA=y +CONFIG_BOARD_ACTINIUS_ICARUS_BEE=y + +# Enable MPU +CONFIG_ARM_MPU=y + +# Enable hardware stack protection +CONFIG_HW_STACK_PROTECTION=y + +# Enable TrustZone-M +CONFIG_ARM_TRUSTZONE_M=y + +# enable GPIO +CONFIG_GPIO=y + +# Enable uart driver +CONFIG_SERIAL=y + +# enable console +CONFIG_CONSOLE=y +CONFIG_UART_CONSOLE=y diff --git a/boards/arm/actinius_icarus_bee/actinius_icarus_bee_ns.dts b/boards/arm/actinius_icarus_bee/actinius_icarus_bee_ns.dts new file mode 100644 index 00000000000..2f48d68da45 --- /dev/null +++ b/boards/arm/actinius_icarus_bee/actinius_icarus_bee_ns.dts @@ -0,0 +1,17 @@ +/* + * Copyright (c) 2021 Actinius + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/dts-v1/; +#include +#include "actinius_icarus_bee_common.dts" + +/ { + chosen { + zephyr,flash = &flash0; + zephyr,sram = &sram0_ns; + zephyr,code-partition = &slot0_ns_partition; + }; +}; diff --git a/boards/arm/actinius_icarus_bee/actinius_icarus_bee_ns.yaml b/boards/arm/actinius_icarus_bee/actinius_icarus_bee_ns.yaml new file mode 100644 index 00000000000..d4f50773719 --- /dev/null +++ b/boards/arm/actinius_icarus_bee/actinius_icarus_bee_ns.yaml @@ -0,0 +1,17 @@ +identifier: actinius_icarus_bee_ns +name: Actinius Icarus Bee Non-Secure +type: mcu +arch: arm +toolchain: + - gnuarmemb + - xtools + - zephyr +ram: 128 +flash: 192 +supported: + - gpio + - i2c + - pwm + - spi + - watchdog + - counter diff --git a/boards/arm/actinius_icarus_bee/actinius_icarus_bee_ns_defconfig b/boards/arm/actinius_icarus_bee/actinius_icarus_bee_ns_defconfig new file mode 100644 index 00000000000..7e0d1c6e2df --- /dev/null +++ b/boards/arm/actinius_icarus_bee/actinius_icarus_bee_ns_defconfig @@ -0,0 +1,27 @@ +# SPDX-License-Identifier: Apache-2.0 + +CONFIG_SOC_SERIES_NRF91X=y +CONFIG_SOC_NRF9160_SICA=y +CONFIG_BOARD_ACTINIUS_ICARUS_BEE_NS=y + +# Enable MPU +CONFIG_ARM_MPU=y + +# Enable hardware stack protection +CONFIG_HW_STACK_PROTECTION=y + +# Enable TrustZone-M +CONFIG_ARM_TRUSTZONE_M=y + +# This Board implies building Non-Secure firmware +CONFIG_TRUSTED_EXECUTION_NONSECURE=y + +# enable GPIO +CONFIG_GPIO=y + +# Enable uart driver +CONFIG_SERIAL=y + +# enable console +CONFIG_CONSOLE=y +CONFIG_UART_CONSOLE=y diff --git a/boards/arm/actinius_icarus_bee/actinius_icarus_bee_partition_conf.dts b/boards/arm/actinius_icarus_bee/actinius_icarus_bee_partition_conf.dts new file mode 100644 index 00000000000..f26de60fe85 --- /dev/null +++ b/boards/arm/actinius_icarus_bee/actinius_icarus_bee_partition_conf.dts @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2021 Actinius + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/* + * Default Flash planning for actinius_icarus_bee. + * + * Zephyr build for nRF9160 with ARM TrustZone-M support, + * implies building Secure and Non-Secure Zephyr images. + * + * Secure image will be placed, by default, in flash0 + * (or in slot0, if MCUboot is present). + * Secure image will use sram0 for system memory. + * + * Non-Secure image will be placed in slot0_ns, and use + * sram0_ns for system memory. + * + * Note that the Secure image only requires knowledge of + * the beginning of the Non-Secure image (not its size). + */ + +&slot0_partition { + reg = <0x00010000 0x40000>; +}; + +&slot0_ns_partition { + reg = <0x00050000 0x30000>; +}; + +&slot1_partition { + reg = <0x00080000 0x40000>; +}; + +&slot1_ns_partition { + reg = <0x000c0000 0x30000>; +}; + +/* Default SRAM planning when building for nRF9160 with + * ARM TrustZone-M support + * - Lowest 64 kB SRAM allocated to Secure image (sram0_s). + * - 64 kB SRAM reserved for and used by the modem library + * (sram0_modem). This memory is Non-Secure. + * - Upper 128 kB allocated to Non-Secure image (sram0_ns). + */ + +&sram0_s { + reg = <0x20000000 DT_SIZE_K(64)>; +}; + +&sram0_modem { + reg = <0x20010000 DT_SIZE_K(64)>; +}; + +&sram0_ns { + reg = <0x20020000 DT_SIZE_K(128)>; +}; diff --git a/boards/arm/actinius_icarus_bee/board.c b/boards/arm/actinius_icarus_bee/board.c new file mode 100644 index 00000000000..7b191c80466 --- /dev/null +++ b/boards/arm/actinius_icarus_bee/board.c @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2021 Actinius + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include + +#include +LOG_MODULE_REGISTER(board_control, CONFIG_BOARD_ICARUS_BEE_LOG_LEVEL); + +#define SIM_SELECT_PIN 12 + +static void select_sim(void) +{ + const struct device *port = device_get_binding(DT_LABEL(DT_NODELABEL(gpio0))); + + if (!port) { + LOG_ERR("Could not get GPIO Device Binding"); + + return; + } + + #ifdef CONFIG_BOARD_SELECT_SIM_EXTERNAL + gpio_pin_configure(port, SIM_SELECT_PIN, GPIO_OUTPUT_LOW); + LOG_INF("External SIM is selected"); + #else + gpio_pin_configure(port, SIM_SELECT_PIN, GPIO_OUTPUT_HIGH); + LOG_INF("eSIM is selected"); + #endif +} + +static int board_actinius_icarus_bee_init(const struct device *dev) +{ + ARG_UNUSED(dev); + + select_sim(); + + return 0; +} + +SYS_INIT(board_actinius_icarus_bee_init, POST_KERNEL, + CONFIG_KERNEL_INIT_PRIORITY_DEFAULT); diff --git a/boards/arm/actinius_icarus_bee/board.cmake b/boards/arm/actinius_icarus_bee/board.cmake new file mode 100644 index 00000000000..4556a8aa9b2 --- /dev/null +++ b/boards/arm/actinius_icarus_bee/board.cmake @@ -0,0 +1,5 @@ +# SPDX-License-Identifier: Apache-2.0 + +board_runner_args(jlink "--device=cortex-m33" "--speed=4000") +include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake) +include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake) diff --git a/boards/arm/actinius_icarus_bee/doc/img/icarus-bee-external-pins.png b/boards/arm/actinius_icarus_bee/doc/img/icarus-bee-external-pins.png new file mode 100644 index 00000000000..3bda407f10d Binary files /dev/null and b/boards/arm/actinius_icarus_bee/doc/img/icarus-bee-external-pins.png differ diff --git a/boards/arm/actinius_icarus_bee/doc/img/icarus-bee-peripherals-pins.png b/boards/arm/actinius_icarus_bee/doc/img/icarus-bee-peripherals-pins.png new file mode 100644 index 00000000000..0ff49c8519c Binary files /dev/null and b/boards/arm/actinius_icarus_bee/doc/img/icarus-bee-peripherals-pins.png differ diff --git a/boards/arm/actinius_icarus_bee/doc/img/icarus-bee.png b/boards/arm/actinius_icarus_bee/doc/img/icarus-bee.png new file mode 100644 index 00000000000..09626c4a0fe Binary files /dev/null and b/boards/arm/actinius_icarus_bee/doc/img/icarus-bee.png differ diff --git a/boards/arm/actinius_icarus_bee/doc/index.rst b/boards/arm/actinius_icarus_bee/doc/index.rst new file mode 100644 index 00000000000..64db67d9163 --- /dev/null +++ b/boards/arm/actinius_icarus_bee/doc/index.rst @@ -0,0 +1,135 @@ +.. _actinius_icarus_bee: + +Actinius Icarus Bee +################### + +Overview +******** + +.. figure:: img/icarus-bee.png + :width: 450px + :align: center + :alt: Icarus Bee + + Icarus Bee (nRF9160 Bee) + +The Icarus Bee is a cellular IoT board in Bee/xBee form factor. +It is built around Nordic Semi's nRF9160 modem and combines +LTE-M, NB-IoT, GPS, accelerometer, SPI Flash, RGB LED, Button, +as well as an eSIM and a nano SIM connector. + +The main uController is the Nordic Semiconductor nRF9160, with +ARM Cortex-M33F CPU, ARMv8-M Security Extension and the +following devices (provided directly by Nordic): + +* :abbr:`ADC (Analog to Digital Converter)` +* CLOCK +* FLASH +* :abbr:`GPIO (General Purpose Input Output)` +* :abbr:`I2C (Inter-Integrated Circuit)` +* :abbr:`MPU (Memory Protection Unit)` +* :abbr:`NVIC (Nested Vectored Interrupt Controller)` +* :abbr:`PWM (Pulse Width Modulation)` +* :abbr:`RTC (nRF RTC System Clock)` +* Segger RTT (RTT Console) +* :abbr:`SPI (Serial Peripheral Interface)` +* :abbr:`UARTE (Universal asynchronous receiver-transmitter with EasyDMA)` +* :abbr:`WDT (Watchdog Timer)` +* :abbr:`IDAU (Implementation Defined Attribution Unit)` + +.. figure:: img/icarus-bee-external-pins.png + :width: 450px + :align: center + :alt: Icarus Bee w/ Pinouts + + Icarus Bee w/ Pinouts + +.. figure:: img/icarus-bee-peripherals-pins.png + :width: 200px + :align: center + :alt: Icarus Bee + + Internal Pinouts + +Hardware +******** + +The detailed information about the on-board hardware can be found at the `Icarus Bee Product Website`_. + +Supported Features +================== + +The actinius_icarus_bee board configuration supports the following +hardware features: + ++-----------+------------+----------------------+ +| Interface | Controller | Driver/Component | ++===========+============+======================+ +| ADC | on-chip | adc | ++-----------+------------+----------------------+ +| CLOCK | on-chip | clock_control | ++-----------+------------+----------------------+ +| FLASH | on-chip | flash | ++-----------+------------+----------------------+ +| GPIO | on-chip | gpio | ++-----------+------------+----------------------+ +| I2C(M) | on-chip | i2c | ++-----------+------------+----------------------+ +| MPU | on-chip | arch/arm | ++-----------+------------+----------------------+ +| NVIC | on-chip | arch/arm | ++-----------+------------+----------------------+ +| PWM | on-chip | pwm | ++-----------+------------+----------------------+ +| SPI(M/S) | on-chip | spi | ++-----------+------------+----------------------+ +| SPU | on-chip | system protection | ++-----------+------------+----------------------+ +| UARTE | on-chip | serial | ++-----------+------------+----------------------+ +| ACCEL | st | lis2dh | ++-----------+------------+----------------------+ + + +Security components +=================== + +- Implementation Defined Attribution Unit (`IDAU`_). The IDAU is implemented + with the System Protection Unit and is used to define secure and non-secure + memory maps. By default, all of the memory space (Flash, SRAM, and + peripheral address space) is defined to be secure accessible only. +- Secure boot. + +Building Secure/Non-Secure Zephyr applications +============================================== + +The process requires the following steps: + +1. Build the Secure Zephyr application using ``-DBOARD=actinius_icarus_bee``. +2. Build the Non-Secure Zephyr application using ``-DBOARD=actinius_icarus_bee_ns``. +3. Merge the two binaries together. + +If you are using Segger Embedded Studio v4.18 or later, the two binaries are built, merged, and +burned automatically, unless you have disabled the feature. + +When building a Secure/Non-Secure application, the Secure application will +have to set the IDAU (SPU) configuration to allow Non-Secure access to all +CPU resources utilized by the Non-Secure application firmware. SPU +configuration shall take place before jumping to the Non-Secure application. + +More information can be found in the `Icarus Bee Product Website`_ or the +`Actinius Documentation Portal`_. + +References +********** + +.. target-notes:: + +.. _IDAU: + https://developer.arm.com/docs/100690/latest/attribution-units-sau-and-idau + +.. _Icarus Bee Product Website: + https://www.actinius.com/icarus-bee + +.. _Actinius Documentation Portal: + https://docs.actinius.com diff --git a/boards/arm/actinius_icarus_bee/pre_dt_board.cmake b/boards/arm/actinius_icarus_bee/pre_dt_board.cmake new file mode 100644 index 00000000000..c8267afd1b4 --- /dev/null +++ b/boards/arm/actinius_icarus_bee/pre_dt_board.cmake @@ -0,0 +1,7 @@ +# Copyright (c) 2021 Linaro Limited +# SPDX-License-Identifier: Apache-2.0 + +# Suppress "unique_unit_address_if_enabled" to handle the following overlaps: +# - flash-controller@39000 & kmu@39000 +# - power@5000 & clock@5000 +list(APPEND EXTRA_DTC_FLAGS "-Wno-unique_unit_address_if_enabled")