Skip to content

Commit ad4df70

Browse files
committed
samples: zephyr: drivers: mbox: Enable sample on nRF54L09 and L20
Add copy of zephyr/samples/drivers/mbox that can be run on nRF54L09pdk and nRF54L20pdk. Signed-off-by: Sebastian Głąb <sebastian.glab@nordicsemi.no>
1 parent 48c2d82 commit ad4df70

17 files changed

+241
-0
lines changed

CODEOWNERS

+1
Original file line numberDiff line numberDiff line change
@@ -672,6 +672,7 @@
672672
/samples/zephyr/drivers/adc/ @nrfconnect/ncs-low-level-test
673673
/samples/zephyr/drivers/audio/dmic/ @nrfconnect/ncs-low-level-test
674674
/samples/zephyr/drivers/i2c/rtio_loopback/ @nrfconnect/ncs-low-level-test
675+
/samples/zephyr/drivers/mbox/ @nrfconnect/ncs-low-level-test
675676
/samples/zephyr/drivers/watchdog/ @nrfconnect/ncs-low-level-test
676677
/samples/zephyr/sensor/accel_polling/ @nrfconnect/ncs-low-level-test
677678
/samples/zephyr/sensor/bme680/ @nrfconnect/ncs-low-level-test
+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#
2+
# Copyright (c) 2025 Nordic Semiconductor ASA
3+
#
4+
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5+
#
6+
7+
cmake_minimum_required(VERSION 3.20.0)
8+
9+
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
10+
11+
set(REMOTE_ZEPHYR_DIR ${CMAKE_CURRENT_BINARY_DIR}/../remote/zephyr)
12+
13+
if(CONFIG_BOARD_NRF54L09PDK_NRF54L09_CPUAPP OR
14+
CONFIG_BOARD_NRF54L20PDK_NRF54L20_CPUAPP)
15+
message(STATUS "${BOARD}${BOARD_QUALIFIERS} compile as Main in this sample")
16+
else()
17+
message(FATAL_ERROR "${BOARD}${BOARD_QUALIFIERS} is not supported for this sample")
18+
endif()
19+
20+
project(mbox_ipc)
21+
22+
enable_language(C ASM)
23+
24+
target_sources(app PRIVATE ${ZEPHYR_BASE}/samples/drivers/mbox/src/main.c)

