NCS 2.3.0
nrf5340dk_nrf5340_ns -- problem is in non-secure domain for an app built with TFM.
I have this in my nrf5340dk_nrf5340_cpuapp_ns.overlay:
&pinctrl {
spi2_default: spi2_default {
group1 {
psels = <NRF_PSEL(SPIS_SCK, 1, 0)>,
<NRF_PSEL(SPIS_MISO, 1, 1)>,
<NRF_PSEL(SPIS_MOSI, 1, 4)>,
<NRF_PSEL(SPIS_CSN, 1, 5)>;
};
};
spi2_sleep: spi2_sleep {
group1 {
psels = <NRF_PSEL(SPIS_SCK, 1, 0)>,
<NRF_PSEL(SPIS_MISO, 1, 1)>,
<NRF_PSEL(SPIS_MOSI, 1, 4)>,
<NRF_PSEL(SPIS_CSN, 1, 5)>;
low-power-enable;
};
};
};
&spi2 {
compatible = "nordic,nrf-spis";
status = "okay";
pinctrl-0 = <&spi2_default>;
pinctrl-1 = <&spi2_sleep>;
pinctrl-names = "default", "sleep";
def-char = <0xFF>;
overrun-character = <0xaa>;
ipc_spi_device: spi-device@0 {
reg = <0>;
};
};
/ {
spi_ipc_outputs
{
compatible = "gpio-leds";
spi_ipc_sync: spi_ipc_sync_pin
{
gpios = <&gpio1 6 (GPIO_PULL_UP | GPIO_OPEN_DRAIN)>;
label = "SPI_IPC_SYNC pin";
};
};
spi_ipc_inputs
{
compatible = "gpio-keys";
spi_csn: spi_csn_pin
{
gpios = <&gpio1 5 0>;
label = "SPI_IPC_CSN pin";
};
};
};
/ {
aliases {
ipc-spi = &spi2;
ipc-sync = &spi_ipc_sync;
ipc-csn = &spi_csn;
};
};
at compile time everything is fine, but at linking I get these errors:
[421/442] Linking C executable zephyr\zephyr_pre0.elf
FAILED: zephyr/zephyr_pre0.elf zephyr/zephyr_pre0.map
cmd.exe /C "cd . && D:\AAA\toolchains\v2.3.0\opt\zephyr-sdk\arm-zephyr-eabi\bin\arm-zephyr-eabi-gcc.exe -gdwarf-4 @CMakeFiles\zephyr_pre0.rsp -o zephyr\zephyr_pre0.elf && cmd.exe /C "cd /D D:\AAA\AAAProject\fota\app\build_shell\zephyr && D:\AAA\toolchains\v2.3.0\opt\bin\cmake.exe -E echo ""
d:/AAA/toolchains/v2.3.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/12.1.0/../../../../arm-zephyr-eabi/bin/ld.exe: app/libapp.a(main.c.obj):(.rodata.m_spi_ipc_mod+0x8): undefined reference to `__device_dts_ord_144'
d:/AAA/toolchains/v2.3.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/12.1.0/../../../../arm-zephyr-eabi/bin/ld.exe: app/libapp.a(main.c.obj):(.rodata.m_spi_ipc_mod+0x10): undefined reference to `__device_dts_ord_142'
d:/AAA/toolchains/v2.3.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/12.1.0/../../../../arm-zephyr-eabi/bin/ld.exe: app/libapp.a(main.c.obj):(.rodata.m_spi_ipc_mod+0x30): undefined reference to `__device_dts_ord_139
Is there something special I need to do to make these device tree entries available in the non-secure partition?
How do I fix this error?