diff --git a/_releases/13.0.1.md b/_releases/13.0.1.md new file mode 100644 index 0000000000..0efe51c68e --- /dev/null +++ b/_releases/13.0.1.md @@ -0,0 +1,249 @@ +--- +layout: page +released: true +apache: true +title: 13.0.1 +date: 2026-09-15 +summary: > + Release v13.0.1 + +artifact-root: "https://www.apache.org/dyn/closer.lua/nuttx/13.0.1" +checksum-root: "https://downloads.apache.org/nuttx/13.0.1" +key-file: "https://downloads.apache.org/nuttx/KEYS" + +source-os-dist: + - "apache-nuttx-13.0.1.tar.gz" +source-app-dist: + - "apache-nuttx-apps-13.0.1.tar.gz" + +--- + + + + +{% include JB/setup %} + +# Apache NuttX-13.0.1 Release Notes +* TOC +{:toc} + +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$$$ + +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.