Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bluetooth: Controller: nRF53 IPC to signal clock start and stop #68694

Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 40 additions & 7 deletions samples/bluetooth/hci_ipc/nrf5340_cpunet_iso-bt_ll_sw_split.conf
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ CONFIG_BT_HCI_TX_STACK_SIZE=1152
CONFIG_BT_RX_STACK_SIZE=640
CONFIG_BT_CTLR_RX_PRIO_STACK_SIZE=448

# Host features
# Host and Controller common dependencies
CONFIG_BT_EXT_ADV=y
CONFIG_BT_PER_ADV=y
CONFIG_BT_PER_ADV_SYNC=y
Expand All @@ -44,7 +44,9 @@ CONFIG_BT_ISO_CENTRAL=y
CONFIG_BT_ISO_PERIPHERAL=y

# ISO Streams
CONFIG_BT_ISO_MAX_CHAN=2
CONFIG_BT_ISO_MAX_CHAN=4
CONFIG_BT_ISO_TX_BUF_COUNT=1
CONFIG_BT_ISO_RX_BUF_COUNT=1

# Controller
CONFIG_BT_LL_SW_SPLIT=y
Expand Down Expand Up @@ -75,7 +77,10 @@ CONFIG_BT_CTLR_ADV_DATA_BUF_MAX=6
CONFIG_BT_CTLR_SCAN_AUX_SET=1

CONFIG_BT_CTLR_ADV_RESERVE_MAX=n
CONFIG_BT_CTLR_ADV_ISO_RESERVE_MAX=y
CONFIG_BT_CTLR_SYNC_ISO_RESERVE_MAX=n
CONFIG_BT_CTLR_CENTRAL_RESERVE_MAX=n
CONFIG_BT_CTLR_EVENT_OVERHEAD_RESERVE_MAX=y
CONFIG_BT_CTLR_SLOT_RESERVATION_UPDATE=n
CONFIG_BT_CTLR_SCAN_UNRESERVED=y
CONFIG_BT_TICKER_NEXT_SLOT_GET_MATCH=y
Expand All @@ -85,19 +90,38 @@ CONFIG_BT_TICKER_EXT_SLOT_WINDOW_YIELD=y
# Control Procedure
CONFIG_BT_CTLR_LLCP_LOCAL_PROC_CTX_BUF_NUM=6

# Direction Finding
# CONFIG_BT_CTLR_DF=y
# CONFIG_BT_CTLR_DF_PER_ADV_CTE_NUM_MAX=3
# CONFIG_BT_CTLR_DF_PER_SCAN_CTE_NUM_MAX=3

# Direction Finding Tx
# CONFIG_BT_CTLR_DF_CTE_TX=y
# CONFIG_BT_CTLR_DF_CONN_CTE_TX=y
# CONFIG_BT_CTLR_DF_ANT_SWITCH_TX=y
# CONFIG_BT_CTLR_DF_CONN_CTE_RSP=y

# Direction Finding Rx
# CONFIG_BT_CTLR_DF_CTE_RX=y
# CONFIG_BT_CTLR_DF_CONN_CTE_RX=y
# CONFIG_BT_CTLR_DF_ANT_SWITCH_RX=y
# CONFIG_BT_CTLR_DF_CONN_CTE_REQ=y

# ISO Broadcaster Controller
CONFIG_BT_CTLR_ADV_EXT=y
CONFIG_BT_CTLR_ADV_PERIODIC=y
CONFIG_BT_CTLR_ADV_ISO=y
CONFIG_BT_CTLR_ADV_ISO_SET=2
CONFIG_BT_CTLR_ADV_ISO_STREAM_MAX=4
CONFIG_BT_CTLR_ADV_ISO_PDU_LEN_MAX=251
CONFIG_BT_CTLR_ADV_ISO_STREAM_MAX=2

