BayLibre contributions to Zephyr v4.2.0

The Zephyr Project released version 4.2.0 on July 19th, 2025. BayLibre contributed new hardware platform support, kernel optimizations, and storage subsystem improvements.

CC23x0 SoC platform support

Julien Panis and Stoyan Bogdanov implemented drivers for Texas Instruments’ CC23x0 SoC family. The implementation covers ADC, crypto/AES, DMA, SPI, UART, timer/counter, and watchdog peripherals.

The ADC driver supports 16-channel operation with single channel conversion and sequence mode for up to 4 channels. The crypto driver implements AES module support with ECB encryption, CTR, and CCM modes.

The DMA controller provides 8-channel configurable transfers with memory-to-peripheral, peripheral-to-memory, and memory-to-memory operations. DMA integration was added to ADC, crypto, SPI, and UART modules.

Support for the TI LP-EM-CC2340R5 LaunchPad was added across all implemented peripherals. Sample applications and device tree overlays were created for ADC, crypto, and counter functionality.

Stoyan Bogdanov implemented LGPT counter support (LGPT0-LGPT3) and RTC counter drivers. Hardware information support provides reset cause detection. The watchdog driver implements start/feed functionality with hardware limitations. Flash driver optimization removed VIMS calls specific to CC23x0.

Kernel and memory optimizations

Nicolas Pitre optimized the memory allocation code paths for those cases where memory alignment is unnecessary, improving performances by up to 12%.

The ring buffer implementation was modified to reduce struct ring_buf size by 12 bytes. The implementation maintains the 32KB default limit with optional 2GB support. He also optimized the ring buffer management by consolidating duplicated code.

Kernel pipe poll support was fixed by addressing missing condition checks and misplaced event handling. The fix ensures proper synchronization in pipe-based communication. Test coverage was added for k_malloc() functionality and heap alignment testing.

Storage and settings

Riadh Ghaddab added two Settings API functions: settings_load_one() for loading single entries instead of complete subtrees, and settings_get_val_len() for value length retrieval without full value reads.

When Settings subsystem is used, ZMS got an option to optimize the cache function taking into account the linked list hash design. A Kconfig option was added in order to disable deleting linked list hashes for some applications that use a fix set of storage IDs.

Adding more robustness for the ZMS backend of Settings in edge cases like power loss during a write, and add more functional tests to cover ZMS backend functionality. In addition to that, clean some part of ZMS subsystem and update the documentation.

Power management and wireless

Adrien Ricciardi implemented task watchdog power management integration. The task_wdt_suspend() and task_wdt_resume() APIs enable operation during system power state transitions. A Kconfig option allows pausing hardware watchdog during sleep modes. Workqueue naming was added to ICBMSG for better debugging visibility in kernel shell commands.

Alexandre Bailon added Energy Detection (ED) scanning support for CC13xx/CC26xx platforms. This enables channel selection and network discovery for mesh networking protocols. Beacon filtering was fixed to prevent OpenThread network discovery issues.

Board support and drivers

Valerio Setti added initial support for the LilyGo T-Watch S3 board. In this scope he added support for the charging feature of the X-Powers AXP2101 PMIC and a couple of Kconfig fixes for the BMA4xx sensor and PCF8563 RTC.

Cryptography and security

Valerio Setti continued his reorganization of the Mbed TLS module by removing unused configuration header files.

UOSCORE and UEDHOC crypto dependencies were moved out of the Mbed TLS’ Kconfig file into their respective Kconfig file. Moreover, since these protocols are EC key based, RSA support was also removed.

Finally support for UUID v5 was disabled in TF-M platforms due to the unavailability of SHA-1 algorithm in TF-M.

Summary

Type Count
Authored 89
Signed-off-by 6

List of contributions

