BayLibre contributions to Zephyr v4.3.0

Drivers: TI CC23x0

Stoyan Bogdanov and Julien Panis worked on CC23x0 SoC support.

Stoyan added I2C controller mode support, PWM support for LGPT0-3, RTC timer driver and configuration to select between RTC and SYSTIM. He implemented SoC-level power management with runtime-idle, standby, and soft-off states. He added power management to GPIO, I2C, PWM, LGPT counter and RTC counter drivers. He also added I2C and PWM support to the lp_em_cc2340r5 board along with a board overlay in BME280 sample. He become collaborator for TI SimpleLink Platforms.

Julien Panis added power management support to ADC, crypto, DMA, serial, and SPI drivers. He also added Devicetree bindings and board support for the external 32.768 kHz crystal oscillator (LFXT) connected across X32P and X32N pins on the lp_em_cc2340r5 board.

Kernel

ARM64

Nicolas Pitre fixed SMP TLB invalidation on ARM64 by using Inner Shareable (IS) instructions TLBI VMALLE1IS and TLBI VAE1IS to broadcast invalidations to all CPUs. He also fixed GICv2 on SMP systems by masking the source processor bits (12-10) from GICC_IAR for SGIs, preventing IPIs from non-CPU0 cores from being rejected. He reverted useless cache handling in the MMU code and added FPU debug traces with PC addresses.

Scheduler

Nicolas fixed an assertion race in z_get_next_switch_handle() where the shared dummy thread structure could be clobbered by concurrent CPUs during thread halting. The fix ignores validity tests when the dummy thread is involved. He also set switch_handle to a clearly invalid value for halting threads and fixed CPU stats retrieval in z_sched_cpu_usage().

Memory Management

Nicolas fixed a locking typo in k_mem_page_frame_evict() when CONFIG_DEMAND_PAGING_ALLOW_IRQ is set. He also added validation of alignment arguments in k_heap_aligned_alloc() to enforce proper power-of-two values now that the internal dependency with z_alloc_helper() no longer exists.

RISC-V

Nicolas moved the null pointer trap first in the PMP configuration to improve PMP slot optimization.

Cryptography

Mbed TLS

Valerio Setti upgraded Mbed TLS from 3.6.4 to 3.6.5 and added CONFIG_PSA_CRYPTO to automatically select a PSA Crypto API provider (TF-M or Mbed TLS) without manual configuration. He renamed several Kconfig symbols to align with Mbed TLS build symbols. He also improved the mechanism for enabling CSPRNG (Cryptographically-Secure Pseudo Random Number Generator) based on devicetree configuration and platform driver support.

PSA Crypto API Migration

Valerio migrated several subsystems from legacy Mbed TLS crypto to PSA Crypto API (IPv6, McuMGR, UpdateHub, UUID generation and JWT) and he deprecated legacy Mbed TLS crypto in flash_map.

Storage

ZMS

Riadh Ghaddab fixed ZMS initialization for devices requiring erase before write. ZMS now verifies that the next available location in the open sector is filled with erase_value by adding a check at init.

Drivers

MFD

Valerio Setti split the AXP192 and AXP2101 MFD drivers into separate implementations. He added IRQ and power button support to the AXP2101 driver and enabled it on the LilyGO T-Watch S3 board.

Networking

PTP

Adam Wojasinski fixed a compilation error in the PTP library when PTP_UDP_IPv6_PROTOCOL is enabled. The issue was that mcast_addr was defined as an IPv6 structure without an s_addr member. He added a union to represent both IPv4 and IPv6 configurations without introducing preprocessor-guarded code blocks.

Testing and Samples

Nicolas Pitre fixed format specifiers for size_t in LWM2M LOG_DBG calls and for uint16_t in MQTT-SN tests. He added delays in the SMP abort test and POSIX environment sample to ensure proper circular dependencies and timing. He filtered SMP from zbus benchmark and message subscriber pool exhaustion tests. He fixed the nested IRQ test for ARM’s GIC in non-secure state and corrected the MPSC test consumer node return logic in lockfree tests.

Task Watchdog

Adrien Ricciardi added a dummy Task Watchdog implementation via CONFIG_TASK_WDT_DUMMY. This allows disabling the Task Watchdog during debugging sessions when breakpoints would otherwise trigger watchdog timeouts.

Summary

Type Count
Authored 92
Signed-off-by 1

List of contributions