# ISO Receive Controller
CONFIG_BT_CTLR_ADV_EXT=y
CONFIG_BT_CTLR_SYNC_PERIODIC=y
CONFIG_BT_CTLR_SYNC_ISO=y
CONFIG_BT_CTLR_SCAN_SYNC_ISO_SET=2
CONFIG_BT_CTLR_SYNC_ISO_STREAM_MAX=4
CONFIG_BT_CTLR_SYNC_ISO_PDU_LEN_MAX=251
CONFIG_BT_CTLR_SYNC_ISO_STREAM_MAX=2

# ISO Connection Oriented
CONFIG_BT_CTLR_CENTRAL_ISO=y
Expand All @@ -106,13 +130,22 @@ CONFIG_BT_CTLR_CONN_ISO_SDU_LEN_MAX=251
CONFIG_BT_CTLR_CONN_ISO_PDU_LEN_MAX=251

# ISO Transmissions
CONFIG_BT_CTLR_ISO_TX_BUFFERS=8
CONFIG_BT_CTLR_ISOAL_SOURCES=4
CONFIG_BT_CTLR_ISO_TX_BUFFERS=10
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=251
CONFIG_BT_CTLR_ISOAL_SOURCES=2

# ISO Receptions
CONFIG_BT_CTLR_ISOAL_SINKS=4
CONFIG_BT_CTLR_ISO_RX_BUFFERS=8
CONFIG_BT_CTLR_ISOAL_SINKS=2

# Tx Power Dynamic Control
CONFIG_BT_CTLR_TX_PWR_DYNAMIC_CONTROL=y

# Ignore HCI ISO data Tx sequence numbers
CONFIG_BT_CTLR_ISOAL_PSN_IGNORE=y

# Optimize for flash usage
CONFIG_BT_CTLR_OPTIMIZE_FOR_SPEED=n
CONFIG_SHARED_INTERRUPTS=y
CONFIG_ISR_TABLES_LOCAL_DECLARATION=y
CONFIG_LTO=y
29 changes: 21 additions & 8 deletions samples/bluetooth/hci_uart/overlay-all-bt_ll_sw_split.conf
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@ CONFIG_BT_BUF_ACL_RX_SIZE=255
CONFIG_BT_BUF_ACL_TX_SIZE=251
CONFIG_BT_BUF_CMD_TX_SIZE=255

# Tx/Rx Thread Stack Sizes
CONFIG_BT_HCI_TX_STACK_SIZE_WITH_PROMPT=y
CONFIG_BT_HCI_TX_STACK_SIZE=1152
CONFIG_BT_RX_STACK_SIZE=640
CONFIG_BT_CTLR_RX_PRIO_STACK_SIZE=448

# Host and Controller common dependencies
CONFIG_BT_EXT_ADV=y
CONFIG_BT_PER_ADV=y
Expand All @@ -18,7 +24,9 @@ CONFIG_BT_ISO_CENTRAL=y
CONFIG_BT_ISO_PERIPHERAL=y

# ISO Streams
CONFIG_BT_ISO_MAX_CHAN=2
CONFIG_BT_ISO_MAX_CHAN=4
CONFIG_BT_ISO_TX_BUF_COUNT=18
CONFIG_BT_ISO_RX_BUF_COUNT=4

# Controller
CONFIG_BT_LL_SW_SPLIT=y
Expand Down Expand Up @@ -49,7 +57,10 @@ CONFIG_BT_CTLR_ADV_DATA_BUF_MAX=6
CONFIG_BT_CTLR_SCAN_AUX_SET=1

