Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
28a860f
manifest: update sdk-zephyr, sdk-mcuboot and Matter SDK revision
jfischer-no Apr 25, 2025
37d9f41
Kconfig: rename deprecated POSIX API Kconfig options
tmon-nordic Mar 13, 2025
3263932
quarantine: update
PerMac May 5, 2025
d59caf8
quarantine: update
PerMac May 6, 2025
18410cb
net: openthread: rpc: Replace IPPROTO_RAW with ETH_P_ALL
rlubos Mar 11, 2025
4414255
samples: cellular: modem_shell: Replace IPPROTO_RAW with ETH_P_ALL
rlubos Mar 14, 2025
07243e7
applications: serial_lte_modem: Replace IPPROTO_RAW with ETH_P_ALL
rlubos Mar 17, 2025
99795bb
Bluetooth: Controller: Port HCI Command buffer allocation
cvinayak Apr 30, 2025
c5098d1
dfu: dfu_target: Update for upstream changes
maxd-nordic Apr 30, 2025
0969315
Bluetooth: Host: Rename _bt_gatt_ccc to bt_gatt_ccc_managed_user_data
weeTike Apr 30, 2025
160f283
Samples: Bluetooth: Refactor removed BT_ISO_CHAN_TYPE_CONNECTED
weeTike Apr 30, 2025
daf9cf2
Bluetooth: rpc: Change signature of bt_conn_get_remote_info
weeTike Apr 30, 2025
39a6cd2
Samples: Bluetooth: Explicitly set CONFIG_BT_BUF_EVT_RX_COUNT
weeTike Apr 30, 2025
d750dc6
tests: lib: hw_id: upmerge fixes
maxd-nordic Apr 30, 2025
b90c6c2
tests: app_jwt: update expected JWT sigs
maxd-nordic May 2, 2025
c8c9e3a
Bluetooth: rpc: cast conn to not const
weeTike May 1, 2025
3a9e0d0
Bluetooth: Services: Rename BT_GATT_CCC_INITIALIZER
weeTike May 1, 2025
ff8d359
kconfig: Remove large default command buffer for 5340
weeTike May 1, 2025
a6627aa
ext: remove dependency on POSIX_THREADS not being selected
jfischer-no May 5, 2025
5e2e7e5
samples: cellular: modem_shell: Remove use of deprecated UART option
tokangas May 5, 2025
39c833c
samples: cellular: at_client: Remove use of deprecated UART option
tokangas May 5, 2025
c643cc9
tests: net: lib: downloader: fix pipe implementation
eivindj-nordic May 5, 2025
71b1dd9
tests: net: lib: download_client: fix pipe implementation
eivindj-nordic May 5, 2025
1637c5c
lib: dfu: fix zephyr header usage
maxd-nordic May 5, 2025
8bfd02f
nrf_security: core: oberon: remove disabling of warnings
tomi-font May 5, 2025
f8c5161
app: conn_bridge: Reduce logging to save flash space
nordic-auko May 5, 2025
ba71d26
applications: nrf_desktop: Update the USB callback API
pdunaj May 6, 2025
9fc1b74
lib: edge_impulse: Convert error type before printing
pdunaj May 6, 2025
7fcd069
tests: net: nrf_provisioning: Fix CoAP tests
juhaylinen May 6, 2025
b686603
tests: lib: location: Fix mock generation
tokangas May 6, 2025
c9646e9
gh: workflows: Disable new SybuildKconfig tests
carlescufi May 6, 2025
c35b4e7
samples: wifi: thread_coex: Enable zperf server
rado17 May 6, 2025
0cf5f13
tests: drivers: raw_tx_rx: Remove POSIX_CLOCK
rado17 May 6, 2025
18a5a9f
doc: add support for enabling/disabling hw features generation
gmarull May 6, 2025
53531fb
doc: reverse DTS bindings option logic
gmarull May 6, 2025
0547daf
doc: use :zephyr:board:`...` role
gmarull May 6, 2025
9125c30
doc: nrf: adjust documentation about optimized doc builds
gmarull May 7, 2025
904c5c8
doc/nrf: remove dead native_posix links
gmarull May 7, 2025
0ab3463
crypto: Isolated GCC-specific warning option for nrf_oberon
frkv May 7, 2025
0130b63
modules: openthread: remove unused function
adigie May 7, 2025
4bc7ad3
modules: openthread: fix unused function error
adigie May 7, 2025
c4a0325
application: nrf5340_audio: API changes in upmerge
gWacey May 6, 2025
2623a21
dfu: dfu_target: adjust for erased_up_to
michalek-no May 7, 2025
e213b48
dfu: dfu_target: use proper flatten function
maxd-nordic May 7, 2025
bc4feb5
tests: bluetooth: iso: Add correct CONFIG_BT_BUF_EVT_RX_COUNT
weeTike May 8, 2025
e5bc91b
scripts: ncs_west_helpers: update revert SHA workaround
jfischer-no May 8, 2025
560f3b9
applications: nrf_desktop: Reduce RAM usage of dongles with limited RAM
MarekPieta May 8, 2025
fc1576a
openthread: Separate OpenThread Kconfigs from L2 layer
ArekBalysNordic Apr 17, 2025
10bd0f4
Samples: Bluetooth: Add iso datapath
weeTike May 9, 2025
a659f41
applications: nrf5340_audio: Add workq to adv
alexsven May 9, 2025
ccf0fd3
dts: nrf54lm20a: Change binding for aclk node
mstasiaknordic May 9, 2025
5780b27
cmake: link mbedtls_external directly to zephyr
tejlmand May 7, 2025
536c639
cmake: link openthread libraries to zephyr library
tejlmand May 12, 2025
b7c633c
doc: release-notes-changelog: update Zephyr and MCUboot SHAs
jfischer-no May 13, 2025
930bc6c
tests: grtc_clk_output: update property name
jfischer-no May 13, 2025
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
4 changes: 3 additions & 1 deletion .github/workflows/compliance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,9 @@ jobs:
git log --pretty=oneline | head -n 10
# For now we run KconfigBasic, but we should transition to Kconfig
$ZEPHYR_BASE/scripts/ci/check_compliance.py --annotate -e Kconfig \
-e KconfigBasicNoModules -e ClangFormat -e Ruff -c origin/${BASE_REF}..
-e KconfigBasicNoModules -e ClangFormat -e Ruff \
-e SysbuildKconfig -e SysbuildKconfigBasic -e SysbuildKconfigBasicNoModules \
-c origin/${BASE_REF}..

