boards: Add non-secure target for nrf54L15dk

This adds the nrf54l15dk/nrf54l15/cpuapp/ns board variant to
Zephyr. It allows to build applications for this target.

This is an initial support for the non secure target which allows
building and running tfm_ipc and config_build.

This is NOT full support of the non secure target in upstream
Zephyr.

There are important limitations, such as:
- The hardware Crypto accelerator is not supported and thus the non
  secur target is NOT secure for production applicatiions in upstream
  Zephyr.
- The BL2 is not supported, so no DFU is supported with this support

Most of the code chagnes here are taken from nRF Connect SDK
in order to avoid having noups there.

Signed-off-by: Georgios Vasilakis <georgios.vasilakis@nordicsemi.no>
This commit is contained in:
Georgios Vasilakis 2025-03-11 14:52:16 +01:00 committed by Benjamin Cabé
commit 47c71e35ee
15 changed files with 309 additions and 3 deletions

View file

@ -25,6 +25,7 @@ config TFM_BOARD
default "${ZEPHYR_BASE}/modules/trusted-firmware-m/nordic/nrf9160" if SOC_NRF9160
default "${ZEPHYR_BASE}/modules/trusted-firmware-m/nordic/nrf9120" if SOC_NRF9120
default "${ZEPHYR_BASE}/modules/trusted-firmware-m/nordic/nrf5340_cpuapp" if SOC_NRF5340_CPUAPP
default "${ZEPHYR_BASE}/modules/trusted-firmware-m/nordic/nrf54l15_cpuapp" if SOC_NRF54L15_CPUAPP
help
The board name used for building TFM. Building with TFM requires that
TFM has been ported to the given board/SoC.

View file

@ -29,10 +29,10 @@
) \
}
#endif
#else
/* Configuration settings for Driver_USART1. */
#if DT_PINCTRL_HAS_NAME(DT_NODELABEL(uart1), default) && DOMAIN_NS != 1U
#if DT_PINCTRL_HAS_NAME(DT_NODELABEL(uart1), default)
#define RTE_USART1 1
@ -44,6 +44,20 @@
) \
}
#elif DT_PINCTRL_HAS_NAME(DT_NODELABEL(uart30), default)
#define RTE_USART30 1
#define RTE_USART30_PINS \
{ \
DT_FOREACH_CHILD_VARGS( \
DT_PINCTRL_BY_NAME(DT_NODELABEL(uart30), default, 0), \
DT_FOREACH_PROP_ELEM, psels, UART_PIN_INIT \
) \
}
#endif
#endif
/* Configuration settings for Driver_FLASH0. */

View file

@ -12,9 +12,15 @@ extern "C" {
#endif
#ifdef SECURE_UART1
#if defined(NRF54L15_XXAA)
#define TFM_PERIPHERAL_UARTE30_SECURE 1
#else
#define TFM_PERIPHERAL_UARTE1_SECURE 1
#endif
#endif /* SECURE_UART1 */
#if TEST_NS_SLIH_IRQ || TEST_NS_FLIH_IRQ
#define TFM_PERIPHERAL_TIMER0_SECURE 1
#endif
@ -29,6 +35,8 @@ extern "C" {
#include <tfm_peripherals_config_nrf91.h>
#elif defined(NRF5340_XXAA_APPLICATION)
#include <tfm_peripherals_config_nrf5340_application.h>
#elif defined(NRF54L15_XXAA)
#include <tfm_peripherals_config_nrf54l15.h>
#else
#error "Unknown device."
#endif

View file

@ -0,0 +1,23 @@
#
# Copyright (c) 2025, Nordic Semiconductor ASA.
#
# SPDX-License-Identifier: Apache-2.0
#
set(NRF_BOARD_SELECTED True)
add_subdirectory(${Trusted\ Firmware\ M_SOURCE_DIR}/platform/ext/target/nordic_nrf/common/nrf54l15 nrf54l15)
add_subdirectory(.. common)
install(FILES ${CMAKE_CURRENT_LIST_DIR}/ns/cpuarch_ns.cmake
DESTINATION ${INSTALL_PLATFORM_NS_DIR}
RENAME cpuarch.cmake)
install(FILES config.cmake
DESTINATION ${INSTALL_PLATFORM_NS_DIR})
install(DIRECTORY ${Trusted\ Firmware\ M_SOURCE_DIR}/platform/ext/target/nordic_nrf/nrf54l15dk_nrf54l15_cpuapp/tests
DESTINATION ${INSTALL_PLATFORM_NS_DIR}
)

View file

@ -0,0 +1,9 @@
#
# Copyright (c) 2025, Nordic Semiconductor ASA.
#
# SPDX-License-Identifier: Apache-2.0
#
set(NRF_SOC_VARIANT nrf54l15 CACHE STRING "nRF SoC Variant")
include(${PLATFORM_PATH}/common/nrf54l15/config.cmake)

View file

@ -0,0 +1,9 @@
#
# Copyright (c) 2025, Nordic Semiconductor ASA.
#
# SPDX-License-Identifier: Apache-2.0
#
set(PLATFORM_PATH platform/ext/target/nordic_nrf)
include(${PLATFORM_PATH}/common/nrf54l15/cpuarch.cmake)

View file

@ -0,0 +1,10 @@
#
# Copyright (c) 2025, Nordic Semiconductor ASA.
#
# SPDX-License-Identifier: Apache-2.0
#
set(PLATFORM_DIR ${CMAKE_CURRENT_LIST_DIR})
set(PLATFORM_PATH ${CMAKE_CURRENT_LIST_DIR})
include(${CMAKE_CURRENT_LIST_DIR}/common/nrf54l15/cpuarch.cmake)