diff --git a/boards/Kconfig b/boards/Kconfig index b295e23cad76f..6cd83bcf4edb9 100644 --- a/boards/Kconfig +++ b/boards/Kconfig @@ -71,6 +71,12 @@ config QEMU_UEFI_BOOT This option indicates that QEMU will use UEFI bootable method to boot up. +config BOARD_SUPPORT_REMOTE_ENDPOINT + bool "Board supports remote endpoint" + help + When enabled the BOARD_REMOTE variable is expected to contain the + remote endpoint as board name. + # There might not be any board options, hence the optional source osource "$(BOARD_DIR)/Kconfig" endmenu diff --git a/boards/arm/bl5340_dvk/board.cmake b/boards/arm/bl5340_dvk/board.cmake index da46d32209bc7..6a620e19aa103 100644 --- a/boards/arm/bl5340_dvk/board.cmake +++ b/boards/arm/bl5340_dvk/board.cmake @@ -18,5 +18,9 @@ if(CONFIG_BOARD_BL5340_DVK_CPUNET) board_runner_args(jlink "--device=nrf5340_xxaa_net" "--speed=4000") endif() +if(CONFIG_BOARD_SUPPORT_REMOTE_ENDPOINT AND CONFIG_BOARD_BL5340_DVK_CPUAPP) + set(BOARD_REMOTE "bl5340_dvk_cpunet") +endif() + include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake) include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake) diff --git a/boards/arm/lpcxpresso54114/board.cmake b/boards/arm/lpcxpresso54114/board.cmake index 6c59415aee965..5be542228e4cb 100644 --- a/boards/arm/lpcxpresso54114/board.cmake +++ b/boards/arm/lpcxpresso54114/board.cmake @@ -10,4 +10,8 @@ elseif(CONFIG_BOARD_LPCXPRESSO54114_M0) board_runner_args(jlink "--device=LPC54114J256_M0" "--reset-after-load") endif() +if(CONFIG_BOARD_SUPPORT_REMOTE_ENDPOINT AND CONFIG_BOARD_LPCXPRESSO54114_M4) + set(BOARD_REMOTE "lpcxpresso54114_m0") +endif() + include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake) diff --git a/boards/arm/lpcxpresso55s69/board.cmake b/boards/arm/lpcxpresso55s69/board.cmake index 791f33a031c29..7cbc29e87761f 100644 --- a/boards/arm/lpcxpresso55s69/board.cmake +++ b/boards/arm/lpcxpresso55s69/board.cmake @@ -17,5 +17,9 @@ endif() board_runner_args(pyocd "--target=lpc55s69") +if(CONFIG_BOARD_SUPPORT_REMOTE_ENDPOINT AND CONFIG_BOARD_LPCXPRESSO55S69_CPU0) + set(BOARD_REMOTE "lpcxpresso55s69_cpu1") +endif() + include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake) include(${ZEPHYR_BASE}/boards/common/pyocd.board.cmake) diff --git a/boards/arm/mps2_an521/board.cmake b/boards/arm/mps2_an521/board.cmake index 42e5757952d69..ba47b30d1a6d0 100644 --- a/boards/arm/mps2_an521/board.cmake +++ b/boards/arm/mps2_an521/board.cmake @@ -23,3 +23,8 @@ elseif (CONFIG_SOC_MPS2_AN521_CPU1) set(QEMU_KERNEL_OPTION "-device;loader,file=${CPU0_BINARY_DIR}/zephyr.elf") set(QEMU_EXTRA_FLAGS "-device;loader,file=${CMAKE_CURRENT_BINARY_DIR}/zephyr/zephyr.elf") endif() + +if(CONFIG_BOARD_SUPPORT_REMOTE_ENDPOINT AND CONFIG_BOARD_MPS2_AN521_CPU0) + set(BOARD_REMOTE "mps2_an521_remote") + set(QEMU_EXTRA_FLAGS "-device;loader,file=${REMOTE_ZEPHYR_DIR}/zephyr.elf") +endif() diff --git a/boards/arm/nrf5340dk_nrf5340/board.cmake b/boards/arm/nrf5340dk_nrf5340/board.cmake index 89a11e776bcd1..560272237a781 100644 --- a/boards/arm/nrf5340dk_nrf5340/board.cmake +++ b/boards/arm/nrf5340dk_nrf5340/board.cmake @@ -16,5 +16,9 @@ if(CONFIG_BOARD_NRF5340DK_NRF5340_CPUNET) board_runner_args(jlink "--device=nrf5340_xxaa_net" "--speed=4000") endif() +if(CONFIG_BOARD_SUPPORT_REMOTE_ENDPOINT AND CONFIG_BOARD_NRF5340DK_NRF5340_CPUAPP) + set(BOARD_REMOTE "nrf5340dk_nrf5340_cpunet") +endif() + include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake) include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake) diff --git a/boards/arm/v2m_musca_b1/board.cmake b/boards/arm/v2m_musca_b1/board.cmake index 3d207249d11a3..13e59f8baafbd 100644 --- a/boards/arm/v2m_musca_b1/board.cmake +++ b/boards/arm/v2m_musca_b1/board.cmake @@ -5,4 +5,8 @@ board_set_flasher_ifnset(pyocd) board_runner_args(pyocd "--target=musca_b1") +if(CONFIG_BOARD_SUPPORT_REMOTE_ENDPOINT AND CONFIG_BOARD_MUSCA_B1) + set(BOARD_REMOTE "v2m_musca_b1_ns") +endif() + include(${ZEPHYR_BASE}/boards/common/pyocd.board.cmake) diff --git a/samples/drivers/mbox/CMakeLists.txt b/samples/drivers/mbox/CMakeLists.txt index 7356ed085fd5a..afa38ac530e25 100644 --- a/samples/drivers/mbox/CMakeLists.txt +++ b/samples/drivers/mbox/CMakeLists.txt @@ -8,14 +8,6 @@ cmake_minimum_required(VERSION 3.20.0) set(REMOTE_ZEPHYR_DIR ${CMAKE_CURRENT_BINARY_DIR}/mbox_ipc_remote-prefix/src/mbox_ipc_remote-build/zephyr) -if("${BOARD}" STREQUAL "nrf5340dk_nrf5340_cpuapp") - set(BOARD_REMOTE "nrf5340dk_nrf5340_cpunet") -else() - message(FATAL_ERROR "${BOARD} is not supported for this sample") -endif() - -message(INFO " ${BOARD} compile as Main in this sample") - find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) project(mbox_ipc) @@ -23,14 +15,18 @@ enable_language(C ASM) target_sources(app PRIVATE src/main.c) -include(ExternalProject) - -ExternalProject_Add( - mbox_ipc_remote - SOURCE_DIR ${APPLICATION_SOURCE_DIR}/remote - INSTALL_COMMAND "" # This particular build system has no install command - CMAKE_CACHE_ARGS -DBOARD:STRING=${BOARD_REMOTE} - BUILD_BYPRODUCTS "${REMOTE_ZEPHYR_DIR}/${KERNEL_BIN_NAME}" - # NB: Do we need to pass on more CMake variables? - BUILD_ALWAYS True -) +if(CONFIG_BOARD_SUPPORT_REMOTE_ENDPOINT) + + include(ExternalProject) + + ExternalProject_Add( + mbox_ipc_remote + SOURCE_DIR ${APPLICATION_SOURCE_DIR}/remote + INSTALL_COMMAND "" # This particular build system has no install command + CMAKE_CACHE_ARGS -DBOARD:STRING=${BOARD_REMOTE} + BUILD_BYPRODUCTS "${REMOTE_ZEPHYR_DIR}/${KERNEL_BIN_NAME}" + # NB: Do we need to pass on more CMake variables? + BUILD_ALWAYS True + ) + +endif() diff --git a/samples/drivers/mbox/prj.conf b/samples/drivers/mbox/prj.conf index 293e2834f2535..40973cd333ae9 100644 --- a/samples/drivers/mbox/prj.conf +++ b/samples/drivers/mbox/prj.conf @@ -1,2 +1,3 @@ CONFIG_PRINTK=y CONFIG_MBOX=y +CONFIG_BOARD_SUPPORT_REMOTE_ENDPOINT=y diff --git a/samples/drivers/mbox/remote/CMakeLists.txt b/samples/drivers/mbox/remote/CMakeLists.txt index 47e80e8af10fd..392219dd64e64 100644 --- a/samples/drivers/mbox/remote/CMakeLists.txt +++ b/samples/drivers/mbox/remote/CMakeLists.txt @@ -6,12 +6,6 @@ cmake_minimum_required(VERSION 3.20.0) -if("${BOARD}" STREQUAL "nrf5340dk_nrf5340_cpunet") - message(INFO " ${BOARD} compile as remote in this sample") -else() - message(FATAL_ERROR "${BOARD} is not supported for this sample") -endif() - find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) project(mbox_ipc_remote) diff --git a/samples/subsys/ipc/ipc_service/CMakeLists.txt b/samples/subsys/ipc/ipc_service/CMakeLists.txt index 487bd812ba200..34de9e31733a8 100644 --- a/samples/subsys/ipc/ipc_service/CMakeLists.txt +++ b/samples/subsys/ipc/ipc_service/CMakeLists.txt @@ -7,16 +7,6 @@ cmake_minimum_required(VERSION 3.20.0) set(REMOTE_ZEPHYR_DIR ${CMAKE_CURRENT_BINARY_DIR}/ipc_service_remote-prefix/src/ipc_service_remote-build/zephyr) -if("${BOARD}" STREQUAL "nrf5340dk_nrf5340_cpuapp") - set(BOARD_REMOTE "nrf5340dk_nrf5340_cpunet") -elseif("${BOARD}" STREQUAL "bl5340_dvk_cpuapp") - set(BOARD_REMOTE "bl5340_dvk_cpunet") -else() - message(FATAL_ERROR "${BOARD} is not supported for this sample") -endif() - -message(INFO " ${BOARD} compile as Master in this sample") - find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) project(ipc_service) @@ -24,15 +14,19 @@ enable_language(C ASM) target_sources(app PRIVATE src/main.c) -include(ExternalProject) - -ExternalProject_Add( - ipc_service_remote - SOURCE_DIR ${APPLICATION_SOURCE_DIR}/remote - INSTALL_COMMAND "" # This particular build system has no install command - CMAKE_CACHE_ARGS -DBOARD:STRING=${BOARD_REMOTE} - CMAKE_CACHE_ARGS -DDTC_OVERLAY_FILE:STRING=${DTC_OVERLAY_FILE} - BUILD_BYPRODUCTS "${REMOTE_ZEPHYR_DIR}/${KERNEL_BIN_NAME}" - # NB: Do we need to pass on more CMake variables? - BUILD_ALWAYS True -) +if(CONFIG_BOARD_SUPPORT_REMOTE_ENDPOINT) + + include(ExternalProject) + + ExternalProject_Add( + ipc_service_remote + SOURCE_DIR ${APPLICATION_SOURCE_DIR}/remote + INSTALL_COMMAND "" # This particular build system has no install command + CMAKE_CACHE_ARGS -DBOARD:STRING=${BOARD_REMOTE} + CMAKE_CACHE_ARGS -DDTC_OVERLAY_FILE:STRING=${DTC_OVERLAY_FILE} + BUILD_BYPRODUCTS "${REMOTE_ZEPHYR_DIR}/${KERNEL_BIN_NAME}" + # NB: Do we need to pass on more CMake variables? + BUILD_ALWAYS True + ) + +endif() diff --git a/samples/subsys/ipc/ipc_service/prj.conf b/samples/subsys/ipc/ipc_service/prj.conf index 6c230287c3b86..9b574a2694e96 100644 --- a/samples/subsys/ipc/ipc_service/prj.conf +++ b/samples/subsys/ipc/ipc_service/prj.conf @@ -17,3 +17,5 @@ CONFIG_IPC_SERVICE_BACKEND_RPMSG_MI_NUM_INSTANCES=2 CONFIG_LOG=y CONFIG_IPC_SERVICE_LOG_LEVEL_INF=y + +CONFIG_BOARD_SUPPORT_REMOTE_ENDPOINT=y diff --git a/samples/subsys/ipc/ipc_service/remote/CMakeLists.txt b/samples/subsys/ipc/ipc_service/remote/CMakeLists.txt index f2cc629674e3a..45fba632f47d3 100644 --- a/samples/subsys/ipc/ipc_service/remote/CMakeLists.txt +++ b/samples/subsys/ipc/ipc_service/remote/CMakeLists.txt @@ -5,13 +5,6 @@ cmake_minimum_required(VERSION 3.20.0) -if("${BOARD}" STREQUAL "nrf5340dk_nrf5340_cpunet" - OR "${BOARD}" STREQUAL "bl5340_dvk_cpunet") - message(INFO " ${BOARD} compile as slave in this sample") -else() - message(FATAL_ERROR "${BOARD} is not supported for this sample") -endif() - find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) project(ipc_service_remote) diff --git a/samples/subsys/ipc/ipm_mcux/CMakeLists.txt b/samples/subsys/ipc/ipm_mcux/CMakeLists.txt index 312ed0b1a0542..506333bcffd84 100644 --- a/samples/subsys/ipc/ipm_mcux/CMakeLists.txt +++ b/samples/subsys/ipc/ipm_mcux/CMakeLists.txt @@ -1,20 +1,11 @@ -cmake_minimum_required(VERSION 3.20.0) # Copyright (c) 2017, NXP # # SPDX-License-Identifier: Apache-2.0 # -set(REMOTE_ZEPHYR_DIR ${CMAKE_CURRENT_BINARY_DIR}/ipm_mcux_remote-prefix/src/ipm_mcux_remote-build/zephyr) - -if("${BOARD}" STREQUAL "lpcxpresso54114_m4") - set(BOARD_REMOTE "lpcxpresso54114_m0") -elseif("${BOARD}" STREQUAL "lpcxpresso55s69_cpu0") - set(BOARD_REMOTE "lpcxpresso55s69_cpu1") -else() - message(FATAL_ERROR "${BOARD} was not supported for this sample") -endif() +cmake_minimum_required(VERSION 3.20.0) -message(INFO " ${BOARD} compile as Master in this sample") +set(REMOTE_ZEPHYR_DIR ${CMAKE_CURRENT_BINARY_DIR}/ipm_mcux_remote-prefix/src/ipm_mcux_remote-build/zephyr) find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) project(ipm_mcux) @@ -23,18 +14,22 @@ enable_language(C ASM) target_sources(app PRIVATE src/main_master.c) -include(ExternalProject) +if(CONFIG_BOARD_SUPPORT_REMOTE_ENDPOINT) + + include(ExternalProject) -ExternalProject_Add( - ipm_mcux_remote - SOURCE_DIR ${APPLICATION_SOURCE_DIR}/remote - INSTALL_COMMAND "" # This particular build system has no install command - CMAKE_CACHE_ARGS -DBOARD:STRING=${BOARD_REMOTE} - CMAKE_CACHE_ARGS -DDTC_OVERLAY_FILE:STRING=${DTC_OVERLAY_FILE} - BUILD_BYPRODUCTS "${REMOTE_ZEPHYR_DIR}/${KERNEL_BIN_NAME}" - BUILD_ALWAYS True -) + ExternalProject_Add( + ipm_mcux_remote + SOURCE_DIR ${APPLICATION_SOURCE_DIR}/remote + INSTALL_COMMAND "" # This particular build system has no install command + CMAKE_CACHE_ARGS -DBOARD:STRING=${BOARD_REMOTE} + CMAKE_CACHE_ARGS -DDTC_OVERLAY_FILE:STRING=${DTC_OVERLAY_FILE} + BUILD_BYPRODUCTS "${REMOTE_ZEPHYR_DIR}/${KERNEL_BIN_NAME}" + BUILD_ALWAYS True + ) -add_dependencies(second_core_inc_target ipm_mcux_remote) + add_dependencies(second_core_inc_target ipm_mcux_remote) -target_include_directories(app PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) + target_include_directories(app PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) + +endif() diff --git a/samples/subsys/ipc/ipm_mcux/prj.conf b/samples/subsys/ipc/ipm_mcux/prj.conf index 8440b8298169b..7ff00999df1f7 100644 --- a/samples/subsys/ipc/ipm_mcux/prj.conf +++ b/samples/subsys/ipc/ipm_mcux/prj.conf @@ -5,3 +5,4 @@ CONFIG_SECOND_CORE_MCUX=y CONFIG_SECOND_IMAGE_MCUX="${ZEPHYR_BINARY_DIR}/../ipm_mcux_remote-prefix/src/ipm_mcux_remote-build/zephyr/${KERNEL_BIN_NAME}" CONFIG_TIMESLICE_SIZE=1 CONFIG_MAIN_STACK_SIZE=2048 +CONFIG_BOARD_SUPPORT_REMOTE_ENDPOINT=y diff --git a/samples/subsys/ipc/ipm_mcux/remote/CMakeLists.txt b/samples/subsys/ipc/ipm_mcux/remote/CMakeLists.txt index c92be82d322ab..6742bc81e78ce 100644 --- a/samples/subsys/ipc/ipm_mcux/remote/CMakeLists.txt +++ b/samples/subsys/ipc/ipm_mcux/remote/CMakeLists.txt @@ -1,15 +1,9 @@ -cmake_minimum_required(VERSION 3.20.0) # Copyright (c) 2017, NXP # # SPDX-License-Identifier: Apache-2.0 # -if(("${BOARD}" STREQUAL "lpcxpresso54114_m0") - OR "${BOARD}" STREQUAL "lpcxpresso55s69_cpu1") - message(INFO " ${BOARD} compiles as remote in this sample") -else() - message(FATAL_ERROR "${BOARD} was not supported for this sample") -endif() +cmake_minimum_required(VERSION 3.20.0) find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) project(ipm_mcux_remote) diff --git a/samples/subsys/ipc/openamp/CMakeLists.txt b/samples/subsys/ipc/openamp/CMakeLists.txt index be3168ade571f..be7eb64a5adf9 100644 --- a/samples/subsys/ipc/openamp/CMakeLists.txt +++ b/samples/subsys/ipc/openamp/CMakeLists.txt @@ -1,26 +1,12 @@ -cmake_minimum_required(VERSION 3.20.0) # Copyright (c) 2018 Nordic Semiconductor ASA # Copyright (c) 2019 Linaro Limited # # SPDX-License-Identifier: Apache-2.0 # -set(REMOTE_ZEPHYR_DIR ${CMAKE_CURRENT_BINARY_DIR}/openamp_remote-prefix/src/openamp_remote-build/zephyr) - -if("${BOARD}" STREQUAL "lpcxpresso54114_m4") - set(BOARD_REMOTE "lpcxpresso54114_m0") -elseif("${BOARD}" STREQUAL "lpcxpresso55s69_cpu0") - set(BOARD_REMOTE "lpcxpresso55s69_cpu1") -elseif("${BOARD}" STREQUAL "mps2_an521") - set(QEMU_EXTRA_FLAGS "-device;loader,file=${REMOTE_ZEPHYR_DIR}/zephyr.elf") - set(BOARD_REMOTE "mps2_an521_remote") -elseif("${BOARD}" STREQUAL "v2m_musca_b1") - set(BOARD_REMOTE "v2m_musca_b1_ns") -else() - message(FATAL_ERROR "${BOARD} was not supported for this sample") -endif() +cmake_minimum_required(VERSION 3.20.0) -message(INFO " ${BOARD} compile as Master in this sample") +set(REMOTE_ZEPHYR_DIR ${CMAKE_CURRENT_BINARY_DIR}/openamp_remote-prefix/src/openamp_remote-build/zephyr) find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) project(openamp) @@ -29,17 +15,21 @@ enable_language(C ASM) target_sources(app PRIVATE src/main.c) -include(ExternalProject) +if(CONFIG_BOARD_SUPPORT_REMOTE_ENDPOINT) + + include(ExternalProject) -ExternalProject_Add( - openamp_remote - SOURCE_DIR ${APPLICATION_SOURCE_DIR}/remote - INSTALL_COMMAND "" # This particular build system has no install command - CMAKE_CACHE_ARGS -DBOARD:STRING=${BOARD_REMOTE} - CMAKE_CACHE_ARGS -DDTC_OVERLAY_FILE:STRING=${DTC_OVERLAY_FILE} - BUILD_BYPRODUCTS "${REMOTE_ZEPHYR_DIR}/${KERNEL_BIN_NAME}" - # NB: Do we need to pass on more CMake variables? - BUILD_ALWAYS True -) + ExternalProject_Add( + openamp_remote + SOURCE_DIR ${APPLICATION_SOURCE_DIR}/remote + INSTALL_COMMAND "" # This particular build system has no install command + CMAKE_CACHE_ARGS -DBOARD:STRING=${BOARD_REMOTE} + CMAKE_CACHE_ARGS -DDTC_OVERLAY_FILE:STRING=${DTC_OVERLAY_FILE} + BUILD_BYPRODUCTS "${REMOTE_ZEPHYR_DIR}/${KERNEL_BIN_NAME}" + # NB: Do we need to pass on more CMake variables? + BUILD_ALWAYS True + ) -target_include_directories(app PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) + target_include_directories(app PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) + +endif() diff --git a/samples/subsys/ipc/openamp/prj.conf b/samples/subsys/ipc/openamp/prj.conf index a2a3c9f8c0d86..f1f01832e4f7f 100644 --- a/samples/subsys/ipc/openamp/prj.conf +++ b/samples/subsys/ipc/openamp/prj.conf @@ -5,3 +5,4 @@ CONFIG_MAIN_STACK_SIZE=2048 CONFIG_HEAP_MEM_POOL_SIZE=4096 CONFIG_OPENAMP=y CONFIG_OPENAMP_SLAVE=n +CONFIG_BOARD_SUPPORT_REMOTE_ENDPOINT=y diff --git a/samples/subsys/ipc/openamp/remote/CMakeLists.txt b/samples/subsys/ipc/openamp/remote/CMakeLists.txt index 5228a3956c0f9..7303cad6381d3 100644 --- a/samples/subsys/ipc/openamp/remote/CMakeLists.txt +++ b/samples/subsys/ipc/openamp/remote/CMakeLists.txt @@ -1,18 +1,10 @@ -cmake_minimum_required(VERSION 3.20.0) # Copyright (c) 2018 Nordic Semiconductor ASA # Copyright (c) 2019 Linaro Limited # # SPDX-License-Identifier: Apache-2.0 # -if(("${BOARD}" STREQUAL "lpcxpresso54114_m0") - OR "${BOARD}" STREQUAL "lpcxpresso55s69_cpu1" - OR "${BOARD}" STREQUAL "mps2_an521_remote" - OR "${BOARD}" STREQUAL "v2m_musca_b1_ns") - message(INFO " ${BOARD} compiles as remote in this sample") -else() - message(FATAL_ERROR "${BOARD} was not supported for this sample") -endif() +cmake_minimum_required(VERSION 3.20.0) find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) project(openamp_remote) diff --git a/samples/subsys/ipc/rpmsg_service/CMakeLists.txt b/samples/subsys/ipc/rpmsg_service/CMakeLists.txt index 4a6b3f8cdd78c..69cda50c77c45 100644 --- a/samples/subsys/ipc/rpmsg_service/CMakeLists.txt +++ b/samples/subsys/ipc/rpmsg_service/CMakeLists.txt @@ -1,28 +1,12 @@ -cmake_minimum_required(VERSION 3.20.0) # Copyright (c) 2019 Linaro Limited # Copyright (c) 2018-2021 Nordic Semiconductor ASA # # SPDX-License-Identifier: Apache-2.0 # -set(REMOTE_ZEPHYR_DIR ${CMAKE_CURRENT_BINARY_DIR}/rpmsg_service_remote-prefix/src/rpmsg_service_remote-build/zephyr) - -if("${BOARD}" STREQUAL "nrf5340dk_nrf5340_cpuapp") - set(BOARD_REMOTE "nrf5340dk_nrf5340_cpunet") -elseif("${BOARD}" STREQUAL "bl5340_dvk_cpuapp") - set(BOARD_REMOTE "bl5340_dvk_cpunet") -elseif("${BOARD}" STREQUAL "lpcxpresso54114_m4") - set(BOARD_REMOTE "lpcxpresso54114_m0") -elseif("${BOARD}" STREQUAL "mps2_an521") - set(QEMU_EXTRA_FLAGS "-device;loader,file=${REMOTE_ZEPHYR_DIR}/zephyr.elf") - set(BOARD_REMOTE "mps2_an521_remote") -elseif("${BOARD}" STREQUAL "v2m_musca_b1") - set(BOARD_REMOTE "v2m_musca_b1_ns") -else() - message(FATAL_ERROR "${BOARD} was not supported for this sample") -endif() +cmake_minimum_required(VERSION 3.20.0) -message(INFO " ${BOARD} compile as Master in this sample") +set(REMOTE_ZEPHYR_DIR ${CMAKE_CURRENT_BINARY_DIR}/rpmsg_service_remote-prefix/src/rpmsg_service_remote-build/zephyr) find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) project(rpmsg_service) @@ -31,21 +15,19 @@ enable_language(C ASM) target_sources(app PRIVATE src/main.c) -include(ExternalProject) - -ExternalProject_Add( - rpmsg_service_remote - SOURCE_DIR ${APPLICATION_SOURCE_DIR}/remote - INSTALL_COMMAND "" # This particular build system has no install command - CMAKE_CACHE_ARGS -DBOARD:STRING=${BOARD_REMOTE} - CMAKE_CACHE_ARGS -DDTC_OVERLAY_FILE:STRING=${DTC_OVERLAY_FILE} - BUILD_BYPRODUCTS "${REMOTE_ZEPHYR_DIR}/${KERNEL_BIN_NAME}" - # NB: Do we need to pass on more CMake variables? - BUILD_ALWAYS True -) - -if(("${BOARD}" STREQUAL "lpcxpresso54114_m4")) - add_dependencies(core_m0_inc_target rpmsg_service_remote) -endif() +if(CONFIG_BOARD_SUPPORT_REMOTE_ENDPOINT) + + include(ExternalProject) -target_include_directories(app PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) + ExternalProject_Add( + rpmsg_service_remote + SOURCE_DIR ${APPLICATION_SOURCE_DIR}/remote + INSTALL_COMMAND "" # This particular build system has no install command + CMAKE_CACHE_ARGS -DBOARD:STRING=${BOARD_REMOTE} + CMAKE_CACHE_ARGS -DDTC_OVERLAY_FILE:STRING=${DTC_OVERLAY_FILE} + BUILD_BYPRODUCTS "${REMOTE_ZEPHYR_DIR}/${KERNEL_BIN_NAME}" + # NB: Do we need to pass on more CMake variables? + BUILD_ALWAYS True + ) + +endif() diff --git a/samples/subsys/ipc/rpmsg_service/prj.conf b/samples/subsys/ipc/rpmsg_service/prj.conf index dc7dba36ca73b..18dee136f6f99 100644 --- a/samples/subsys/ipc/rpmsg_service/prj.conf +++ b/samples/subsys/ipc/rpmsg_service/prj.conf @@ -6,3 +6,4 @@ CONFIG_HEAP_MEM_POOL_SIZE=4096 CONFIG_RPMSG_SERVICE=y CONFIG_RPMSG_SERVICE_MODE_MASTER=y CONFIG_OPENAMP_SLAVE=n +CONFIG_BOARD_SUPPORT_REMOTE_ENDPOINT=y