- name: upload-results
uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/docbuild.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,8 @@ jobs:
- name: Build documentation
working-directory: ncs/nrf
run: |
if [[ "${{ github.event_name }}" == "pull_request" ]]; then
BUILD_CONF="-DNO_DTS_BINDINGS=ON"
if [[ "${{ github.event_name }}" == "push" ]]; then
BUILD_CONF="-DDTS_BINDINGS=ON -DHW_FEATURES=ON"
fi

cmake -GNinja -Bdoc/_build -Sdoc -DSPHINXOPTS_EXTRA="-q" ${BUILD_CONF}
Expand Down
7 changes: 0 additions & 7 deletions Kconfig.nrf
Original file line number Diff line number Diff line change
Expand Up @@ -80,10 +80,6 @@ config MCUMGR_TRANSPORT_NETBUF_SIZE
default 2475 if MCUMGR_TRANSPORT_BT_REASSEMBLY
default 1024 if UPDATEABLE_IMAGE_NUMBER > 1

# When using HCI on the nRF5340 we need a larger command buffer.
config BT_BUF_CMD_TX_COUNT
default 10 if SOC_COMPATIBLE_NRF5340_CPUAPP || SOC_COMPATIBLE_NRF5340_CPUNET

config INIT_ARCH_HW_AT_BOOT
default y
help
Expand All @@ -104,9 +100,6 @@ config NORDIC_QSPI_NOR_FLASH_LAYOUT_PAGE_SIZE
chosen Zephyr flash devicetree node to ensure that swapping can be
performed.

