nuttx/Documentation/ReleaseNotes/NuttX-13.0.1
Alin Jerpelea 4977c28a3f Documentation: add NuttX 13.0.1 release notes
add release notes for NuttX 13.0.1 release

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2026-08-12 21:53:28 +08:00

206 lines
15 KiB
Groff
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

NuttX-13.0.1
------------
What's New In This Release
Changes to Core OS
Sched
[#19479](https://github.com/apache/nuttx/pull/19479) sched/backtrace: fix cross-CPU buffer access under addrenv
[#19487](https://github.com/apache/nuttx/pull/19487) sched: avoid dumping raw memory at address 0 for tasks without kstack
[#19544](https://github.com/apache/nuttx/pull/19544) sched/addrenv: do not dereference a NULL address environment
[#19563](https://github.com/apache/nuttx/pull/19563) sched/sched_critmonitor: remove duplicate preemption start block
[#19587](https://github.com/apache/nuttx/pull/19587) sched/sched: Fix uninitialized sporadic params returned by nxsched_get_param()
MM
[#19581](https://github.com/apache/nuttx/pull/19581) mm/ubsan: fix signed inline value decoding
libs
[#19444](https://github.com/apache/nuttx/pull/19444) libs/libc: Fix divide-by-zero in stat() with large filesystem block sizes
[#19497](https://github.com/apache/nuttx/pull/19497) lib/math32: Avoid __uint128_t casts for LDC ImportC
[#19513](https://github.com/apache/nuttx/pull/19513) libs/libbuiltin/compiler-rt: skip unsupported Arm VFP builtins asm
[#19516](https://github.com/apache/nuttx/pull/19516) libc/time: Fix POSIX timezone string parsing
Tools
[#19477](https://github.com/apache/nuttx/pull/19477) tools/Zig.defs: Fix Zig builds on sim:x86_64
[#19566](https://github.com/apache/nuttx/pull/19566) tools/mkallsyms.py: let the dependency error actually reach the user
[#19569](https://github.com/apache/nuttx/pull/19569) tools: fix stale archive members surviving a Kconfig-driven CSRCS change
Various Improvements
Audio
[#19686](https://github.com/apache/nuttx/pull/19686) audio: fix private buffer allocation and document the upper half
Crypto
[#19294](https://github.com/apache/nuttx/pull/19294) crypto: Support SHA2_224_HMAC
[#19396](https://github.com/apache/nuttx/pull/19396) crypto: Add standalone CHACHA20 stream cipher on the unified enc path
[#19403](https://github.com/apache/nuttx/pull/19403) crypto: add CRYPTO_CHACHA20_DJB variant (64-bit counter/nonce)
Syscall
[#19727](https://github.com/apache/nuttx/pull/19727) syscall: add missing memory locking and clock_getres entries
Video
[#19053](https://github.com/apache/nuttx/pull/19053) video/fb: Handle case of multiple displays where some do not require update
[#19466](https://github.com/apache/nuttx/pull/19466) video: fix EDID standard timing decode
[#19685](https://github.com/apache/nuttx/pull/19685) video/rgbcolors: Fix RGBTO8 to use the high bits of each component
Changes to the Build System
Bug Fixes
[#19464](https://github.com/apache/nuttx/pull/19464) cmake: Sanitize NAME for _main symbol generation
[#19507](https://github.com/apache/nuttx/pull/19507) cmake: Do not link an executable to detect the compiler
Architectural Support
Bug Fixes
[#19438](https://github.com/apache/nuttx/pull/19438) arch/common: fix host_flags_to_mode() O_RDONLY sentinel collision
ARM
[#19565](https://github.com/apache/nuttx/pull/19565) arch/arm: carry CONTROL over to the fork child on Cortex-M
[#19486](https://github.com/apache/nuttx/pull/19486) arch/arm: set PSPLIM to top of TLS region to protect it from overflow
[#19691](https://github.com/apache/nuttx/pull/19691) arch/arm/kinetis/rtc: Enable global lock for all
[#19746](https://github.com/apache/nuttx/pull/19746) arch/arm/nrf53: fix I2C3 base
[#19542](https://github.com/apache/nuttx/pull/19542) arch/arm/nrf52,nrf53: don't pass HCI messages under the lock
[#19378](https://github.com/apache/nuttx/pull/19378) arch/arm/rp2040,rp23xx: fix CDC-NCM bulk/notify endpoint handling
[#19452](https://github.com/apache/nuttx/pull/19452) arch/arm/rp2040/rp23xx: implement endpoint stall queueing and GET_STATUS responses
[#19574](https://github.com/apache/nuttx/pull/19574) arch/arm/rp2040/rp23xx: order the USB BUFF_STATUS clear before the AVAILABLE re-arm
[#19450](https://github.com/apache/nuttx/pull/19450) arch/arm/rp2040/rp23xx: preserve SIE_CTRL.PULLUP_EN in usbdev_register
[#19535](https://github.com/apache/nuttx/pull/19535) arch/arm/rp23xx: Fix six register/bit macro name clashes
[#19520](https://github.com/apache/nuttx/pull/19520) arch/arm/stm32: Detach GPIO IRQ callbacks upon clearing "setevent"
[#19385](https://github.com/apache/nuttx/pull/19385) arch/arm/stm32: fix H5 I2C kernel-clock register names
[#19383](https://github.com/apache/nuttx/pull/19383) arch/arm/stm32: make STM32_FOC depend on MOTOR_FOC
[#19395](https://github.com/apache/nuttx/pull/19395) arch/arm/stm32: make STM32_ETHMAC depend on NET
[#19382](https://github.com/apache/nuttx/pull/19382) arch/arm/stm32: STM32_DTS depends on SENSORS
[#19519](https://github.com/apache/nuttx/pull/19519) arch/arm/stm32g0: Fix FLASHIF typo
[#19495](https://github.com/apache/nuttx/pull/19495) arch/arm/stm32h7: fix MDIO RDA field in c22 write
[#19769](https://github.com/apache/nuttx/pull/19769) arch/arm/stm32h5: Fix handling of GPIO port I
[#19506](https://github.com/apache/nuttx/pull/19506) arch/arm/stm32h7: invalidate dcache after aligned SDMMC RX DMA
[#19701](https://github.com/apache/nuttx/pull/19701) arch/arm/stm32h5/serial: fix UART8 buffer guard typo
ARM64
[#19676](https://github.com/apache/nuttx/pull/19676) arch/arm64/imx9: Fix imx9 usdhc DMA initialization
MIPS
[#19784](https://github.com/apache/nuttx/pull/19784) arch/mips/Makefile: Add nuttx build with CONFIG_ALLSYMS enabled
RISC-V
[#19768](https://github.com/apache/nuttx/pull/19768) arch/risc-v/espressif: fix SPI IOMUX false positive without SPI2
[#19439](https://github.com/apache/nuttx/pull/19439) arch/riscv: Fix RISC-V backtrace
[#19364](https://github.com/apache/nuttx/pull/19364) arch/risc-v: reject overlapping leaf PTE in riscv_fillpage
[#19377](https://github.com/apache/nuttx/pull/19377) arch/risc-v: kill faulting user task instead of panicking kernel
[#19468](https://github.com/apache/nuttx/pull/19468) arch/risc-v: qemu: don't rewind interrupt stack sp on nested trap
[#19471](https://github.com/apache/nuttx/pull/19471) arch/risc-v: fix fault handler misattributing kernel faults to user
[#19718](https://github.com/apache/nuttx/pull/19718) arch/risc-v: fix uninitialized HW cmds and bus clock
X86
[#19567](https://github.com/apache/nuttx/pull/19567) arch/x86: default CROSSDEV on a macOS host
X86_64
[#19559](https://github.com/apache/nuttx/pull/19559) arch/x86_64: six fixes to make BUILD_KERNEL and the HPET alarm work
[#19692](https://github.com/apache/nuttx/pull/19692) arch/x86_64: fix page table levels in pgalloc
[#19791](https://github.com/apache/nuttx/pull/19791) arch/x86_64: fix kernel build issues found with LTP
Driver Support
Bug Fixes
[#19184](https://github.com/apache/nuttx/pull/19184) drivers/serial: add job-control TTY ioctls
[#19371](https://github.com/apache/nuttx/pull/19371) drivers/usbdev: re-assert soft connect in cdcecm/cdcncm disconnect()
[#19373](https://github.com/apache/nuttx/pull/19373) drivers/i2s/i2schar: Fix return types
[#19386](https://github.com/apache/nuttx/pull/19386) drivers/i2c: I2C_SLAVE_DRIVER depends on I2C_SLAVE
[#19391](https://github.com/apache/nuttx/pull/19391) drivers/serial: hold xmit.lock around echo in uart_readv()
[#19411](https://github.com/apache/nuttx/pull/19411) drivers/net/w5500: fix variable names in receive error path and d_private
[#19415](https://github.com/apache/nuttx/pull/19415) drivers/spi/ice40: fix operator precedence in final clock cycle count
[#19416](https://github.com/apache/nuttx/pull/19416) drivers/efuse: Multiple Drivers Are Registered With World Writable
[#19419](https://github.com/apache/nuttx/pull/19419) drivers/contactless: fix uninitialized uid leak in mfrc522_read
[#19433](https://github.com/apache/nuttx/pull/19433) drivers/watchdog: fix capture automonitor notifier context
[#19437](https://github.com/apache/nuttx/pull/19437) drivers: Multiple Drivers Are Registered With World Writable (2)
[#19451](https://github.com/apache/nuttx/pull/19451) drivers/usbdev: fix composite-mode class requests and BOT short-response handling
[#19453](https://github.com/apache/nuttx/pull/19453) drivers: Multiple Drivers Are Registered With World Writable (3)
[#19470](https://github.com/apache/nuttx/pull/19470) drivers/usbdev/cdcncm: fix TX corruption/wedge under write buffers
[#19476](https://github.com/apache/nuttx/pull/19476) drivers/eeprom: I2C EEPROM Read/Write Kernel Operations Crash
[#19502](https://github.com/apache/nuttx/pull/19502) drivers/mmcsd: fix eMMC bus width switch sequencing
[#19522](https://github.com/apache/nuttx/pull/19522) drivers/video: zero message on MIPI DSI driver
[#19568](https://github.com/apache/nuttx/pull/19568) drivers/syslog: fix syslog_write() returning -EIO on every write
[#19571](https://github.com/apache/nuttx/pull/19571) drivers/ioexpander/iso1i813t: fix error startup condition
[#19577](https://github.com/apache/nuttx/pull/19577) drivers/input: partial fix of indistinguishable ASCII and special keycodes
[#19590](https://github.com/apache/nuttx/pull/19590) drivers/ioexpander: Fix GPIO expanders warnings
[#19604](https://github.com/apache/nuttx/pull/19604) drivers/mmcsd: Fix finfo print modifier
[#19632](https://github.com/apache/nuttx/pull/19632) drivers/usbdev/rndis: Fix reported MTU OID sizes
[#19740](https://github.com/apache/nuttx/pull/19740) drivers/usbdev/cdcacm: fix self-deadlock in cdcuart_txempty()
[#19742](https://github.com/apache/nuttx/pull/19742} drivers/usbhost: Refuse to register the same class driver twice
Board Support
Bug Fixes
[#19498](https://github.com/apache/nuttx/pull/19498) boards: Dropbear defconfig crypto deps
[#19492](https://github.com/apache/nuttx/pull/19492) boards: Fix/dropbear cryptodev defconfigs
[#19481](https://github.com/apache/nuttx/pull/19481) boards/dropbear: retain child exit status for NSH PTY session
ARM
[#19538](https://github.com/apache/nuttx/pull/19538) boards/arm/mps2-an521: Correct the swapped UART0 TX and RX interrupts
[#19361](https://github.com/apache/nuttx/pull/19361) boards/arm/mps3-an547: Fix error caused by updating nsh Kconfig
[#19561](https://github.com/apache/nuttx/pull/19561) boards/arm/rp23xx: add missing rp23xx_st7735.c LCD board glue
[#19431](https://github.com/apache/nuttx/pull/19431) boards/arm/stm32{f1,f4}: drop duplicated reset.c/romfs
[#19454](https://github.com/apache/nuttx/pull/19454) boards/arm/stm32f3: nucleo-f302r8:ihm07m1_b16: enable LTO to fit flash
[#19483](https://github.com/apache/nuttx/pull/19483) boards/arm/stm32f746g-disco: Add Dropbear SSH server support
[#19257](https://github.com/apache/nuttx/pull/19257) boards/arm/stm32f746g-disco: Add support for Winbond W25Q128JVEQ flash chip
[#19389](https://github.com/apache/nuttx/pull/19389) boards/arm/stm32h7: switch board common to boards/arm/common/stm32
ARM64
[#19427](https://github.com/apache/nuttx/pull/19427) boards/arm64/raspberrypi-4b/sd: Fix SD card issues
RISC-V
[#19474](https://github.com/apache/nuttx/pull/19474) boards/risc-v/esp32c3-devkit/dropbear: enable SCHED_HAVE_PARENT
SIM
[#19405](https://github.com/apache/nuttx/pull/19405) boards/sim: add dropbear board configuration
[#19576](https://github.com/apache/nuttx/pull/19576) boards/sim: add ROMFS passwd and crypto deps for NSH console login
[#19583](https://github.com/apache/nuttx/pull/19583) boards/sim: drop unused FSUTILS_PASSWD from sim defconfigs
File System
Bug Fixes
[#19179](https://github.com/apache/nuttx/pull/19179) fs: widen ino_t to uint32_t and add d_ino to struct dirent
[#19212](https://github.com/apache/nuttx/pull/19212) fs/vfs: provide link fallback without softlinks - #19212
[#19394](https://github.com/apache/nuttx/pull/19394) fs/procfs: fix environ read for another task under CONFIG_A
[#19704](https://github.com/apache/nuttx/pull/19704) fs/pseudofile: fix buffer sizing and sparse growth
[#19770](https://github.com/apache/nuttx/pull/19770) fs/romfs: fix node cache overflow in directories with >256 entries
Networking
Bug Fixes
[#18857](https://github.com/apache/nuttx/pull/18857) net/sixlowpan: Check if g_frame_hdrlen + IPv6_HDRLEN <= iob->io_len
[#19436](https://github.com/apache/nuttx/pull/19436) net/igmp: restore General Query handling broken by pointer compare
[#19564](https://github.com/apache/nuttx/pull/19564) net/tcp: don't accept a reset connection as connected
[#19589](https://github.com/apache/nuttx/pull/19589) net/tcp: Remove work_available check when updating retransmit timer
[#19595](https://github.com/apache/nuttx/pull/19595) net: Fix IP fragment forwarding and L4 handling
[#19801](https://github.com/apache/nuttx/pull/19781) net/udp: fix d_len corruption for 2nd+ SO_REUSEADDR listener
Compatibility Concerns
[#19209](https://github.com/apache/nuttx/pull/19209) !boards/nsh: Replace TEA password storage with PBKDF2-HMAC-SHA256 hashing
Replace reversible TEA password storage in /etc/passwd with one-way PBKDF2-HMAC-SHA256 hashing in modular crypt format (MCF):
$pbkdf2-sha256$<iterations>$<base64url-salt>$<base64url-hash>
BREAKING CHANGE: TEA-encoded /etc/passwd entries no longer verify.
Regenerate with tools/mkpasswd or NSH passwd/useradd after upgrading nuttx-apps.
Changes:
    Add apps/crypto/pbkdf2 (PBKDF2-HMAC-SHA256; Mbed TLS backend when available, self-contained SHA-256 fallback otherwise)
    Rewrite passwd_encrypt.c / passwd_verify.c to use PBKDF2 and timingsafe_bcmp() for verification
    Add shared passwd_base64.c for base64url encode/decode
    Enforce password complexity when setting passwords (min 8 chars, upper, lower, digit, special character)
    Add testing/pbkdf2 (RFC 6070 vectors + passwd round-trip test)
Companion nuttx PR (host mkpasswd tool and ROMFS build integration): apache/nuttx-apps#3557
[#19297](https://github.com/apache/nuttx/pull/19297) !arch/arm/src/stm32: unify the timer input clock board options
Replace the divergent board conventions for the timer input clock frequency with a single uniform convention provided by every board:
    STM32_APBx_TIMn_CLKIN and BOARD_TIMn_FREQUENCY -> STM32_TIMn_CLKIN
    STM32_APBx_LPTIMn_CLKIN, BOARD_LPTIMn_FREQUENCY and STM32_LPTIMn_FREQUENCY -> STM32_LPTIMn_CLKIN
All STM32 consumers (tim/lptim/pwm/adc/dac/capture/sdadc/dfsdm/pulsecount) updated to match; the timer input clock is now bus-agnostic
in the drivers.
Boards that carried the same timer clock in more than one convention now define STM32_TIMn_CLKIN exactly once, derived from the APB bus
clock (PCLKx with the x2 doubler when the APB prescaler is greater than 1), instead of redefining it with a second, sometimes different, value.
BREAKING CHANGE: The timer input-clock board macros STM32_APBx_TIMn_CLKIN, BOARD_TIMn_FREQUENCY, STM32_APBx_LPTIMn_CLKIN, BOARD_LPTIMn_FREQUENCY
and STM32_LPTIMn_FREQUENCY are removed in favor of STM32_TIMn_CLKIN and STM32_LPTIMn_CLKIN.
Out-of-tree boards must define STM32_TIMn_CLKIN / STM32_LPTIMn_CLKIN (drop the APB bus from the name, keep the value),
and out-of-tree drivers referencing the old names must be updated.
[#19321](https://github.com/apache/nuttx/pull/19321) !boards: enforce secure ROMFS passwd and TEA key setup
Remove implicit default credentials and add build-time validation. Add check_passwd_keys.sh and gen_passwd_keys.sh; run key setup via passwd_keys.mk
before config.h is generated. Mirror the same logic in cmake/nuttx_add_romfs.cmake for CMake builds.
BREAKING CHANGE: Builds with CONFIG_BOARD_ETC_ROMFS_PASSWD_ENABLE=y now require an explicit admin password and non-default TEA keys.
The Kconfig default password "Administrator" and default TEA keys are no longer accepted. Fix: run make menuconfig, set Admin password under
Board Selection -> Auto-generate /etc/passwd, enable random TEA keys or
set CONFIG_FSUTILS_PASSWD_KEY1..4 manually, and use NSH login with Encrypted password file verification.