Skip to content

Commit 4268d8e

Browse files
committed
[nrf fromlist] samples: subsys: ipc: ipc_service: icmsg: Enable sample on more targets
Extend IPC Service sample: - with configuration that runs on nRF54H20DK and exchanges data between cpuapp and cpuppr using ICMsg backend, - with configuration that runs on nRF54LM20DK and exchanges data between cpuapp and cpuflpr using ICMsg and ICBMsg backends. Upstream PR #: 92287 Signed-off-by: Sebastian Głąb <sebastian.glab@nordicsemi.no>
1 parent 926fafb commit 4268d8e

11 files changed

+329
-35
lines changed

samples/subsys/ipc/ipc_service/icmsg/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@ find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
1111
if(NOT CONFIG_BOARD_NRF5340DK_NRF5340_CPUAPP AND
1212
NOT CONFIG_BOARD_NRF5340BSIM_NRF5340_CPUAPP AND
1313
NOT CONFIG_BOARD_STM32H747I_DISCO AND
14-
NOT CONFIG_BOARD_NRF54L15DK_NRF54L15_CPUAPP)
14+
NOT CONFIG_BOARD_NRF54H20DK_NRF54H20_CPUAPP AND
15+
NOT CONFIG_BOARD_NRF54L15DK_NRF54L15_CPUAPP AND
16+
NOT CONFIG_BOARD_NRF54LM20DK_NRF54LM20A_CPUAPP)
1517
message(FATAL_ERROR "${BOARD} is not supported for this sample")
1618
endif()
1719

samples/subsys/ipc/ipc_service/icmsg/Kconfig.sysbuild

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,10 @@
55
source "share/sysbuild/Kconfig"
66

77
config REMOTE_BOARD
8-
string
8+
string "The board used for remote target"
99
default "nrf5340dk/nrf5340/cpunet" if $(BOARD) = "nrf5340dk"
1010
default "nrf5340bsim/nrf5340/cpunet" if $(BOARD) = "nrf5340bsim"
11+
default "nrf54h20dk/nrf54h20/cpuppr" if BOARD_NRF54H20DK_NRF54H20_CPUAPP
1112
default "nrf54l15dk/nrf54l15/cpuflpr" if $(BOARD) = "nrf54l15dk"
13+
default "nrf54lm20dk/nrf54lm20a/cpuflpr" if $(BOARD) = "nrf54lm20dk"
1214
default "stm32h747i_disco/stm32h747xx/m4" if $(BOARD) = "stm32h747i_disco"
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/*
2+
* Copyright (c) 2025 Nordic Semiconductor ASA
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
/* Replace default ipc0 instance */
7+
/delete-node/ &ipc0;
8+
9+
ipc0: &cpuapp_cpuppr_ipc {
10+
status = "okay";
11+
};
12+
13+
&cpuppr_vevif {
14+
status = "okay";
15+
};
16+
17+
&cpuapp_bellboard {
18+
status = "okay";
19+
};
20+
21+
/ {
22+
chosen {
23+
/delete-property/ zephyr,bt-hci;
24+
};
25+
};
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: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#
2+
# Copyright (c) 2025 Nordic Semiconductor ASA
3+
#
4+
# SPDX-License-Identifier: Apache-2.0
5+
#
6+
################################################################################
7+
8+
CONFIG_LOG=y
9+
CONFIG_LOG_MODE_MINIMAL=y
10+
CONFIG_ASSERT=n
11+
CONFIG_LOG_BACKEND_UART=n
12+
13+
CONFIG_BOOT_BANNER=n
14+
CONFIG_EARLY_CONSOLE=y
15+
CONFIG_HEAP_MEM_POOL_SIZE=1024
16+
17+
CONFIG_SIZE_OPTIMIZATIONS=y
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/*
2+
* Copyright (c) 2025 Nordic Semiconductor ASA
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
ipc0: &cpuapp_cpuppr_ipc {
7+
status = "okay";
8+
};
9+
10+
&cpuppr_vevif {
11+
status = "okay";
12+
};
13+
14+
&cpuapp_bellboard {
15+
status = "okay";
16+
};
17+
18+
&uart135 {
19+
/delete-property/ hw-flow-control;
20+
};
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
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_tx: memory@20057c00 {
14+
reg = <0x20057c00 0x8000>;
15+
};
16+
17+
sram_rx: 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 = <&cpuflpr_vevif_rx 21>, <&cpuflpr_vevif_tx 20>;
30+
mbox-names = "rx", "tx";
31+
status = "okay";
32+
};
33+
};
34+
};
35+
36+
&cpuflpr_vevif_rx {
37+
status = "okay";
38+
};
39+
40+
&cpuflpr_vevif_tx {
41+
status = "okay";
42+
};
43+
44+
&uart30 {
45+
/delete-property/ hw-flow-control;
46+
};
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
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_tx: memory@20057c00 {
14+
reg = <0x20057c00 0x8000>;
15+
};
16+
17+
sram_rx: 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 = <18>;
30+
rx-blocks = <16>;
31+
mboxes = <&cpuflpr_vevif_rx 21>, <&cpuflpr_vevif_tx 20>;
32+
mbox-names = "rx", "tx";
33+
status = "okay";
34+
};
35+
};
36+
};
37+
38+
&cpuflpr_vevif_rx {
39+
status = "okay";
40+
};
41+
42+
&cpuflpr_vevif_tx {
43+
status = "okay";
44+
};
45+
46+
&uart30 {
47+
/delete-property/ hw-flow-control;
48+
};

0 commit comments

Comments
 (0)