config GETOPT
default n

# Temporary hack to be able to build samples and tests on the nRF51L15/nRF54L09 Eng A/nRF54L20 Eng A/nRF7120 FLPR core
config FLASH_BASE_ADDRESS
hex
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ CONFIG_BT_NUS=y
CONFIG_BT_GATT_CLIENT=y
CONFIG_BT_SMP=y
CONFIG_BT_CTLR_RX_BUFFERS=10
CONFIG_BT_BUF_EVT_RX_COUNT=11
CONFIG_BT_BUF_ACL_TX_COUNT=10
CONFIG_BT_BUF_ACL_TX_SIZE=251
CONFIG_BT_CTLR_DATA_LENGTH_MAX=251
Expand All @@ -37,4 +38,7 @@ CONFIG_DP_DRIVER=y
CONFIG_CMSIS_DAP_DEVICE_VENDOR="Nordic Semiconductor ASA"
CONFIG_CMSIS_DAP_DEVICE_NAME="nrf91"

CONFIG_USB_CDC_ACM_RINGBUF_SIZE=15360
CONFIG_USB_CDC_ACM_RINGBUF_SIZE=12280

# Reduce logging to save flash space
CONFIG_LOG_MAX_LEVEL=1
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ CONFIG_BT_BUF_ACL_RX_SIZE=251
CONFIG_BT_NUS=y
CONFIG_BT_GATT_CLIENT=y
CONFIG_BT_SMP=y
CONFIG_BT_BUF_EVT_RX_COUNT=11
CONFIG_BT_BUF_ACL_TX_COUNT=10
CONFIG_BT_BUF_ACL_TX_SIZE=251
CONFIG_BT_CTLR_DATA_LENGTH_MAX=251
Expand Down
17 changes: 13 additions & 4 deletions applications/nrf5340_audio/broadcast_sink/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,11 @@ struct ble_iso_data {

static uint32_t last_broadcast_id = BRDCAST_ID_NOT_USED;

static struct zbus_observer_node zbus_obs_node_button;
static struct zbus_observer_node zbus_obs_node_audio;
static struct zbus_observer_node zbus_obs_node_volume;
static struct zbus_observer_node zbus_obs_node_mgmt;

ZBUS_SUBSCRIBER_DEFINE(button_evt_sub, CONFIG_BUTTON_MSG_SUB_QUEUE_SIZE);

ZBUS_MSG_SUBSCRIBER_DEFINE(le_audio_evt_sub);
Expand Down Expand Up @@ -459,25 +464,29 @@ static int zbus_link_producers_observers(void)
return -ENOTSUP;
}

ret = zbus_chan_add_obs(&button_chan, &button_evt_sub, ZBUS_ADD_OBS_TIMEOUT_MS);
ret = zbus_chan_add_obs(&button_chan, &button_evt_sub, &zbus_obs_node_button,
ZBUS_ADD_OBS_TIMEOUT_MS);
if (ret) {
LOG_ERR("Failed to add button sub");
return ret;
}

ret = zbus_chan_add_obs(&le_audio_chan, &le_audio_evt_sub, ZBUS_ADD_OBS_TIMEOUT_MS);
ret = zbus_chan_add_obs(&le_audio_chan, &le_audio_evt_sub, &zbus_obs_node_audio,
ZBUS_ADD_OBS_TIMEOUT_MS);
if (ret) {
LOG_ERR("Failed to add le_audio sub");
return ret;
}

ret = zbus_chan_add_obs(&volume_chan, &volume_evt_sub, ZBUS_ADD_OBS_TIMEOUT_MS);
ret = zbus_chan_add_obs(&volume_chan, &volume_evt_sub, &zbus_obs_node_volume,
ZBUS_ADD_OBS_TIMEOUT_MS);
if (ret) {
LOG_ERR("Failed to add add volume sub");
return ret;
}