CONFIG_BT_CTLR_ADV_RESERVE_MAX=n
CONFIG_BT_CTLR_ADV_ISO_RESERVE_MAX=y
CONFIG_BT_CTLR_SYNC_ISO_RESERVE_MAX=n
CONFIG_BT_CTLR_CENTRAL_RESERVE_MAX=n
CONFIG_BT_CTLR_EVENT_OVERHEAD_RESERVE_MAX=y
CONFIG_BT_CTLR_SLOT_RESERVATION_UPDATE=n
CONFIG_BT_CTLR_SCAN_UNRESERVED=y
CONFIG_BT_TICKER_NEXT_SLOT_GET_MATCH=y
Expand Down Expand Up @@ -80,30 +91,32 @@ CONFIG_BT_CTLR_DF_CONN_CTE_REQ=y
CONFIG_BT_CTLR_ADV_EXT=y
CONFIG_BT_CTLR_ADV_PERIODIC=y
CONFIG_BT_CTLR_ADV_ISO=y
CONFIG_BT_CTLR_ADV_ISO_SET=2
CONFIG_BT_CTLR_ADV_ISO_STREAM_MAX=4
CONFIG_BT_CTLR_ADV_ISO_PDU_LEN_MAX=251
CONFIG_BT_CTLR_ADV_ISO_STREAM_MAX=2

# ISO Receive Controller
CONFIG_BT_CTLR_ADV_EXT=y
CONFIG_BT_CTLR_SYNC_PERIODIC=y
CONFIG_BT_CTLR_SYNC_ISO=y
CONFIG_BT_CTLR_SCAN_SYNC_ISO_SET=2
CONFIG_BT_CTLR_SYNC_ISO_STREAM_MAX=4
CONFIG_BT_CTLR_SYNC_ISO_PDU_LEN_MAX=251
CONFIG_BT_CTLR_SYNC_ISO_STREAM_MAX=2

# ISO Connection Oriented
CONFIG_BT_CTLR_CENTRAL_ISO=y
CONFIG_BT_CTLR_PERIPHERAL_ISO=y
CONFIG_BT_CTLR_CONN_ISO_SDU_LEN_MAX=251
CONFIG_BT_CTLR_CONN_ISO_SDU_LEN_MAX=753
CONFIG_BT_CTLR_CONN_ISO_PDU_LEN_MAX=251

# ISO Transmissions
CONFIG_BT_CTLR_ISO_TX_BUFFERS=8
CONFIG_BT_CTLR_ISOAL_SOURCES=4
CONFIG_BT_CTLR_ISO_TX_BUFFERS=18
CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=251
CONFIG_BT_CTLR_ISOAL_SOURCES=2

# ISO Receptions
CONFIG_BT_CTLR_ISO_RX_BUFFERS=8
CONFIG_BT_CTLR_ISOAL_SINKS=2
CONFIG_BT_CTLR_ISOAL_SINKS=4
CONFIG_BT_CTLR_ISO_RX_BUFFERS=4

# Tx Power Dynamic Control
CONFIG_BT_CTLR_TX_PWR_DYNAMIC_CONTROL=y
12 changes: 12 additions & 0 deletions subsys/bluetooth/controller/ll_sw/nordic/hal/nrf5/cntr.c
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@

#include <hal/nrf_rtc.h>

#if defined(CONFIG_SOC_SERIES_NRF53X)
#include <hal/nrf_ipc.h>
#endif /* CONFIG_SOC_SERIES_NRF53X */

#include "hal/cntr.h"

#include "hal/debug.h"
Expand All @@ -32,6 +36,10 @@ uint32_t cntr_start(void)

nrf_rtc_task_trigger(NRF_RTC, NRF_RTC_TASK_START);

#if defined(CONFIG_SOC_SERIES_NRF53X)
nrf_ipc_task_trigger(NRF_IPC, NRF_IPC_TASK_SEND_4);
#endif /* CONFIG_SOC_SERIES_NRF53X */

return 0;
}

Expand All @@ -45,6 +53,10 @@ uint32_t cntr_stop(void)

nrf_rtc_task_trigger(NRF_RTC, NRF_RTC_TASK_STOP);

#if defined(CONFIG_SOC_SERIES_NRF53X)
nrf_ipc_task_trigger(NRF_IPC, NRF_IPC_TASK_SEND_5);
#endif /* CONFIG_SOC_SERIES_NRF53X */

return 0;
}

Expand Down
Loading