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 |