ret = zbus_chan_add_obs(&bt_mgmt_chan, &bt_mgmt_evt_sub, ZBUS_ADD_OBS_TIMEOUT_MS);
ret = zbus_chan_add_obs(&bt_mgmt_chan, &bt_mgmt_evt_sub, &zbus_obs_node_mgmt,
ZBUS_ADD_OBS_TIMEOUT_MS);
if (ret) {
LOG_ERR("Failed to add bt_mgmt sub");
return ret;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ CONFIG_MBEDTLS_ENABLE_HEAP=y
CONFIG_MBEDTLS_HEAP_SIZE=2048

CONFIG_BT_BUF_ACL_TX_COUNT=18
CONFIG_BT_BUF_EVT_RX_COUNT=20

CONFIG_BT_PERIPHERAL_PREF_MIN_INT=64
CONFIG_BT_PERIPHERAL_PREF_MAX_INT=69
Expand All @@ -41,6 +42,7 @@ CONFIG_BT_BAP_BROADCAST_SNK_STREAM_COUNT=2
CONFIG_BT_BAP_BROADCAST_SNK_COUNT=2
CONFIG_BT_ISO_MAX_CHAN=2
CONFIG_BT_ISO_MAX_BIG=2
CONFIG_BT_EXT_ADV_MAX_ADV_SET=2

## PACS related configs ##
CONFIG_BT_PAC_SNK_NOTIFIABLE=y
Expand Down
17 changes: 13 additions & 4 deletions applications/nrf5340_audio/broadcast_source/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,11 @@
#include <zephyr/logging/log.h>
LOG_MODULE_REGISTER(main, CONFIG_MAIN_LOG_LEVEL);

static struct zbus_observer_node zbus_obs_node_ref;
static struct zbus_observer_node zbus_obs_node_button;
static struct zbus_observer_node zbus_obs_node_audio;
static struct zbus_observer_node zbus_obs_node_mgmt;

ZBUS_SUBSCRIBER_DEFINE(button_evt_sub, CONFIG_BUTTON_MSG_SUB_QUEUE_SIZE);

ZBUS_MSG_SUBSCRIBER_DEFINE(le_audio_evt_sub);
Expand Down Expand Up @@ -271,7 +276,8 @@ static int zbus_subscribers_create(void)
return ret;
}

ret = zbus_chan_add_obs(&sdu_ref_chan, &sdu_ref_msg_listen, ZBUS_ADD_OBS_TIMEOUT_MS);
ret = zbus_chan_add_obs(&sdu_ref_chan, &sdu_ref_msg_listen, &zbus_obs_node_ref,
ZBUS_ADD_OBS_TIMEOUT_MS);
if (ret) {
LOG_ERR("Failed to add timestamp listener");
return ret;
Expand Down Expand Up @@ -329,19 +335,22 @@ static int zbus_link_producers_observers(void)
return -ENOTSUP;
}

ret = zbus_chan_add_obs(&button_chan, &button_evt_sub, ZBUS_ADD_OBS_TIMEOUT_MS);
ret = zbus_chan_add_obs(&button_chan, &button_evt_sub, &zbus_obs_node_button,
ZBUS_ADD_OBS_TIMEOUT_MS);
if (ret) {
LOG_ERR("Failed to add button sub");
return ret;
}

ret = zbus_chan_add_obs(&le_audio_chan, &le_audio_evt_sub, ZBUS_ADD_OBS_TIMEOUT_MS);
ret = zbus_chan_add_obs(&le_audio_chan, &le_audio_evt_sub, &zbus_obs_node_audio,
ZBUS_ADD_OBS_TIMEOUT_MS);
if (ret) {
LOG_ERR("Failed to add le_audio sub");
return ret;
}

