Skip to content

Commit d423165

Browse files
committed
[nrf fromlist] samples: subsys: ipc: ipc_service: icmsg: Enable sample on nRF54H20
Extend IPC Service sample with configuration that runs on nRF54H20 and exchanges data between cpuapp and cpuppr using ICMsg backend. Upstream PR #: 92287 Signed-off-by: Sebastian Głąb <sebastian.glab@nordicsemi.no>
1 parent 9b0cfcc commit d423165

File tree

7 files changed

+128
-28
lines changed

7 files changed

+128
-28
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ 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_NRF54H20DK_NRF54H20_CPUAPP AND
1415
NOT CONFIG_BOARD_NRF54L15DK_NRF54L15_CPUAPP)
1516
message(FATAL_ERROR "${BOARD} is not supported for this sample")
1617
endif()

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@
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"
1213
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: 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+
};

samples/subsys/ipc/ipc_service/icmsg/sample.yaml

Lines changed: 62 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ sample:
22
name: IPC Service example integration (icmsg backend)
33
common:
44
timeout: 30
5+
tags: ipc
6+
sysbuild: true
57
tests:
68
sample.ipc.icmsg:
79
platform_allow:
@@ -10,8 +12,6 @@ tests:
1012
integration_platforms:
1113
- nrf5340dk/nrf5340/cpuapp
1214
- nrf5340bsim/nrf5340/cpuapp
13-
tags: ipc
14-
sysbuild: true
1515
harness: console
1616
harness_config:
1717
type: multi_line
@@ -25,12 +25,12 @@ tests:
2525
- "host: IPC-service HOST demo ended"
2626

2727
sample.ipc.icmsg.nrf54l15:
28-
platform_allow: nrf54l15dk/nrf54l15/cpuapp
28+
platform_allow:
29+
- nrf54l15dk/nrf54l15/cpuapp
2930
integration_platforms:
3031
- nrf54l15dk/nrf54l15/cpuapp
31-
tags: ipc
32-
extra_args: icmsg_SNIPPET=nordic-flpr
33-
sysbuild: true
32+
extra_args:
33+
- icmsg_SNIPPET=nordic-flpr
3434
harness: console
3535
harness_config:
3636
type: multi_line
@@ -44,17 +44,16 @@ tests:
4444
- "host: IPC-service HOST demo ended"
4545

4646
sample.ipc.icmsg.nrf54l15_no_multithreading:
47-
platform_allow: nrf54l15dk/nrf54l15/cpuapp
47+
platform_allow:
48+
- nrf54l15dk/nrf54l15/cpuapp
4849
integration_platforms:
4950
- nrf54l15dk/nrf54l15/cpuapp
50-
tags: ipc
5151
extra_args:
5252
- icmsg_SNIPPET=nordic-flpr
5353
- icmsg_CONFIG_MULTITHREADING=n
5454
- icmsg_CONFIG_LOG_MODE_MINIMAL=y
5555
- remote_CONFIG_MULTITHREADING=n
5656
- remote_CONFIG_LOG_MODE_MINIMAL=y
57-
sysbuild: true
5857
harness: console
5958
harness_config:
6059
type: multi_line
@@ -68,15 +67,54 @@ tests:
6867
- "I: IPC-service HOST demo ended"
6968

7069
sample.ipc.icmsg.nrf54l15_remote_no_multithreading:
71-
platform_allow: nrf54l15dk/nrf54l15/cpuapp
70+
platform_allow:
71+
- nrf54l15dk/nrf54l15/cpuapp
7272
integration_platforms:
7373
- nrf54l15dk/nrf54l15/cpuapp
74-
tags: ipc
7574
extra_args:
7675
- icmsg_SNIPPET=nordic-flpr
7776
- remote_CONFIG_MULTITHREADING=n
7877
- remote_CONFIG_LOG_MODE_MINIMAL=y
79-
sysbuild: true
78+
harness: console
79+
harness_config:
80+
type: multi_line
81+
ordered: false
82+
regex:
83+
- "host: IPC-service HOST demo started"
84+
- "host: Ep bounded"
85+
- "host: Perform sends for"
86+
- "host: Sent"
87+
- "host: Received"
88+
- "host: IPC-service HOST demo ended"
89+
90+
sample.ipc.icmsg.nrf54h20:
91+
platform_allow:
92+
- nrf54h20dk/nrf54h20/cpuapp
93+
integration_platforms:
94+
- nrf54h20dk/nrf54h20/cpuapp
95+
extra_args:
96+
- icmsg_SNIPPET=nordic-ppr
97+
harness: console
98+
harness_config:
99+
type: multi_line
100+
ordered: false
101+
regex:
102+
- "host: IPC-service HOST demo started"
103+
- "host: Ep bounded"
104+
- "host: Perform sends for"
105+
- "host: Sent"
106+
- "host: Received"
107+
- "host: IPC-service HOST demo ended"
108+
109+
sample.ipc.icmsg.nrf54h20_remote_no_multithreading:
110+
platform_allow:
111+
- nrf54h20dk/nrf54h20/cpuapp
112+
integration_platforms:
113+
- nrf54h20dk/nrf54h20/cpuapp
114+
extra_args:
115+
- icmsg_SNIPPET=nordic-ppr
116+
- remote_CONFIG_MULTITHREADING=n
117+
- remote_CONFIG_LOG_MODE_MINIMAL=y
80118
harness: console
81119
harness_config:
82120
type: multi_line
@@ -90,17 +128,16 @@ tests:
90128
- "host: IPC-service HOST demo ended"
91129