Hash Subject Role Person
f60f04d7dc53 doc: release-notes: notify about Mbed TLS version upgrade Author Valerio Setti
f6d24f7aa41a manifest: mbedtls: bump to 3.6.5 Author Valerio Setti
26ca2cfd6c13 drivers: entropy: nrf5: add dependency on MULTITHREADING Author Valerio Setti
25a71f39727c modules: mbedtls: let CSPRNG_AVAILABLE select ENTROPY_GENERATOR Author Valerio Setti
1962ab564a3d modules: mbedtls: fix prompts and help messages for Kconfigs Author Valerio Setti
fd932e15c9a2 doc: migration-guide: add note for Mbed TLS’ Kconfigs renaming Author Valerio Setti
a60803bebe30 modules: mbedtls: add a specific file for deprecated Kconfigs Author Valerio Setti
315fbc593249 modules: mbedtls: rename MBEDTLS_HMAC_DRBG_ENABLED Author Valerio Setti
f8c94f2f4435 modules: mbedtls: rename MBEDTLS_CTR_DRBG_ENABLED Author Valerio Setti
69e27673fabd modules: mbedtls: rename MBEDTLS_TLS_SESSION_TICKETS Author Valerio Setti
62f0b2c5c81c modules: mbedtls: rename MBEDTLS_TLS_VERSION_1_3 Author Valerio Setti
fa911df90c07 modules: mbedtls: rename MBEDTLS_DTLS Author Valerio Setti
f960db846c9f modules: mbedtls: rename MBEDTLS_TLS_VERSION_1_2 Author Valerio Setti
851a20481b46 modules: mbedtls: rename MBEDTLS_LMS Author Valerio Setti
e1117f18fc49 modules: mbedtls: rename MBEDTLS_MD Author Valerio Setti
b43dbf149a96 doc: release-notes: fix typo in JWT note Author Valerio Setti
9c13bfd5d7f9 net: ip: ipv6: replace legacy crypto with PSA API Author Valerio Setti
d33c4ef96f5f tests: net: iface: increase main stack size in net.iface.iid.stable Author Valerio Setti
6115d590ca7a west: mbedtls: include a fix for static key slot key material buffer size Author Valerio Setti
00eee1ad78e9 jwt: deprecate CONFIG_JWT_SIGN_RSA_LEGACY Author Valerio Setti
fc422beb68da lib: uuid: replace legacy crypto support with PSA API Author Valerio Setti
e2c054be2cbe doc: migration-guide: add note for crypto updates in McuMGR Author Valerio Setti
bed1cd1ea9a1 tests: subsys: mgmt: mcumgr: remove selection of Mbed TLS in tests Author Valerio Setti
f779adf8e072 mgmt: mcumgr: remove usage of legacy Mbed TLS crypto for hash Author Valerio Setti
fe1ff7f973ff doc: migration-guide: add note for changes in UpdateHub Author Valerio Setti
0854d239bf0c samples: subsys: updatehub: remove PSA overlay and test case Author Valerio Setti
db7bafbcdbbf mgmt: updatehub: simplify code Author Valerio Setti
b2dd3b4ba96d mgmt: updatehub: remove legacy Mbed TLS crypto support Author Valerio Setti
4ecb6d3cf7de storage: flash_map: deprecate legacy Mbed TLS crypto Author Valerio Setti
34259fa2c3a5 doc: releases: add note about CONFIG_PSA_CRYPTO addition in Mbed TLS Author Valerio Setti
019e26aecfc6 bluetooth: mesh: use new Kconfig CONFIG_PSA_CRYPTO Author Valerio Setti
1bc2db575f7e modules: mbedtls: add new helper Kconfig symbol PSA_CRYPTO Author Valerio Setti
7b7b4fcde20c drivers: bluetooth: hci: do not select MBEDTLS_ENTROPY_C in BT_SILABS_EFR32 Author Valerio Setti
76037cec3655 drivers: bluetooth: esp32: remove selection of MBEDTLS_PSA_CRYPTO_C Author Valerio Setti
46614ded36f0 modules: openthread: fix dependency for OPENTHREAD_CRYPTO_PSA Author Valerio Setti
6f301ca94a04 doc: update documentation for AXP192/2101 changes Author Valerio Setti
102d17b49bd8 boards: lilygo: twatch_s3: add support for axp2101 power button Author Valerio Setti
97478d5fcef8 drivers: mfd: axp2101: add irq and power button support Author Valerio Setti
71e28e267afc drivers: mfd: split axp192 and axp2101 drivers Author Valerio Setti
f5f258f0cc85 tests: kernel: smp_abort: add delay to ensure circular dependency Author Nicolas Pitre
408da59cc418 net: lwm2m: fix format specifiers for size_t in LOG_DBG Author Nicolas Pitre
bd5806d82809 samples: zbus: benchmark: also filter SMP from MSG_SUBSCRIBERS test Author Nicolas Pitre
af7ae5d61fb6 kernel: sched: plug assertion race in z_get_next_switch_handle() Author Nicolas Pitre
1c8f1c86470c kernel: sched: use clearly invalid value for halting thread switch_handle Author Nicolas Pitre
6c6f1a5e9987 arch: arm64: mmu: revert useless cache handling Author Nicolas Pitre
5b43674098bb arch: arm64: Fix SMP TLB invalidation on SMP systems Author Nicolas Pitre
b0d4580422e2 tests: lib: lockfree: Fix MPSC test consumer node return logic Author Nicolas Pitre
c03653eab9c4 samples: posix: env: Add delay before printing environment variables Author Nicolas Pitre
16905f547517 riscv: pmp: move the null pointer trap first Author Nicolas Pitre
b5363d5ffffc kernel: usage: Fix CPU stats retrieval in z_sched_cpu_usage() Author Nicolas Pitre
8d1da57d57e6 kernel: mmu: k_mem_page_frame_evict() fix locking typo Author Nicolas Pitre
d93561da682e samples: zbus: benchmark: Filter SMP from benchmark_sync test Author Nicolas Pitre
43371bc7ee01 samples: zbus: msg_subscriber: Filter SMP from pool exhaustion tests Author Nicolas Pitre
4c30a9b40529 tests: interrupt: Fix nested_irq test for Arm’s GIC in Non-Secure state Author Nicolas Pitre
d9141b2b9be2 tests: net: mqtt_sn: Fix format specifier for uint16_t Author Nicolas Pitre
6780dddbcad4 arch: arm64: Enhance FPU debug traces with PC addresses Author Nicolas Pitre
e6ff6b0843cc arm64: isr_wrapper.S: make GICv2 usable on SMP systems Author Nicolas Pitre
8140680e6b27 k_heap_aligned_alloc: validate the alignment argument Author Nicolas Pitre
eadd4d57b700 drivers: counter: cc23x0: Add power management to LGPT Author Stoyan Bogdanov
2b646bf702ae drivers: counter: cc23x0: Add power management to RTC Author Stoyan Bogdanov
d7bf8c0644b6 drivers: i2c: cc23x0: Add power management Author Stoyan Bogdanov
afd2962dfc2e drivers: pwm: cc23x0: Add power management Author Stoyan Bogdanov
f3f332c40ede MAINTAINERS: Add cc23xx and collaborator for TI SimpleLink Platforms Author Stoyan Bogdanov
31abf236b467 drivers: gpio: cc23x0: Add power management to GPIO Author Stoyan Bogdanov
bc9fce18f273 drivers: serial: cc23x0: Replace incorrect macros Author Stoyan Bogdanov
ad77e1036205 dts: arm: ti: cc23x0: Add power management support Author Stoyan Bogdanov
f393ae607f17 soc: ti: cc23x0: Add support for RTC alarms in power.c Author Stoyan Bogdanov
a286540dbcdc soc: ti: cc23x0: Add conditions for RTC as timer in power.c Author Stoyan Bogdanov
f5bcee5d8d85 soc: ti: cc23x0: Add power management Author Stoyan Bogdanov
9ec8ad9b478a soc: ti: cc23x0: Add clock definition for RTC Author Stoyan Bogdanov
b82e7418c57c drivers: counter: cc23x0: Add dependency for RTC Author Stoyan Bogdanov
6bb5378fbe3b drivers: timer: cc23x0: Add option to select between RTC and SYSTIM Author Stoyan Bogdanov
ca6b18d808bd drivers: timer: Add RTC timer driver for cc23x0 Author Stoyan Bogdanov
84de5b841713 samples: sensors: bme280: Add lp_em_cc2340r5 overlay Author Stoyan Bogdanov
4fbf028ff57e boards: ti: lp_em_cc2340r5: Add I2C support Author Stoyan Bogdanov
82e1baae6357 dts: arm: ti: cc23x0: Add I2C support Author Stoyan Bogdanov
49ef7d460c30 drivers: i2c: Add support for cc23x0 I2C Author Stoyan Bogdanov
6559af8ef421 boards: ti: lp_em_2340r5: Add PWM led support Author Stoyan Bogdanov
285453a77f04 boards: ti: lp_em_cc2340r5: Add pinctrl support for PWM Author Stoyan Bogdanov
9dad848fe05e dts: arm: ti: cc23x0: Add LGPT PWM support Author Stoyan Bogdanov
ff2328522a2a drivers: pwm: Add support for cc23x0 LGPT PWM Author Stoyan Bogdanov
a5f0c965c5ef zms: fix init if a faulty bit is detected in the next free location Author Riadh Ghaddab
052ded1682a9 drivers: spi: cc23x0: Add power management Author Julien Panis
a473d268c3ac boards: ti: lp_em_cc2340r5: Add external low-frequency oscillator Author Julien Panis
13c0a98acc82 dts: bindings: clock: Add TI cc23x0 external low-frequency oscillator Author Julien Panis
c625853b19f7 drivers: serial: cc23x0: Add power management Author Julien Panis
051539e867c9 drivers: dma: cc23x0: Add power management Author Julien Panis
22d04f7f9336 drivers: crypto: cc23x0: Add power management Author Julien Panis
afc5b6cb0d1b drivers: adc: cc23x0: Add power management Author Julien Panis
d494f86ea40e doc: releases: Add Dummy Task Watchdog Kconfig Author Adrien Ricciardi
8fd797e95a43 task_wdt: Add dummy implementation Author Adrien Ricciardi
8fb7f8a19d76 net: lib: ptp: Fix PTP_UDP_IPv6_PROTOCOL compilation error Author Adam Wojasinski