ret = zbus_chan_add_obs(&bt_mgmt_chan, &bt_mgmt_evt_listen, ZBUS_ADD_OBS_TIMEOUT_MS);
ret = zbus_chan_add_obs(&bt_mgmt_chan, &bt_mgmt_evt_listen, &zbus_obs_node_mgmt,
ZBUS_ADD_OBS_TIMEOUT_MS);
if (ret) {
LOG_ERR("Failed to add bt_mgmt listener");
return ret;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ CONFIG_BT_BAP_BROADCAST_SRC_STREAM_COUNT=2
CONFIG_BT_ISO_MAX_CHAN=2

CONFIG_BT_ISO_MAX_BIG=2
CONFIG_BT_EXT_ADV_MAX_ADV_SET=2

CONFIG_LC3_ENC_CHAN_MAX=2
CONFIG_ENTROPY_GENERATOR=y
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,19 @@ config BLE_ACL_ADV_SID
range 0x00 0x0F
default 0x00

config BT_MGMT_ADV_STACK_SIZE
int "Stack size"
default 1024
help
Stack size for the Bluetooth management advertising thread.

config BT_MGMT_ADV_THREAD_PRIO
int "Thread priority for bt_mgmt advertising"
default 5
help
This is a preemptible thread.
This thread will subscribe to BT management advertising work items.

#----------------------------------------------------------------------------#
menu "Log level"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@
#include <zephyr/logging/log.h>
LOG_MODULE_REGISTER(bt_mgmt_adv, CONFIG_BT_MGMT_ADV_LOG_LEVEL);

struct k_work_q adv_work_q;
K_THREAD_STACK_DEFINE(adv_work_q_stack_area, CONFIG_BT_MGMT_ADV_STACK_SIZE);

ZBUS_CHAN_DECLARE(bt_mgmt_chan);

#ifndef CONFIG_BT_MAX_PAIRED
Expand Down Expand Up @@ -417,7 +420,7 @@ int bt_mgmt_adv_start(uint8_t ext_adv_index, const struct bt_data *adv, size_t a
LOG_ERR("No space in the queue for adv_index");
return -ENOMEM;
}
k_work_submit(&adv_work);
k_work_submit_to_queue(&adv_work_q, &adv_work);

return 0;
}
Expand Down Expand Up @@ -465,12 +468,16 @@ int bt_mgmt_adv_start(uint8_t ext_adv_index, const struct bt_data *adv, size_t a
LOG_ERR("No space in the queue for adv_index");
return -ENOMEM;
}
k_work_submit(&adv_work);
k_work_submit_to_queue(&adv_work_q, &adv_work);

return 0;
}

void bt_mgmt_adv_init(void)
{
k_work_init(&adv_work, advertising_process);
k_work_queue_init(&adv_work_q);
k_work_queue_start(&adv_work_q, adv_work_q_stack_area,
K_THREAD_STACK_SIZEOF(adv_work_q_stack_area),
CONFIG_BT_MGMT_ADV_THREAD_PRIO, NULL);
}
Original file line number Diff line number Diff line change
Expand Up @@ -762,6 +762,10 @@ int broadcast_sink_enable(le_audio_receive_cb recv_cb)
int ret;
static bool initialized;
enum audio_channel channel;
const struct bt_pacs_register_param pacs_param = {
.snk_pac = true,
.snk_loc = true,
};

