diff --git a/samples/subsys/ipc/ipc_service/icmsg/CMakeLists.txt b/samples/subsys/ipc/ipc_service/icmsg/CMakeLists.txt index 7fdf33f9621e..01039f6898aa 100644 --- a/samples/subsys/ipc/ipc_service/icmsg/CMakeLists.txt +++ b/samples/subsys/ipc/ipc_service/icmsg/CMakeLists.txt @@ -11,7 +11,8 @@ find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) if(NOT CONFIG_BOARD_NRF5340DK_NRF5340_CPUAPP AND NOT CONFIG_BOARD_NRF5340BSIM_NRF5340_CPUAPP AND NOT CONFIG_BOARD_STM32H747I_DISCO AND - NOT CONFIG_BOARD_NRF54L15DK_NRF54L15_CPUAPP) + NOT CONFIG_BOARD_NRF54L15DK_NRF54L15_CPUAPP AND + NOT CONFIG_BOARD_ARDUINO_GIGA_R1) message(FATAL_ERROR "${BOARD} is not supported for this sample") endif() diff --git a/samples/subsys/ipc/ipc_service/icmsg/Kconfig.sysbuild b/samples/subsys/ipc/ipc_service/icmsg/Kconfig.sysbuild index 8ef1b70793b8..c9032844114f 100644 --- a/samples/subsys/ipc/ipc_service/icmsg/Kconfig.sysbuild +++ b/samples/subsys/ipc/ipc_service/icmsg/Kconfig.sysbuild @@ -10,3 +10,4 @@ string default "nrf5340bsim/nrf5340/cpunet" if $(BOARD) = "nrf5340bsim" default "nrf54l15dk/nrf54l15/cpuflpr" if $(BOARD) = "nrf54l15dk" default "stm32h747i_disco/stm32h747xx/m4" if $(BOARD) = "stm32h747i_disco" + default "arduino_giga_r1/stm32h747xx/m4" if $(BOARD) = "arduino_giga_r1" diff --git a/samples/subsys/ipc/ipc_service/icmsg/boards/arduino_giga_r1_m7.conf b/samples/subsys/ipc/ipc_service/icmsg/boards/arduino_giga_r1_m7.conf new file mode 100644 index 000000000000..acba758575a8 --- /dev/null +++ b/samples/subsys/ipc/ipc_service/icmsg/boards/arduino_giga_r1_m7.conf @@ -0,0 +1 @@ +CONFIG_MBOX_STM32_HSEM=y diff --git a/samples/subsys/ipc/ipc_service/icmsg/boards/arduino_giga_r1_m7.overlay b/samples/subsys/ipc/ipc_service/icmsg/boards/arduino_giga_r1_m7.overlay new file mode 100644 index 000000000000..52a2facb9bf3 --- /dev/null +++ b/samples/subsys/ipc/ipc_service/icmsg/boards/arduino_giga_r1_m7.overlay @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2024 Celina Sophie Kalus + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + chosen { + /delete-property/ zephyr,ipc_shm; + }; + + /* Define new memory regions for TX and RX */ + /delete-node/ memory@38000000; + + sram_tx: memory@38000000 { + zephyr,memory-region = "SRAM_TX"; + compatible = "zephyr,memory-region", "mmio-sram"; + reg = <0x38000000 0x08000>; + zephyr,memory-attr = <( DT_MEM_ARM(ATTR_MPU_RAM_NOCACHE) )>; + }; + + sram_rx: memory@38008000 { + zephyr,memory-region = "SRAM_RX"; + compatible = "zephyr,memory-region", "mmio-sram"; + reg = <0x38008000 0x08000>; + zephyr,memory-attr = <( DT_MEM_ARM(ATTR_MPU_RAM_NOCACHE) )>; + }; + + ipc0: ipc0 { + compatible = "zephyr,ipc-icmsg"; + tx-region = <&sram_tx>; + rx-region = <&sram_rx>; + mboxes = <&mailbox 11>, <&mailbox 10>; + mbox-names = "tx", "rx"; + status = "okay"; + }; +}; + +&mailbox { + status = "okay"; +}; diff --git a/samples/subsys/ipc/ipc_service/icmsg/remote/boards/arduino_giga_r1_m4.conf b/samples/subsys/ipc/ipc_service/icmsg/remote/boards/arduino_giga_r1_m4.conf new file mode 100644 index 000000000000..110236f8fbde --- /dev/null +++ b/samples/subsys/ipc/ipc_service/icmsg/remote/boards/arduino_giga_r1_m4.conf @@ -0,0 +1,5 @@ +CONFIG_CONSOLE=y +CONFIG_UART_CONSOLE=y +CONFIG_LOG_BACKEND_UART=y + +CONFIG_MBOX_STM32_HSEM=y diff --git a/samples/subsys/ipc/ipc_service/icmsg/remote/boards/arduino_giga_r1_m4.overlay b/samples/subsys/ipc/ipc_service/icmsg/remote/boards/arduino_giga_r1_m4.overlay new file mode 100644 index 000000000000..d599289b729b --- /dev/null +++ b/samples/subsys/ipc/ipc_service/icmsg/remote/boards/arduino_giga_r1_m4.overlay @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2024 Celina Sophie Kalus + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + chosen { + /delete-property/ zephyr,ipc_shm; + + zephyr,console = &usart2; + zephyr,shell-uart = &usart2; + }; + + /* Define new memory regions for TX and RX */ + /delete-node/ memory@38000000; + + sram_rx: memory@38000000 { + zephyr,memory-region = "SRAM_RX"; + compatible = "zephyr,memory-region", "mmio-sram"; + reg = <0x38000000 0x08000>; + zephyr,memory-attr = <( DT_MEM_ARM(ATTR_MPU_RAM_NOCACHE) )>; + }; + + sram_tx: memory@38008000 { + zephyr,memory-region = "SRAM_TX"; + compatible = "zephyr,memory-region", "mmio-sram"; + reg = <0x38008000 0x08000>; + zephyr,memory-attr = <( DT_MEM_ARM(ATTR_MPU_RAM_NOCACHE) )>; + }; + + ipc0: ipc0 { + compatible = "zephyr,ipc-icmsg"; + tx-region = <&sram_tx>; + rx-region = <&sram_rx>; + mboxes = <&mailbox 10>, <&mailbox 11>; + mbox-names = "tx", "rx"; + status = "okay"; + }; +}; + +&usart2 { + status = "okay"; +}; + +&mailbox { + status = "okay"; +};