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.An issue where the SoftDevice handler did not clear its in-progress state after a failed enable or disable operation. Subsequent enable or disable requests then incorrectly returned
-EINPROGRESS.
Boards
Added:
Support for the nRF54LS05A SoC, emulated on the nRF54LS05 DK through the
bm_nrf54ls05dk/nrf54ls05a/cpuapp/*board targets.Support for the nRF54LC10A SoC, running on the nRF54LC10 DK (PCA10226)
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.
DFU
Updated the installer application to prevent Out-Of-Bound reads and writes of the new firmware image.
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.
Fixed:
Replaced the use of the
strlen()andstrcmp()functions with thestrnlen()andstrncmp()functions respectively, to avoid out-of-bounds reads and false matches.
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.The
peer_manager_handler.cfile with missing logging and asserts where theAPP_ERROR_CHECKmacro was used in nRF5 SDK.The sources of the
PM_EVT_CONN_SEC_CONFIG_REQevent to fill the peer ID field. Use the value of the peer ID field instead of calling thepm_peer_id_get()function when handling this event.The write buffer release function in the peer database submodule to erase the contents of the write buffer record on release.
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.An issue where the write buffer that holds bonding data before NVM writes was not released in all situations. The impact was minor, as new connections were able to reuse the already-allocated buffer(s).
Bluetooth: Queued Writes library:
Fixed:
An issue where the
ble_qwr_value_get()could write beyond the supplied output buffer.
Zephyr queuelibrary:Updated to return
NULLon blocking calls to thez_impl_k_queue_get()function.
Bluetooth LE Services
Added the Memfault Diagnostic Service (MDS) service for exporting Memfault diagnostic chunks over Bluetooth LE.
-
Updated:
The
ble_scan_filter_data.addr_filter.addrandble_scan_filter_data.name_filter.nameto beconstin theble_scan_filter_datastructure.The connection parameter Kconfig defaults to align with the Kconfig defaults in the Bluetooth: Connection Parameters library.
The
BLE_SCAN_CONN_PARAMS_DEFAULTmacro to use theCONFIG_BLE_SCAN_SUPERVISION_TIMEOUTKconfig option for the supervision timeout.
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:
Fixed the button configuration structure to static so it does not go out of scope when returning from the button initialization function.
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:
Updated the scanning to use the
BLE_SCAN_SCAN_PARAMS_DEFAULTdefault for the scan parameters. This fixes an issue where microseconds were incorrectly used instead of 0.625-millisecond units. As a result, the scan interval and scan window are now shorter.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.
The scanning to use the
BLE_SCAN_SCAN_PARAMS_DEFAULTdefault for the scan parameters. This fixes an issue where microseconds were incorrectly used instead of 0.625-millisecond units. As a result, the scan interval and scan window are now shorter.
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.