From 12b39307f30b6a0644b462696d675a7d4ae80daf Mon Sep 17 00:00:00 2001 From: Vinayak Kariappa Chettimada Date: Mon, 15 Apr 2024 13:28:59 +0200 Subject: [PATCH] samples: Bluetooth: Support sysbuild for central_hr and peripheral_hr Add support for using sysbuild for central_hr and peripheral_hr samples so that hci_ipc sample is built for nRF53x SoCs boards. Signed-off-by: Vinayak Kariappa Chettimada --- samples/bluetooth/central_hr/Kconfig.sysbuild | 15 ++++++++++++ .../boards/nrf5340bsim_nrf5340_cpuapp.conf | 3 +++ samples/bluetooth/central_hr/sysbuild.cmake | 24 +++++++++++++++++++ .../bluetooth/peripheral_hr/Kconfig.sysbuild | 15 ++++++++++++ .../boards/nrf5340bsim_nrf5340_cpuapp.conf | 3 +++ .../bluetooth/peripheral_hr/sysbuild.cmake | 24 +++++++++++++++++++ 6 files changed, 84 insertions(+) create mode 100644 samples/bluetooth/central_hr/Kconfig.sysbuild create mode 100644 samples/bluetooth/central_hr/boards/nrf5340bsim_nrf5340_cpuapp.conf create mode 100644 samples/bluetooth/central_hr/sysbuild.cmake create mode 100644 samples/bluetooth/peripheral_hr/Kconfig.sysbuild create mode 100644 samples/bluetooth/peripheral_hr/boards/nrf5340bsim_nrf5340_cpuapp.conf create mode 100644 samples/bluetooth/peripheral_hr/sysbuild.cmake diff --git a/samples/bluetooth/central_hr/Kconfig.sysbuild b/samples/bluetooth/central_hr/Kconfig.sysbuild new file mode 100644 index 00000000000..61836cb8855 --- /dev/null +++ b/samples/bluetooth/central_hr/Kconfig.sysbuild @@ -0,0 +1,15 @@ +# Copyright 2023-2024 Nordic Semiconductor ASA +# SPDX-License-Identifier: Apache-2.0 + +source "share/sysbuild/Kconfig" + +config NET_CORE_BOARD + string + default "nrf5340dk/nrf5340/cpunet" if $(BOARD) = "nrf5340dk" + default "nrf5340_audio_dk/nrf5340/cpunet" if $(BOARD) = "nrf5340_audio_dk" + default "nrf5340bsim/nrf5340/cpunet" if $(BOARD_TARGET_STRING) = "NRF5340BSIM_NRF5340_CPUAPP" + +config NET_CORE_IMAGE_HCI_IPC + bool "HCI IPC image on network core" + default y + depends on NET_CORE_BOARD != "" diff --git a/samples/bluetooth/central_hr/boards/nrf5340bsim_nrf5340_cpuapp.conf b/samples/bluetooth/central_hr/boards/nrf5340bsim_nrf5340_cpuapp.conf new file mode 100644 index 00000000000..7ffe275701c --- /dev/null +++ b/samples/bluetooth/central_hr/boards/nrf5340bsim_nrf5340_cpuapp.conf @@ -0,0 +1,3 @@ +# Set same the ACL RX buffer size as in hci_ipc on netcore so that +# HCI Controller to Host Flowcontrol is supported. +CONFIG_BT_BUF_ACL_RX_SIZE=255 diff --git a/samples/bluetooth/central_hr/sysbuild.cmake b/samples/bluetooth/central_hr/sysbuild.cmake new file mode 100644 index 00000000000..2523aac8ea7 --- /dev/null +++ b/samples/bluetooth/central_hr/sysbuild.cmake @@ -0,0 +1,24 @@ +# Copyright (c) 2023 Nordic Semiconductor ASA +# SPDX-License-Identifier: Apache-2.0 + +if(SB_CONFIG_NET_CORE_IMAGE_HCI_IPC) + # For builds in the nrf5340, we build the netcore image with the controller + + set(NET_APP hci_ipc) + set(NET_APP_SRC_DIR ${ZEPHYR_BASE}/samples/bluetooth/${NET_APP}) + + ExternalZephyrProject_Add( + APPLICATION ${NET_APP} + SOURCE_DIR ${NET_APP_SRC_DIR} + BOARD ${SB_CONFIG_NET_CORE_BOARD} + ) + + set(${NET_APP}_CONF_FILE + ${NET_APP_SRC_DIR}/nrf5340_cpunet_iso-bt_ll_sw_split.conf + CACHE INTERNAL "" + ) + + native_simulator_set_child_images(${DEFAULT_IMAGE} ${NET_APP}) +endif() + +native_simulator_set_final_executable(${DEFAULT_IMAGE}) diff --git a/samples/bluetooth/peripheral_hr/Kconfig.sysbuild b/samples/bluetooth/peripheral_hr/Kconfig.sysbuild new file mode 100644 index 00000000000..61836cb8855 --- /dev/null +++ b/samples/bluetooth/peripheral_hr/Kconfig.sysbuild @@ -0,0 +1,15 @@ +# Copyright 2023-2024 Nordic Semiconductor ASA +# SPDX-License-Identifier: Apache-2.0 + +source "share/sysbuild/Kconfig" + +config NET_CORE_BOARD + string + default "nrf5340dk/nrf5340/cpunet" if $(BOARD) = "nrf5340dk" + default "nrf5340_audio_dk/nrf5340/cpunet" if $(BOARD) = "nrf5340_audio_dk" + default "nrf5340bsim/nrf5340/cpunet" if $(BOARD_TARGET_STRING) = "NRF5340BSIM_NRF5340_CPUAPP" + +config NET_CORE_IMAGE_HCI_IPC + bool "HCI IPC image on network core" + default y + depends on NET_CORE_BOARD != "" diff --git a/samples/bluetooth/peripheral_hr/boards/nrf5340bsim_nrf5340_cpuapp.conf b/samples/bluetooth/peripheral_hr/boards/nrf5340bsim_nrf5340_cpuapp.conf new file mode 100644 index 00000000000..7ffe275701c --- /dev/null +++ b/samples/bluetooth/peripheral_hr/boards/nrf5340bsim_nrf5340_cpuapp.conf @@ -0,0 +1,3 @@ +# Set same the ACL RX buffer size as in hci_ipc on netcore so that +# HCI Controller to Host Flowcontrol is supported. +CONFIG_BT_BUF_ACL_RX_SIZE=255 diff --git a/samples/bluetooth/peripheral_hr/sysbuild.cmake b/samples/bluetooth/peripheral_hr/sysbuild.cmake new file mode 100644 index 00000000000..2523aac8ea7 --- /dev/null +++ b/samples/bluetooth/peripheral_hr/sysbuild.cmake @@ -0,0 +1,24 @@ +# Copyright (c) 2023 Nordic Semiconductor ASA +# SPDX-License-Identifier: Apache-2.0 + +if(SB_CONFIG_NET_CORE_IMAGE_HCI_IPC) + # For builds in the nrf5340, we build the netcore image with the controller + + set(NET_APP hci_ipc) + set(NET_APP_SRC_DIR ${ZEPHYR_BASE}/samples/bluetooth/${NET_APP}) + + ExternalZephyrProject_Add( + APPLICATION ${NET_APP} + SOURCE_DIR ${NET_APP_SRC_DIR} + BOARD ${SB_CONFIG_NET_CORE_BOARD} + ) + + set(${NET_APP}_CONF_FILE + ${NET_APP_SRC_DIR}/nrf5340_cpunet_iso-bt_ll_sw_split.conf + CACHE INTERNAL "" + ) + + native_simulator_set_child_images(${DEFAULT_IMAGE} ${NET_APP}) +endif() + +native_simulator_set_final_executable(${DEFAULT_IMAGE})