samples/zephyr/drivers/mbox/Kconfig

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
source "samples/drivers/mbox/Kconfig"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#
2+
# Copyright (c) 2025 Nordic Semiconductor ASA
3+
#
4+
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5+
#
6+
7+
source "share/sysbuild/Kconfig"
8+
9+
config REMOTE_BOARD
10+
string "Remote board"
11+
default "nrf54l09pdk/nrf54l09/cpuflpr" if $(BOARD) = "nrf54l09pdk"
12+
default "nrf54l20pdk/nrf54l20/cpuflpr" if $(BOARD) = "nrf54l20pdk"
+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
This sample extends the same-named Zephyr sample to verify it with Nordic development kits.
2+
3+
Source code and basic configuration files can be found in the corresponding folder structure in zephyr/samples/drivers/mbox.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/*
2+
* Copyright 2025 Nordic Semiconductor ASA
3+
* SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
4+
*/
5+
6+
/ {
7+
mbox-consumer {
8+
compatible = "vnd,mbox-consumer";
9+
mboxes = <&cpuapp_vevif_rx 20>, <&cpuapp_vevif_tx 21>;
10+
mbox-names = "rx", "tx";
11+
};
12+
};
13+
14+
&cpuapp_vevif_rx {
15+
status = "okay";
16+
};
17+
18+
&cpuapp_vevif_tx {
19+
status = "okay";
20+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/*
2+
* Copyright 2025 Nordic Semiconductor ASA
3+
* SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
4+
*/
5+
6+
/ {
7+
mbox-consumer {
8+
compatible = "vnd,mbox-consumer";
9+
mboxes = <&cpuapp_vevif_rx 20>, <&cpuapp_vevif_tx 21>;
10+
mbox-names = "rx", "tx";
11+
};
12+
};
13+
14+
&cpuapp_vevif_rx {
15+
status = "okay";
16+
};
17+
18+
&cpuapp_vevif_tx {
19+
status = "okay";
20+
};

samples/zephyr/drivers/mbox/prj.conf

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
CONFIG_PRINTK=y
2+
CONFIG_MBOX=y
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#
2+
# Copyright (c) 2021 Carlo Caione <ccaione@baylibre.com>
3+
# Copyright 2023-2025 NXP
4+
#
5+
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
6+
#
7+
8+
cmake_minimum_required(VERSION 3.20.0)
9+
10+
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
11+
12+
if(CONFIG_BOARD_NRF54L09PDK_NRF54L09_CPUFLPR OR
13+
CONFIG_BOARD_NRF54L20PDK_NRF54L20_CPUFLPR)
14+
message(STATUS "${BOARD}${BOARD_QUALIFIERS} compile as remote in this sample")
15+
else()
16+
message(FATAL_ERROR "${BOARD}${BOARD_QUALIFIERS} is not supported for this sample")
17+
endif()
18+
19+
project(mbox_ipc_remote)
20+
21+
target_sources(app PRIVATE ${ZEPHYR_BASE}/samples/drivers/mbox/remote/src/main.c)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
source "samples/drivers/mbox/remote/Kconfig"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
/*
2+
* Copyright 2025 Nordic Semiconductor ASA
3+
* SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
4+
*/
5+
6+
/ {
7+
mbox-consumer {
8+
compatible = "vnd,mbox-consumer";
9+
mboxes = <&cpuflpr_vevif_rx 21>, <&cpuflpr_vevif_tx 20>;
10+
mbox-names = "rx", "tx";
11+
};
12+
};
13+
14+
&cpuflpr_vevif_rx {
15+
status = "okay";
16+
};
17+
18+
&cpuflpr_vevif_tx {
19+
status = "okay";
20+
};
21+
22+
&uart30 {
23+
/delete-property/ hw-flow-control;
24+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
/*
2+
* Copyright 2025 Nordic Semiconductor ASA
3+
* SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
4+
*/
5+
6+
/ {
7+
mbox-consumer {
8+
compatible = "vnd,mbox-consumer";
9+
mboxes = <&cpuflpr_vevif_rx 21>, <&cpuflpr_vevif_tx 20>;
10+
mbox-names = "rx", "tx";
11+
};
12+
};
13+
14+
&cpuflpr_vevif_rx {
15+
status = "okay";
16+
};
17+
18+
&cpuflpr_vevif_tx {
19+
status = "okay";
20+
};
21+
22+
&uart30 {
23+
/delete-property/ hw-flow-control;
24+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
CONFIG_STDOUT_CONSOLE=n
2+
CONFIG_MBOX=y
+61
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
sample:
2+
name: MBOX IPC sample
3+
common:
4+
sysbuild: true
5+
tags:
6+
- mbox
7+
- ci_samples_zephyr_drivers_mbox
8+
timeout: 30
9+
tests:
10+
nrf.extended.sample.drivers.mbox.nrf54l:
11+
platform_allow:
12+
- nrf54l09pdk/nrf54l09/cpuapp
13+
- nrf54l20pdk/nrf54l20/cpuapp
14+
integration_platforms:
15+
- nrf54l20pdk/nrf54l20/cpuapp
16+
extra_args: mbox_SNIPPET=nordic-flpr
17+
sysbuild: true
18+
harness: console
19+
harness_config:
20+
type: multi_line
21+
ordered: false
22+
regex:
23+
- "Ping \\(on channel 21\\)"
24+
- "Pong \\(on channel 20\\)"
25+
26+
nrf.extended.sample.drivers.mbox.nrf54l_no_multithreading:
27+
platform_allow:
28+
- nrf54l09pdk/nrf54l09/cpuapp
29+
- nrf54l20pdk/nrf54l20/cpuapp
30+
integration_platforms:
31+
- nrf54l20pdk/nrf54l20/cpuapp
32+
extra_args:
33+
- mbox_SNIPPET=nordic-flpr
34+
- mbox_CONFIG_MULTITHREADING=n
35+
- remote_CONFIG_MULTITHREADING=n
36+
sysbuild: true
37+
harness: console
38+
harness_config:
39+
type: multi_line
40+
ordered: false
41+
regex:
42+
- "Ping \\(on channel 21\\)"
43+
- "Pong \\(on channel 20\\)"
44+
45+
nrf.extended.sample.drivers.mbox.nrf54l_remote_no_multithreading:
46+
platform_allow:
47+
- nrf54l09pdk/nrf54l09/cpuapp
48+
- nrf54l20pdk/nrf54l20/cpuapp
49+
integration_platforms:
50+
- nrf54l20pdk/nrf54l20/cpuapp
51+
extra_args:
52+
- mbox_SNIPPET=nordic-flpr
53+
- remote_CONFIG_MULTITHREADING=n
54+
sysbuild: true
55+
harness: console
56+
harness_config:
57+
type: multi_line
58+
ordered: false
59+
regex:
60+
- "Ping \\(on channel 21\\)"
61+
- "Pong \\(on channel 20\\)"
+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#
2+
# Copyright (c) 2025 Nordic Semiconductor ASA
3+
#
4+
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5+
#
6+
7+
if("${SB_CONFIG_REMOTE_BOARD}" STREQUAL "")
8+
message(FATAL_ERROR
9+
"Target ${BOARD}${BOARD_QUALIFIERS} not supported for this sample. "
10+
"There is no remote board selected in Kconfig.sysbuild")
11+
endif()
12+
13+
set(REMOTE_APP remote)
14+
15+
ExternalZephyrProject_Add(
16+
APPLICATION ${REMOTE_APP}
17+
SOURCE_DIR ${APP_DIR}/${REMOTE_APP}
18+
BOARD ${SB_CONFIG_REMOTE_BOARD}
19+
)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
SB_CONFIG_PARTITION_MANAGER=n

scripts/ci/tags.yaml

+5
Original file line numberDiff line numberDiff line change
@@ -1565,6 +1565,11 @@ ci_samples_zephyr_drivers_i2c:
15651565
- nrf/samples/zephyr/drivers/i2c/
15661566
- zephyr/samples/drivers/i2c/
15671567

1568+
ci_samples_zephyr_drivers_mbox:
1569+
files:
1570+
- nrf/samples/zephyr/drivers/mbox/
1571+
- zephyr/samples/drivers/mbox/
1572+
15681573
ci_samples_zephyr_boards_nordic_system_off:
15691574
files:
15701575
- nrf/samples/zephyr/boards/nordic/system_off/

0 commit comments

Comments
 (0)