Hash Subject Role Person
a631df5cd8c8 tests: drivers: spi: spi_loopback: Add testcase for cc23x0 Author Julien Panis
5b728969cef9 drivers: spi: cc23x0: Add loopback mode option Author Julien Panis
7a12801623be dts: arm: ti: cc23x0: Add DMA mode support to SPI module Author Julien Panis
11cbfeafe62b drivers: spi: cc23x0: Add support for DMA mode Author Julien Panis
2289fa177063 samples: drivers: crypto: Add entry to sample.yaml for cc23x0 Author Julien Panis
2d98ac0f0bb1 dts: arm: ti: cc23x0: Add DMA mode support to AES module Author Julien Panis
e0f02d93a6f9 drivers: crypto: cc23x0: Add support for DMA mode Author Julien Panis
a92339b8cd15 dts: arm: ti: cc23x0: Add DMA mode support to UART module Author Julien Panis
fa199b6f6cfd drivers: serial: cc23x0: Add support for DMA mode Author Julien Panis
b3a32a95d181 dts: arm: ti: cc23x0: Add DMA mode support to ADC module Author Julien Panis
45a8a0f0c63c drivers: adc: cc23x0: Add support for DMA mode Author Julien Panis
42ad57972a54 samples: drivers: adc_sequence: Add lp_em_cc2340r5 DT overlay Author Julien Panis
0acad3e404c8 samples: drivers: adc_dt: Add lp_em_cc2340r5 DT overlay Author Julien Panis
0800aa094c3d boards: ti: lp_em_cc2340r5: Add ADC support Author Julien Panis
d9134b3a8a8b dts: arm: ti: cc23x0: Add ADC support Author Julien Panis
dd5ed02146ee drivers: adc: Add support for cc23x0 ADC Author Julien Panis
2bbba4420519 boards: ti: lp_em_cc2340r5: Add SPI support Author Julien Panis
eca9c92ed508 dts: arm: ti: cc23x0: Add SPI support Author Julien Panis
45895ecfea2e drivers: spi: Add support for cc23x0 SPI Author Julien Panis
23a296f26bc3 soc: ti: cc23x0: Add helper macros for device tree Author Julien Panis
27ddc762476d boards: ti: lp_em_cc2340r5: Add DMA support Author Julien Panis
e1ec6de94ad7 dts: arm: ti: cc23x0: Add DMA support Author Julien Panis
d8dbf5653eb2 drivers: dma: Add support for cc23x0 DMA Author Julien Panis
52ceb6ab86dd samples: drivers: crypto: Add support for cc23x0 Author Julien Panis
30ed81d66ae3 boards: ti: lp_em_cc2340r5: Add crypto support Author Julien Panis
66749d72e191 dts: arm: ti: cc23x0: Add crypto support Author Julien Panis
fa8d5177c132 drivers: crypto: Add support for cc23x0 AES Author Julien Panis
b09a3df131a7 modules: uoscore-uedhoc: enable legacy Mbed TLS crypto support in TF-M Author Valerio Setti
a03b06fd0492 tests: modules: uoscore: remove unnecessary dependencies Author Valerio Setti
9e190f6d92b0 modules: uoscore-uedhoc: select required PSA Crypto features Author Valerio Setti
df3485360a37 modules: mbedtls: don’t enable RSA support for UOSCORE or UEDHOC Author Valerio Setti
31e38c83b38e lib: uuid: do not support UUID_v5 on TF-M platforms Author Valerio Setti
52dcb2593a89 Bluetooth: Host: remove useless select in BT_HOST_CRYPTO_PRNG Author Valerio Setti
843776035d89 tests: drivers: build_all: add support for “x-powers,axp2101-charger” Author Valerio Setti
5d78ef3d5dcb boards: twatch_s3: enable battery charger Author Valerio Setti
65a7e79eabfd drivers: charger: add charger support in X-Powers AXP2101 Author Valerio Setti
d75c2113a99b drivers: sensors: bma4xx: add I2C_RTIO Kconfig for I2C Author Valerio Setti
5309e11df240 boards: lilygo: add initial support for T-Watch S3 Author Valerio Setti
c9d8d57eb079 mbedtls: rename tls-generic Kconfig and configuration header file Author Valerio Setti
470f404eb6ef mbedtls: remove unnecessary headers Author Valerio Setti
13270a43c1c2 cmake: modules: dts: print error message if DTC fails Author Valerio Setti
e2344739ace2 drivers: rtc: pcf8563: some fixes to the driver Author Valerio Setti
2f1746542196 ipc: icbmsg: Add a workqueue name Author Adrien Ricciardi
c53fb67f568b task_wdt: Add suspend and resume API functions Author Adrien Ricciardi
6ca9bffe48df task_wdt: Kconfig: Allow to pause the hardware watchdog in sleep Author Adrien Ricciardi
58431564e1a7 dts: arm: ti: cc23x0: Add LGPT support Author Stoyan Bogdanov
cfe7a58a2858 drivers: counter: Add support for cc23x0 LGPT Author Stoyan Bogdanov
bdca32d88fa1 drivers: flash: Remove VIMS calls for cc23x0 Author Stoyan Bogdanov
198230bef2d2 samples: drivers: counter: alarm: Add lp_em_cc2340r5 overlay Author Stoyan Bogdanov
a6db5c783ba3 dts: arm: ti: cc23x0: Add RTC support Author Stoyan Bogdanov
dddbfcce76db drivers: counter: Add support for cc23x0 RTC counter Author Stoyan Bogdanov
f1b4c122374c drivers: hwinfo: cc23x0: Add support for cc23x0 in hwinfo Author Stoyan Bogdanov
5104d6d5c311 boards: ti: lp_em_cc2340r5: Add watchdog to aliases Author Stoyan Bogdanov
e298412b38ca dts: arm: ti: cc23x0: Add watchdog support Author Stoyan Bogdanov
741879b36222 drivers: watchdog: cc23x0: Add support for watchdog Author Stoyan Bogdanov
457ade48b46e settings: zms: code style clean up Author Riadh Ghaddab
7f716f15226f doc: settings: new API functions Author Riadh Ghaddab
7ae14ebf5801 settings: zms: use the safe function strnlen instead of strlen Author Riadh Ghaddab
cad2f1c103ae settings: add new API function settings_get_val_len() Author Riadh Ghaddab
6279943831c1 settings: zms: recover linked list if broken Author Riadh Ghaddab
5a978f4ab4e7 settings: zms: add more robustness to the save function Author Riadh Ghaddab
dffdec18c2b3 tests: settings: add functional test for ZMS Author Riadh Ghaddab
a903b4b0d164 tests: settings: add a functional test for settings_load_one Author Riadh Ghaddab
831da04247c9 settings: add an API function to load only one settings entry Author Riadh Ghaddab
bf20b7854332 settings: zms: add cache for linked list hash Author Riadh Ghaddab
ae461510a766 settings: zms: load only subtree in the argument Author Riadh Ghaddab
5c38c58f0c25 zms: optimize cache for settings subsystem Author Riadh Ghaddab
42b9b5a9d79e zms: remove non needed lookup cache before writing Author Riadh Ghaddab
c0a75da08430 settings: zms: add option to disable updating linked list Author Riadh Ghaddab
2eba2e9c9c75 zms: add more robustiness in extreme cases Author Riadh Ghaddab
15cbe9fd18e2 zms: fix the detection of gc_done ATE Author Riadh Ghaddab
e8e7290abace tests: zms: decrease verbosity Author Riadh Ghaddab
db496c7a7617 drivers: ieee802154: cc13xx_cc26xx: Don’t filter beacon for OpenThread Author Alexandre Bailon
c1bce30fe591 drivers: ieee802154: cc13xx/26xx: Add support of 802.15.4 ED Scan Author Alexandre Bailon
f087aa264e91 kernel/pipe: fix poll support Author Nicolas Pitre
e29c0c178310 tests: poll: add pipe coverage Author Nicolas Pitre
11021cdd4fa9 kernel: sys_heap: decouple realloc from aligned_realloc Author Nicolas Pitre
457fa60bfc7b kernel: mempool: decouple simple alloc from aligned_alloc Author Nicolas Pitre
7c9f464b708f kernel: kheap: workaround for Percepio’s TraceRecorder kludge Author Nicolas Pitre
9da06456f208 kernel: kheap: decouple simple alloc from aligned_alloc Author Nicolas Pitre
31244724a283 kernel: k_aligned_alloc: simplify assertion Author Nicolas Pitre
ea7a96920426 tests: benchmarks: sys_kernel: add k_malloc() test Author Nicolas Pitre
023daf2331fa tests/lib/heap_align: improve test some more Author Nicolas Pitre
b5bc30701960 net: lwm2m: encapsulate ring buffer internals Author Nicolas Pitre
7fb92c9eb125 tests: lib: multi_heap: fix stack overflow Author Nicolas Pitre
c7467f0c65c6 ring_buffer: constify some arguments Author Nicolas Pitre
e1eead3925d5 ring_buffer: shrink size of struct ring_buf Author Nicolas Pitre
b97f11a752cb ring_buffer: simplify code some more Author Nicolas Pitre
fa73b8b06110 ring_buffer: update Kconfig help text Author Nicolas Pitre