if (initialized) {
LOG_WRN("Already initialized");
Expand All @@ -777,6 +781,12 @@ int broadcast_sink_enable(le_audio_receive_cb recv_cb)

channel_assignment_get(&channel);

ret = bt_pacs_register(&pacs_param);
if (ret) {
LOG_ERR("Could not register PACS (err %d)\n", ret);
return ret;
}

if (channel == AUDIO_CH_L) {
ret = bt_pacs_set_location(BT_AUDIO_DIR_SINK, BT_AUDIO_LOCATION_FRONT_LEFT);
csip_param.rank = CSIP_HL_RANK;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,9 @@ config BT_BUF_ACL_RX_SIZE
default 502 if (AUDIO_DFU > 0)
default 259

config BT_BUF_EVT_RX_COUNT
default 14

config BT_BUF_ACL_TX_COUNT
default 12

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -649,6 +649,13 @@ int unicast_server_enable(le_audio_receive_cb recv_cb, enum bt_audio_location lo
{
int ret;
static bool initialized;
/* clang-format off */
const struct bt_pacs_register_param pacs_param = {
IF_ENABLED(CONFIG_BT_AUDIO_RX, (.snk_pac = true,))
IF_ENABLED(CONFIG_BT_AUDIO_RX, (.snk_loc = true,))
IF_ENABLED(CONFIG_BT_AUDIO_TX, (.src_pac = true,))
IF_ENABLED(CONFIG_BT_AUDIO_TX, (.src_loc = true,))};
/* clang-format on */

__ASSERT(strlen(CONFIG_BT_SET_IDENTITY_RESOLVING_KEY) == BT_CSIP_SIRK_SIZE,
"SIRK incorrect size, must be 16 bytes");
Expand Down Expand Up @@ -681,10 +688,16 @@ int unicast_server_enable(le_audio_receive_cb recv_cb, enum bt_audio_location lo
memcpy(csip_param.sirk, CONFIG_BT_SET_IDENTITY_RESOLVING_KEY, BT_CSIP_SIRK_SIZE);
}

ret = bt_pacs_register(&pacs_param);
if (ret) {
printk("Could not register PACS (err %d)\n", ret);
return ret;
}

for (int i = 0; i < ARRAY_SIZE(caps); i++) {
ret = bt_pacs_cap_register(caps_dirs[i], &caps[i]);
if (ret) {
LOG_ERR("Capability register failed. Err: %d", ret);
LOG_ERR("Capability register failed. Err: %d (%d)", ret, i);
return ret;
}
}
Expand Down Expand Up @@ -716,30 +729,33 @@ int unicast_server_enable(le_audio_receive_cb recv_cb, enum bt_audio_location lo
}
}

ret = bt_pacs_set_supported_contexts(BT_AUDIO_DIR_SINK, AVAILABLE_SINK_CONTEXT);
if (IS_ENABLED(CONFIG_BT_AUDIO_RX)) {
ret = bt_pacs_set_supported_contexts(BT_AUDIO_DIR_SINK, AVAILABLE_SINK_CONTEXT);

if (ret) {
LOG_ERR("Supported context set failed. Err: %d", ret);
return ret;
}
if (ret) {
LOG_ERR("Supported context set failed (sink). Err: %d", ret);
return ret;
}

ret = bt_pacs_set_available_contexts(BT_AUDIO_DIR_SINK, AVAILABLE_SINK_CONTEXT);
if (ret) {
LOG_ERR("Available context set failed. Err: %d", ret);
return ret;
ret = bt_pacs_set_available_contexts(BT_AUDIO_DIR_SINK, AVAILABLE_SINK_CONTEXT);
if (ret) {
LOG_ERR("Available context set failed (sink). Err: %d", ret);
return ret;
}
}

ret = bt_pacs_set_supported_contexts(BT_AUDIO_DIR_SOURCE, AVAILABLE_SOURCE_CONTEXT);

if (ret) {
LOG_ERR("Supported context set failed. Err: %d", ret);
return ret;
}
if (IS_ENABLED(CONFIG_BT_AUDIO_TX)) {
ret = bt_pacs_set_supported_contexts(BT_AUDIO_DIR_SOURCE, AVAILABLE_SOURCE_CONTEXT);
if (ret) {
LOG_ERR("Supported context set failed (source). Err: %d", ret);
return ret;
}

ret = bt_pacs_set_available_contexts(BT_AUDIO_DIR_SOURCE, AVAILABLE_SOURCE_CONTEXT);
if (ret) {
LOG_ERR("Available context set failed. Err: %d", ret);
return ret;
ret = bt_pacs_set_available_contexts(BT_AUDIO_DIR_SOURCE, AVAILABLE_SOURCE_CONTEXT);
if (ret) {
LOG_ERR("Available context set failed (source). Err: %d", ret);
return ret;
}
}

for (int i = 0; i < ARRAY_SIZE(cap_audio_streams); i++) {
Expand Down
Loading