diff --git a/samples/subsys/ipc/ipc_service/multi_endpoint/CMakeLists.txt b/samples/subsys/ipc/ipc_service/multi_endpoint/CMakeLists.txt index fca156d9fe2..d8c7b1367e8 100644 --- a/samples/subsys/ipc/ipc_service/multi_endpoint/CMakeLists.txt +++ b/samples/subsys/ipc/ipc_service/multi_endpoint/CMakeLists.txt @@ -8,11 +8,7 @@ cmake_minimum_required(VERSION 3.20.0) find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) -if(NOT CONFIG_BOARD_NRF5340DK_NRF5340_CPUAPP AND - NOT CONFIG_BOARD_NRF5340BSIM_NRF5340_CPUAPP ) - message(FATAL_ERROR "${BOARD} is not supported for this sample") -endif() - project(ipc_service) -target_sources(app PRIVATE src/main.c) +FILE(GLOB app_sources src/*.c) +target_sources(app PRIVATE ${app_sources}) diff --git a/samples/subsys/ipc/ipc_service/multi_endpoint/Kconfig.sysbuild b/samples/subsys/ipc/ipc_service/multi_endpoint/Kconfig.sysbuild index 5e4c6d497cf..abaec58fdf4 100644 --- a/samples/subsys/ipc/ipc_service/multi_endpoint/Kconfig.sysbuild +++ b/samples/subsys/ipc/ipc_service/multi_endpoint/Kconfig.sysbuild @@ -6,5 +6,6 @@ source "share/sysbuild/Kconfig" config NET_CORE_BOARD string - default "nrf5340dk/nrf5340/cpunet" if $(BOARD) = "nrf5340dk" - default "nrf5340bsim/nrf5340/cpunet" if $(BOARD) = "nrf5340bsim" + default "$(BOARD)/nrf5340/cpunet" if $(BOARD) = "nrf5340dk" + default "$(BOARD)/nrf5340/cpunet" if $(BOARD) = "nrf5340bsim" + default "$(BOARD)/nrf54h20/cpurad" if $(BOARD) = "nrf54h20dk" diff --git a/samples/subsys/ipc/ipc_service/multi_endpoint/boards/nrf54h20dk_nrf54h20_cpuapp.conf b/samples/subsys/ipc/ipc_service/multi_endpoint/boards/nrf54h20dk_nrf54h20_cpuapp.conf new file mode 100644 index 00000000000..a6fa5758d9a --- /dev/null +++ b/samples/subsys/ipc/ipc_service/multi_endpoint/boards/nrf54h20dk_nrf54h20_cpuapp.conf @@ -0,0 +1 @@ +CONFIG_SOC_NRF54H20_CPURAD_ENABLE=y diff --git a/samples/subsys/ipc/ipc_service/multi_endpoint/boards/nrf54h20dk_nrf54h20_cpuapp.overlay b/samples/subsys/ipc/ipc_service/multi_endpoint/boards/nrf54h20dk_nrf54h20_cpuapp.overlay new file mode 100644 index 00000000000..1698d7a800d --- /dev/null +++ b/samples/subsys/ipc/ipc_service/multi_endpoint/boards/nrf54h20dk_nrf54h20_cpuapp.overlay @@ -0,0 +1,50 @@ +/ { + reserved-memory { + /delete-node/ memory@2f0bf000; + /delete-node/ memory@2f0bf800; + + cpuapp_cpurad_ipc_shm_a: memory@2f0bf000 { + reg = <0x2f0bf000 DT_SIZE_K(1)>; + }; + + cpurad_cpuapp_ipc_shm_a: memory@2f0bf400 { + reg = <0x2f0bf400 DT_SIZE_K(1)>; + }; + + cpuapp_cpurad_ipc_shm_b: memory@2f0bf800 { + reg = <0x2f0bf800 DT_SIZE_K(1)>; + }; + + cpurad_cpuapp_ipc_shm_b: memory@2f0bfC00 { + reg = <0x2f0bfC00 DT_SIZE_K(1)>; + }; + }; + + ipc { + cpuapp_cpurad_ipc_b: ipc-2-3-b { + compatible = "zephyr,ipc-icbmsg"; + dcache-alignment = <32>; + status = "okay"; + mboxes = <&cpuapp_bellboard 20>, + <&cpurad_bellboard 14>; + }; + }; +}; + +&cpuapp_bellboard { + nordic,interrupt-mapping = <0x146041 0x0>; +}; + +&ipc0 { + tx-region = <&cpuapp_cpurad_ipc_shm_a>; + rx-region = <&cpurad_cpuapp_ipc_shm_a>; +}; + +ipc1: &cpuapp_cpurad_ipc_b { + status = "okay"; + mbox-names = "rx", "tx"; + tx-region = <&cpuapp_cpurad_ipc_shm_b>; + rx-region = <&cpurad_cpuapp_ipc_shm_b>; + tx-blocks = <32>; + rx-blocks = <32>; +}; diff --git a/samples/subsys/ipc/ipc_service/multi_endpoint/remote/boards/nrf54h20dk_nrf54h20_cpurad.overlay b/samples/subsys/ipc/ipc_service/multi_endpoint/remote/boards/nrf54h20dk_nrf54h20_cpurad.overlay new file mode 100644 index 00000000000..26ef0518b8b --- /dev/null +++ b/samples/subsys/ipc/ipc_service/multi_endpoint/remote/boards/nrf54h20dk_nrf54h20_cpurad.overlay @@ -0,0 +1,50 @@ +/ { + reserved-memory { + /delete-node/ memory@2f0bf000; + /delete-node/ memory@2f0bf800; + + cpuapp_cpurad_ipc_shm_a: memory@2f0bf000 { + reg = <0x2f0bf000 DT_SIZE_K(1)>; + }; + + cpurad_cpuapp_ipc_shm_a: memory@2f0bf400 { + reg = <0x2f0bf400 DT_SIZE_K(1)>; + }; + + cpuapp_cpurad_ipc_shm_b: memory@2f0bf800 { + reg = <0x2f0bf800 DT_SIZE_K(1)>; + }; + + cpurad_cpuapp_ipc_shm_b: memory@2f0bfC00 { + reg = <0x2f0bfC00 DT_SIZE_K(1)>; + }; + }; + + ipc { + cpuapp_cpurad_ipc_b: ipc-2-3-b { + compatible = "zephyr,ipc-icbmsg"; + dcache-alignment = <32>; + status = "okay"; + mboxes = <&cpuapp_bellboard 20>, + <&cpurad_bellboard 14>; + }; + }; +}; + +&cpurad_bellboard { + nordic,interrupt-mapping = <0x5041 0>; +}; + +&ipc0 { + tx-region = <&cpurad_cpuapp_ipc_shm_a>; + rx-region = <&cpuapp_cpurad_ipc_shm_a>; +}; + +ipc1: &cpuapp_cpurad_ipc_b { + status = "okay"; + mbox-names = "tx", "rx"; + tx-region = <&cpurad_cpuapp_ipc_shm_b>; + rx-region = <&cpuapp_cpurad_ipc_shm_b>; + tx-blocks = <32>; + rx-blocks = <32>; +}; diff --git a/samples/subsys/ipc/ipc_service/multi_endpoint/sample.yaml b/samples/subsys/ipc/ipc_service/multi_endpoint/sample.yaml index 4505f76ac51..1e08253ca2b 100644 --- a/samples/subsys/ipc/ipc_service/multi_endpoint/sample.yaml +++ b/samples/subsys/ipc/ipc_service/multi_endpoint/sample.yaml @@ -17,9 +17,11 @@ tests: platform_allow: - nrf5340dk/nrf5340/cpuapp - nrf5340bsim/nrf5340/cpuapp + - nrf54h20dk/nrf54h20/cpuapp integration_platforms: - nrf5340dk/nrf5340/cpuapp - nrf5340bsim/nrf5340/cpuapp + - nrf54h20dk/nrf54h20/cpuapp tags: ipc sysbuild: true sample.ipc.multi_endpoint.icbmsg: diff --git a/samples/subsys/ipc/ipc_service/multi_endpoint/src/main.c b/samples/subsys/ipc/ipc_service/multi_endpoint/src/main.c index 4ad5659df38..d7d74daaf10 100644 --- a/samples/subsys/ipc/ipc_service/multi_endpoint/src/main.c +++ b/samples/subsys/ipc/ipc_service/multi_endpoint/src/main.c @@ -228,6 +228,7 @@ static void ipc1_entry(void *dummy0, void *dummy1, void *dummy2) return; } + printf("Waiting for bind\n"); k_sem_take(&ipc1_bound_sem, K_FOREVER); /*