92130
sample.ipc.icbmsg.nrf54l15:
93-
platform_allow: nrf54l15dk/nrf54l15/cpuapp
131+
platform_allow:
132+
- nrf54l15dk/nrf54l15/cpuapp
94133
integration_platforms:
95134
- nrf54l15dk/nrf54l15/cpuapp
96-
tags: ipc
97135
extra_args:
98136
- icmsg_SNIPPET=nordic-flpr
99137
- icmsg_CONFIG_IPC_SERVICE_BACKEND_ICBMSG_NUM_EP=1
100-
- icmsg_DTC_OVERLAY_FILE="boards/nrf54l15dk_nrf54l15_cpuapp_icbmsg.overlay"
138+
- icmsg_FILE_SUFFIX=icbmsg
101139
- remote_CONFIG_IPC_SERVICE_BACKEND_ICBMSG_NUM_EP=1
102-
- remote_DTC_OVERLAY_FILE="boards/nrf54l15dk_nrf54l15_cpuflpr_icbmsg.overlay"
103-
sysbuild: true
140+
- remote_FILE_SUFFIX=icbmsg
104141
harness: console
105142
harness_config:
106143
type: multi_line
@@ -114,21 +151,20 @@ tests:
114151
- "host: IPC-service HOST demo ended"
115152

116153
sample.ipc.icbmsg.nrf54l15_no_multithreading:
117-
platform_allow: nrf54l15dk/nrf54l15/cpuapp
154+
platform_allow:
155+
- nrf54l15dk/nrf54l15/cpuapp
118156
integration_platforms:
119157
- nrf54l15dk/nrf54l15/cpuapp
120-
tags: ipc
121158
extra_args:
122159
- icmsg_SNIPPET=nordic-flpr
123160
- icmsg_CONFIG_IPC_SERVICE_BACKEND_ICBMSG_NUM_EP=1
124-
- icmsg_DTC_OVERLAY_FILE="boards/nrf54l15dk_nrf54l15_cpuapp_icbmsg.overlay"
161+
- icmsg_FILE_SUFFIX=icbmsg
125162
- icmsg_CONFIG_MULTITHREADING=n
126163
- icmsg_CONFIG_LOG_MODE_MINIMAL=y
127164
- remote_CONFIG_IPC_SERVICE_BACKEND_ICBMSG_NUM_EP=1
128-
- remote_DTC_OVERLAY_FILE="boards/nrf54l15dk_nrf54l15_cpuflpr_icbmsg.overlay"
165+
- remote_FILE_SUFFIX=icbmsg
129166
- remote_CONFIG_MULTITHREADING=n
130167
- remote_CONFIG_LOG_MODE_MINIMAL=y
131-
sysbuild: true
132168
harness: console
133169
harness_config:
134170
type: multi_line
@@ -142,19 +178,18 @@ tests:
142178
- "I: IPC-service HOST demo ended"
143179

144180
sample.ipc.icbmsg.nrf54l15_remote_no_multithreading:
145-
platform_allow: nrf54l15dk/nrf54l15/cpuapp
181+
platform_allow:
182+
- nrf54l15dk/nrf54l15/cpuapp
146183
integration_platforms:
147184
- nrf54l15dk/nrf54l15/cpuapp
148-
tags: ipc
149185
extra_args:
150186
- icmsg_SNIPPET=nordic-flpr
151187
- icmsg_CONFIG_IPC_SERVICE_BACKEND_ICBMSG_NUM_EP=1
152-
- icmsg_DTC_OVERLAY_FILE="boards/nrf54l15dk_nrf54l15_cpuapp_icbmsg.overlay"
188+
- icmsg_FILE_SUFFIX=icbmsg
153189
- remote_CONFIG_IPC_SERVICE_BACKEND_ICBMSG_NUM_EP=1
154-
- remote_DTC_OVERLAY_FILE="boards/nrf54l15dk_nrf54l15_cpuflpr_icbmsg.overlay"
190+
- remote_FILE_SUFFIX=icbmsg
155191
- remote_CONFIG_MULTITHREADING=n
156192
- remote_CONFIG_LOG_MODE_MINIMAL=y
157-
sysbuild: true
158193
harness: console
159194
harness_config:
160195
type: multi_line

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ ExternalZephyrProject_Add(
1111
APPLICATION remote
1212
SOURCE_DIR ${APP_DIR}/remote
1313
BOARD ${SB_CONFIG_REMOTE_BOARD}
14+
BOARD_REVISION ${BOARD_REVISION}
1415
)
1516

1617
native_simulator_set_child_images(${DEFAULT_IMAGE} remote)

0 commit comments

Comments
 (0)