Changelog for nRF Connect SDK Bare Metal option v2.0.99
This changelog reflects the most relevant changes from the latest official release.
Changelog
The following sections provide detailed lists of changes by component.
SDK installation
No changes since the latest nRF Connect SDK Bare Metal release.
S115 SoftDevice
No changes since the latest nRF Connect SDK Bare Metal release.
S145 SoftDevice
No changes since the latest nRF Connect SDK Bare Metal release.
SoftDevice Handler
Fixed an issue where using the
CONFIG_NRF_SDH_LOG_SD_INFOKconfig option for MCUboot board targets would log invalid SoftDevice version data. The logging now takes the SoftDevice partition offset into account for those board targets.
Boards
Added support for the nRF54LS05A SoC, emulated on the nRF54LS05 DK through the
bm_nrf54ls05dk/nrf54ls05a/cpuapp/*board targets.Added
BOARD_EXTERNAL_MEMORY_*macros to theboard-config.hfile of thebm_nrf54l15dkandbm_nrf54lm20dkboard targets (SPIM instance, SCK/MOSI/MISO/CS and WP#/RST# strap pins) for on-board SPI external flash. Other BM development kits do not have external flash memory on the board, so theirboard-config.hfiles omit these macros.Updated:
All boards to use
zephyr,mapped-partitioninstead ofzephyr,fixed-partitionsandzephyr,fixed-subpartitions. When referencing partition nodes, the code now usesPARTITION_*macros instead ofDT_*andFIXED_PARTITION_*macros. The use of theCONFIG_FLASH_LOAD_OFFSETKconfig option is also replaced byPARTITION_*macros.All boards to use specific J-Link devices from the nRF54L series. This improves debugging in VS Code.
The number of required board qualifiers (reduced by one), as of changes in upstream Zephyr.
Removed:
The override for
cpuapp_rramsize for all boards as RRAM is no longer reserved for the RISC-V core by default.
Build system
Updated:
The
west.ymlfile to addmemfault-firmware-sdkto the nRF Connect SDK manifest allowlist.The
zephyr/module.ymlfile to declare a build dependency onmemfault-firmware-sdk.
Interrupts
No changes since the latest nRF Connect SDK Bare Metal release.
Logging
No changes since the latest nRF Connect SDK Bare Metal release.
Drivers
No changes since the latest nRF Connect SDK Bare Metal release.
Subsystems
Storage
No changes since the latest nRF Connect SDK Bare Metal release.
Filesystem
No changes since the latest nRF Connect SDK Bare Metal release.
Memfault
Added Memfault platform support in
subsys/memfault/:CONFIG_BM_MEMFAULT_LOCK-irq_lock()-basedmemfault_lock()/memfault_unlock()for builds without Zephyr multithreading (default whenNCS_BM && MEMFAULT && !MULTITHREADING). Enabling this option also excludes thek_mutex-basedmemfault_platform_lock.cfile of the Memfault SDK from the build, so that Memfault links withoutCONFIG_MULTITHREADING.
Libraries
Added the SPI transaction manager library for queued SPI controller transactions on a single SPIM instance. Enable it using the
CONFIG_BM_SPI_MNGRKconfig option. See SPI transaction manager for an overview and SPI transaction manager API reference for the full API.Bluetooth: Connection Parameters:
Added:
Support for selecting more than one PHY mode (1M, 2M, and Coded) when setting the PHY mode preference with Kconfig.
Support for the
BLE_GAP_EVT_CONN_PARAM_UPDATE_REQUESTSoftDevice event.
Updated:
The
ble_conn_params_phy_radio_mode_set()function to returnNRF_ERROR_INVALID_PARAMif thephy_prefparameter contains PHY modes not supported by the SoftDevice.The
ble_conn_params_override()function to allow runtime overrides of the acceptable connection parameter window used when validating peripheral requests to change the connection parameters. Previously, this window was set statically by Kconfig options and was not possible to override at runtime.
Fixed:
An issue where the
ble_conn_params_phy_radio_mode_get()function would incorrectly return the PHY mode mask of a pending update rather than the currently active PHY mode if a PHY update initiated by theble_conn_params_phy_radio_mode_set()function was still in progress.An issue where the SoftDevice define
BLE_GAP_PHYS_SUPPORTEDwas used instead of the PHY preferences set with Kconfig when initiating or responding to a PHY update procedure.
Bluetooth: Advertising library library:
Added the
ble_adv_data_manufacturer_data_find()function to locate manufacturer-specific data in an advertising payload and prefix-match it against a target value.
Bluetooth: Scan library:
Added:
Support for filtering by manufacturer-specific data using the
BLE_SCAN_MANUFACTURER_DATA_FILTERfilter type.The
CONFIG_BLE_SCAN_MANUFACTURER_DATA_COUNTandCONFIG_BLE_SCAN_MANUFACTURER_DATA_MAX_LENKconfig options to configure the manufacturer data filter capacity and maximum payload length.
Bluetooth: Peer Manager library:
Updated:
The
pm_init()function to clear the list of event handlers registered with thepm_register()function.The
pm_init()function to clear the default security parameters set with thepm_sec_params_set()function.The
pm_register()function to returnNRF_ERROR_NULLwhen the event handler parameter isNULL. The check was documented but was missing.The LESC key agreement handling to clear the static RAM copy of the ECDH shared secret after the secret have been handed over to the SoftDevice using the
sd_ble_gap_lesc_dhkey_reply()function.The
CONFIG_PM_LESC_GENERATE_NEW_KEYSKconfig option to be enabled by default. This option forces the use of new ECDH key pair for each pairing procedure.
Fixed:
An issue where calling the
pm_init()function two or more times would cause some of the internal asynchronous operation flags to have incorrect states.The
pm_address_resolve()function to returnfalseinstead ofNRF_ERROR_INVALID_STATEwhen Peer Manager is not initialized.
Bluetooth LE Services
Added the Memfault Diagnostic Service (MDS) service for exporting Memfault diagnostic chunks over Bluetooth LE.
-
Changed
ble_scan_filter_data.addr_filter.addrandble_scan_filter_data.name_filter.nametoconstin theble_scan_filter_datastructure.
Device Information Service (DIS):
Added support for configuring the Device Information Service characteristics at run time through the new
ble_dis_valuesstructure, passed using thevaluesfield ofble_dis_config. WhenvaluesisNULL, the service is built from the Kconfig defaults as before.
-
Fixed an issue where a DFU over Bluetooth LE could stall when using small ATT MTU or data length values. The SMP response is split into many notifications, which could fill the SoftDevice notification (HVN) TX queue and cause
sd_ble_gatts_hvx()to returnNRF_ERROR_RESOURCES, dropping the remaining data. Notifications that fail withNRF_ERROR_RESOURCESare now retransmitted on theBLE_GATTS_EVT_HVN_TX_COMPLETEevent once the SoftDevice frees queue space.
-
Fixed an issue where the
on_connect()andon_disconnect()functions would wrongly override the connection handle upon connecting to a different device.
Heart Rate Service (HRS) Client:
Added the
BLE_HRS_CLIENT_EVT_BSL_UPDATEevent to theble_hrs_client_evt_typeenum.
Libraries for NFC
No changes since the latest nRF Connect SDK Bare Metal release.
Utils
No changes since the latest nRF Connect SDK Bare Metal release.
Samples
The
CONFIG_PSA_CRYPTOKconfig option is now used to enable cryptography instead of theCONFIG_NRF_SECURITYKconfig option.
Peripheral samples
Added:
The Radio test sample.
The SPI Manager sample, demonstrating read, page program, and sector erase on the on-board external NOR flash using the SPI transaction manager library.
The SPI sample.
Bluetooth LE samples
Added the Bluetooth: Memfault Diagnostic Service (MDS) sample.
Updated:
All samples that use the Bluetooth: Peer Manager library to use a minimum encryption key size of 16 bytes in their default security parameters.
The following samples and applications, which do not support pairing, to call the
sd_ble_gatts_sys_attr_set()function only in response to theBLE_GATTS_EVT_SYS_ATTR_MISSINGevent, and not in response to theBLE_GAP_EVT_CONNECTEDevent:
Removed the authentication status logging from the following samples and applications that do not support pairing (do not use the Bluetooth: Peer Manager library):
Bluetooth: Continuous Glucose Monitoring Service sample:
Removed the call to the
sd_ble_gatts_sys_attr_set()function from the main source file. The Bluetooth: Peer Manager library takes care of calling this function when Bluetooth: Peer Manager is used.
Bluetooth: Heart Rate Service sample:
Removed redundant logging of authentication status from the main source file. Authentication status is logged by Bluetooth: Peer Manager library.
Bluetooth: Heart Rate Service Central sample:
Fixed:
The disconnect button handler to only disconnect on button press, and not on button release.
The allow list disabling button to only trigger on button press, and not on button release.
An issue with the endianness of the target peripheral address when displaying the address on a
BLE_SCAN_EVT_CONNECTEDevent and when supplying the scan filter address with theCONFIG_SAMPLE_TARGET_PERIPHERAL_ADDRKconfig option.
Bluetooth: Nordic UART Service (NUS) sample:
Fixed a bug with the UARTE RX buffer address provided with index 1.
Bluetooth: Nordic UART Service Central sample:
Updated to use Button 1 to disconnect from the target peripheral to align with other central samples.
Fixed:
The disconnect button handler to only disconnect on button press, and not on button release.
A bug with the UARTE RX buffer address provided with index 1.
NFC samples
No changes since the latest nRF Connect SDK Bare Metal release.
DFU samples
No changes since the latest nRF Connect SDK Bare Metal release.
Subsystem samples
No changes since the latest nRF Connect SDK Bare Metal release.
Known issues and limitations
No changes since the latest nRF Connect SDK Bare Metal release.
Documentation
Updated the memory layout diagram generation script to parse RRAM and SRAM sizes directly from devicetree instead of hardcoded per-SoC values.
Added:
The Memfault on Bare Metal page, which documents the Memfault integration on bare metal, including platform locking, the rules for calling Memfault APIs from ISR and main loop context, and the Memfault cloud prerequisites.
The Memfault Diagnostic Service (MDS) library page.
The Bluetooth: Memfault Diagnostic Service (MDS) page, which includes the steps for getting started with Memfault.
The Memfault Diagnostic Service API reference.