Skip to content

Commit 7039452

Browse files
nordic-seglnordic-piks
authored andcommitted
samples: zephyr: subsys: ipc: ipc_service: icmsg: Run sample on LV10
Copy original sample from Zephyr and enable it on - nrf54lv10dk/nrf54lv10a/cpuapp, - nrf54lm20dk/nrf54lm20a/cpuapp. Signed-off-by: Sebastian Głąb <[email protected]>
1 parent 104db64 commit 7039452

20 files changed

+596
-0
lines changed

CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -678,6 +678,7 @@
678678
/samples/zephyr/sensor/bme680/ @nrfconnect/ncs-low-level-test
679679
/samples/zephyr/sensor/qdec/ @nrfconnect/ncs-low-level-test
680680
/samples/zephyr/smp_svr_mini_boot/ @nrfconnect/ncs-pluto @nrfconnect/ncs-charon
681+
/samples/zephyr/subsys/ipc/ @nrfconnect/ncs-low-level-test
681682
/samples/zephyr/subsys/settings/ @nrfconnect/ncs-low-level-test
682683
/samples/zephyr/subsys/usb/ @nrfconnect/ncs-low-level-test
683684
/samples/zephyr/subsys/mgmt/mcumgr/smp_svr/ @nrfconnect/ncs-charon
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
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+
if(NOT CONFIG_BOARD_NRF54LV10DK_NRF54LV10A_CPUAPP AND
12+
NOT CONFIG_BOARD_NRF54LM20DK_NRF54LM20A_CPUAPP)
13+
message(FATAL_ERROR "${BOARD} is not supported for this sample")
14+
endif()
15+
16+
if(NOT SYSBUILD)
17+
message(FATAL_ERROR
18+
" This is a multi-image application that should be built using sysbuild.\n"
19+
" Add --sysbuild argument to west build command to prepare all the images.")
20+
endif()
21+
22+
project(ipc_service_host)
23+
24+
target_include_directories(app PRIVATE ${ZEPHYR_BASE}/samples/subsys/ipc/ipc_service/icmsg/common)
25+
26+
target_sources(app PRIVATE ${ZEPHYR_BASE}/samples/subsys/ipc/ipc_service/icmsg/src/main.c)
27+
28+
include(ExternalProject)
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Copyright 2025 Nordic Semiconductor ASA
2+
#
3+
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
4+
5+
source "share/sysbuild/Kconfig"
6+
7+
config REMOTE_BOARD
8+
string
9+
default "$(BOARD)/nrf54lv10a/cpuflpr" if SOC_NRF54LV10A_ENGA_CPUAPP
10+
default "$(BOARD)/nrf54lm20a/cpuflpr" if SOC_NRF54LM20A_ENGA_CPUAPP
Lines changed: 3 additions & 0 deletions
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/subsys/ipc/ipc_service/icmsg.
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
/*
2+
* Copyright (c) 2025 Nordic Semiconductor ASA
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
/ {
8+
soc {
9+
reserved-memory {
10+
#address-cells = <1>;
11+
#size-cells = <1>;
12+
13+
sram_rx: memory@20057c00 {
14+
reg = <0x20057c00 0x8000>;
15+
};
16+
17+
sram_tx: memory@2005fc00 {
18+
reg = <0x2005fc00 0x8000>;
19+
};
20+
};
21+
};
22+
23+
ipc {
24+
ipc0: ipc0 {
25+
compatible = "zephyr,ipc-icmsg";
26+
dcache-alignment = <32>;
27+
tx-region = <&sram_tx>;
28+
rx-region = <&sram_rx>;
29+
mboxes = <&cpuapp_vevif_rx 20>, <&cpuapp_vevif_tx 21>;
30+
mbox-names = "rx", "tx";
31+
status = "okay";
32+
};
33+
};
34+
};
35+
36+
&cpuapp_vevif_rx {
37+
status = "okay";
38+
};
39+
40+
&cpuapp_vevif_tx {
41+
status = "okay";
42+
};
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/*
2+
* Copyright (c) 2025 Nordic Semiconductor ASA
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
/ {
8+
soc {
9+
reserved-memory {
10+
#address-cells = <1>;
11+
#size-cells = <1>;
12+
13+
sram_rx: memory@20057c00 {
14+
reg = <0x20057c00 0x8000>;
15+
};
16+
17+
sram_tx: memory@2005fc00 {
18+
reg = <0x2005fc00 0x8000>;
19+
};
20+
};
21+
};
22+
23+
ipc {
24+
ipc0: ipc0 {
25+
compatible = "zephyr,ipc-icbmsg";
26+
dcache-alignment = <32>;
27+
tx-region = <&sram_tx>;
28+
rx-region = <&sram_rx>;
29+
tx-blocks = <16>;
30+
rx-blocks = <18>;
31+
mboxes = <&cpuapp_vevif_rx 20>, <&cpuapp_vevif_tx 21>;
32+
mbox-names = "rx", "tx";
33+
status = "okay";
34+
};
35+
};
36+
};
37+
38+
&cpuapp_vevif_rx {
39+
status = "okay";
40+
};
41+
42+
&cpuapp_vevif_tx {
43+
status = "okay";
44+
};
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
/*
2+
* Copyright (c) 2025 Nordic Semiconductor ASA
3+
*
4+
* SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5+
*/
6+
7+
/ {
8+
soc {
9+
reserved-memory {
10+
#address-cells = <1>;
11+
#size-cells = <1>;
12+
13+
sram_rx: memory@2000fc00 {
14+
reg = <0x2000fc00 0x8000>;
15+
};
16+
17+
sram_tx: memory@20017c00 {
18+
reg = <0x20017c00 0x8000>;
19+
};
20+
};
21+
};
22+
23+
ipc {
24+
ipc0: ipc0 {
25+
compatible = "zephyr,ipc-icmsg";
26+
dcache-alignment = <32>;
27+
tx-region = <&sram_tx>;
28+
rx-region = <&sram_rx>;
29+
mboxes = <&cpuapp_vevif_rx 20>, <&cpuapp_vevif_tx 21>;
30+
mbox-names = "rx", "tx";
31+
status = "okay";
32+
};
33+
};
34+
};
35+
36+
&cpuapp_vevif_rx {
37+
status = "okay";
38+
};
39+
40+
&cpuapp_vevif_tx {
41+
status = "okay";
42+
};
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/*
2+
* Copyright (c) 2025 Nordic Semiconductor ASA
3+
*
4+
* SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5+
*/
6+
7+
/ {
8+
soc {
9+
reserved-memory {
10+
#address-cells = <1>;
11+
#size-cells = <1>;
12+
13+
sram_rx: memory@2000fc00 {
14+
reg = <0x2000fc00 0x8000>;
15+
};
16+
17+
sram_tx: memory@20017c00 {
18+
reg = <0x20017c00 0x8000>;
19+
};
20+
};
21+
};
22+
23+
ipc {
24+
ipc0: ipc0 {
25+
compatible = "zephyr,ipc-icbmsg";
26+
dcache-alignment = <32>;
27+
tx-region = <&sram_tx>;
28+
rx-region = <&sram_rx>;
29+
tx-blocks = <16>;
30+
rx-blocks = <18>;
31+
mboxes = <&cpuapp_vevif_rx 20>, <&cpuapp_vevif_tx 21>;
32+
mbox-names = "rx", "tx";
33+
status = "okay";
34+
};
35+
};
36+
};
37+
38+
&cpuapp_vevif_rx {
39+
status = "okay";
40+
};
41+
42+
&cpuapp_vevif_tx {
43+
status = "okay";
44+
};
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
CONFIG_PRINTK=y
2+
3+
CONFIG_IPC_SERVICE=y
4+
CONFIG_IPC_SERVICE_BACKEND_ICMSG=y
5+
CONFIG_MBOX=y
6+
7+
CONFIG_LOG=y
8+
CONFIG_ASSERT=y
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
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+
project(ipc_service_remote)
11+
12+
target_include_directories(app PRIVATE ${ZEPHYR_BASE}/samples/subsys/ipc/ipc_service/icmsg/common)
13+
14+
target_sources(app PRIVATE ${ZEPHYR_BASE}/samples/subsys/ipc/ipc_service/icmsg/remote/src/main.c)

0 commit comments

Comments
 (0)