Work In Progress

NuttX X.Y has not been released yet. These Release Notes are a work-in-progress in preparation for the next release of NuttX.  There is a board tracking the PRs that need to be looked at to add to this doc for the OS TODO ADD LINK and for the Apps TODO ADD LINK

What's New In This Release

Major Changes to Core OS

Sched

MM

libc

tools

various

Major Changes to the Build System

New Features

Bug Fixes

Architectural Support

New Architecture Support

Architecture Improvements


* [#15080](https://github.com/apache/nuttx/pull/15080) xtensa/esp32: encrypted MTD for partition offset
* [#15082](https://github.com/apache/nuttx/pull/15082) xtensa/esp32s3: add lock for async operation work
* [#15083](https://github.com/apache/nuttx/pull/15083) arch/arm64/src/imx9/imx9_usdhc.c: Simplify eventwait logic and remove…
* [#15084](https://github.com/apache/nuttx/pull/15084) risc-v/mpfs: make cache clearing optional
* [#15769](https://github.com/apache/nuttx/pull/15769) arch/zynq-mpsoc improve the ethernet driver
* [#15781](https://github.com/apache/nuttx/pull/15781) arch/arm/src/samv7/sam_tc_lowerhalf.c: do not set the CPCSTOP bit
* [#15800](https://github.com/apache/nuttx/pull/15800) arch/armv7-r: PROTECTED mode support (1/2)
* [#15813](https://github.com/apache/nuttx/pull/15813) arch/armv7-r: PROTECTED mode support (2/2)
* [#15835](https://github.com/apache/nuttx/pull/15835) arch/risc-v: move stack boundary check into backtrace
* [#15837](https://github.com/apache/nuttx/pull/15837) arch/arm/max326xx: add max32690 gpio driver
* [#15843](https://github.com/apache/nuttx/pull/15843) arch/arm/imx9: scmi: update to scmi 3.2 spec
* [#15872](https://github.com/apache/nuttx/pull/15872) arch/arm/tiva: Add complementary PWM mode support
* [#15878](https://github.com/apache/nuttx/pull/15878) arch/risc-v/src/mpfs: Move PLIC interrupt enable/disable to mpfs_plic and handle pending interrupts
* [#15879](https://github.com/apache/nuttx/pull/15879) arch/mcx-nxxx: Add support for NXP MCX-N236 CPU
* [#15886](https://github.com/apache/nuttx/pull/15886) arch/risc-v/src/mpfs: Implement wrcomplete support for coremmc driver
* [#15892](https://github.com/apache/nuttx/pull/15892) arch/ra4: Add support for Renesas RA4M1 MCU
* [#15901](https://github.com/apache/nuttx/pull/15901) arch/arm64: fix boot stage prints with CONFIG_ARCH_EARLY_PRINT=y
* [#15908](https://github.com/apache/nuttx/pull/15908) arch/mcx-nxxx: Add GPIO interrupt support
* [#15910](https://github.com/apache/nuttx/pull/15910) arch/risc-v: Add ARCH_HAVE_RAMFUNCS to ESP32-C6 and ESP32-H2
* [#15076](https://github.com/apache/nuttx/pull/15076) arch/arm: migrate to SPDX identifier
* [#15092](https://github.com/apache/nuttx/pull/15092) cxd56_rtc.c: use small lock in arch/arm/src/cxd56xx/cxd56_rtc.c
* [#15093](https://github.com/apache/nuttx/pull/15093) lc823450_dma: use small lock in arch/arm/src/lc823450/lc823450_dma.c
* [#15094](https://github.com/apache/nuttx/pull/15094) max32660_rtc: use small lock in arch/arm/src/max326xx/max32660/max32660_rtc.c
* [#15096](https://github.com/apache/nuttx/pull/15096) s32k3xx_serial: use small lock in arch/arm/src/s32k3xx/s32k3xx_serial.c
* [#15097](https://github.com/apache/nuttx/pull/15097) litex_serial: use small lock in arch/risc-v/src/litex/litex_serial.c
* [#15144](https://github.com/apache/nuttx/pull/15144) arch/arm64/imx9: Fix usdhc dma receive
* [#15221](https://github.com/apache/nuttx/pull/15221) esp32s3_rtc: use small lock in arch/xtensa/src/esp32s3/esp32s3_rtc.c
* [#15222](https://github.com/apache/nuttx/pull/15222) lc823450_rtc: use small lock in arch/arm/src/lc823450/lc823450_rtc.c
* [#15225](https://github.com/apache/nuttx/pull/15225) esp32c3_rtc: use small lock in arch/risc-v/src/esp32c3-legacy/esp32c3_rtc.c
* [#15226](https://github.com/apache/nuttx/pull/15226) arch/sim/src/nuttx-names.in: Add pipe2
* [#15232](https://github.com/apache/nuttx/pull/15232) esp32_rtc: use small lock in arch/xtensa/src/esp32s2/esp32s2_rtc.c
* [#15255](https://github.com/apache/nuttx/pull/15255) at32_serial: use small lock in arch/arm/src/at32/at32_serial.c
* [#15263](https://github.com/apache/nuttx/pull/15263) imx_gpio: use small lock in arch/arm/src/imx6/imx_gpio.c
* [#15267](https://github.com/apache/nuttx/pull/15267) esp_rtc: use small lock in arch/risc-v/src/common/espressif/esp_rtc.c
* [#15269](https://github.com/apache/nuttx/pull/15269) arch/xtensa: Support `__thread` and `thread_local` keywords
* [#15290](https://github.com/apache/nuttx/pull/15290) imx9_flexcan: use small lock in arch/arm/src/imx9/imx9_flexcan.c
* [#15291](https://github.com/apache/nuttx/pull/15291) imx9_lpuart: use small lock in arch/arm(64)/src/imx9/imx9_lpuart.c
* [#15294](https://github.com/apache/nuttx/pull/15294) arch/risc-v/espressif: add missing spinlock to wlan_recvframe
* [#15325](https://github.com/apache/nuttx/pull/15325) arch/x86_64:g_current_regs is only used to determine if we are in irq,
* [#15381](https://github.com/apache/nuttx/pull/15381) arch/risc-v: inline up_cpu_index if RISCV_PERCPU_SCRATCH is not enabled
* [#15392](https://github.com/apache/nuttx/pull/15392) arch/x86_64: The interrupt context flag is stored in the CPU private …
* [#15396](https://github.com/apache/nuttx/pull/15396) arch/risc-v: Make CPU index handling based on ARCH_RV_CPUID_MAP
* [#15398](https://github.com/apache/nuttx/pull/15398) arch/x86_64: this_task is stored in the CPU private data
* [#15400](https://github.com/apache/nuttx/pull/15400) arch/qemu-armv7a: kernel mode cmake support
* [#15404](https://github.com/apache/nuttx/pull/15404) arch/xtensa: enable SPIRAM test during boot of ESP32|S3
* [#15408](https://github.com/apache/nuttx/pull/15408) arch/x86_64/include/intel64/irq.h: align definitions
* [#15409](https://github.com/apache/nuttx/pull/15409) arch/intel64: allow to attach handlers to ISR
* [#15420](https://github.com/apache/nuttx/pull/15420) arch/arm/stm32/: Fix I2C to support STM32G4 devices.
* [#15421](https://github.com/apache/nuttx/pull/15421) arch/arm/stm32/: Added enable/disable to timer low level ops.
* [#15458](https://github.com/apache/nuttx/pull/15458) arch/arm/stm32: fix stm32g4 enable pll code.
* [#15469](https://github.com/apache/nuttx/pull/15469) arch/risc-v: Improve LLVM CPU type detection with findstring
* [#15470](https://github.com/apache/nuttx/pull/15470) arch/esp32s3_partition: Read data from SPI Flash with decryption
* [#15473](https://github.com/apache/nuttx/pull/15473) arch/arm/stm32/i2c: raise compilation error when configuration is invalid
* [#15475](https://github.com/apache/nuttx/pull/15475) arch/risc-v: Refactor LLVM CPU type handling in Toolchain.cmake
* [#15486](https://github.com/apache/nuttx/pull/15486) arch/arm: Add LLVM configuration to CMake
* [#15504](https://github.com/apache/nuttx/pull/15504) arch/arm/rp23xx: Set priority for svcall exception
* [#15508](https://github.com/apache/nuttx/pull/15508) arch/x86_64:Resolve the issue of abnormal interrupt numbers triggered when KASAN is enabled
* [#15517](https://github.com/apache/nuttx/pull/15517) arch/arm: fix regression by spinlock change
* [#15519](https://github.com/apache/nuttx/pull/15519) arch/arm64: fix typo spin_lock_irqsave -> spin_unlock_irqrestore
* [#15529](https://github.com/apache/nuttx/pull/15529) arch/armv7a: fix vfork for KERNEL build
* [#15537](https://github.com/apache/nuttx/pull/15537) arch/risc-v: Decouple ARCH_RV_CPUID_MAP and up_cpu_index()
* [#15540](https://github.com/apache/nuttx/pull/15540) arch/risc-v: Remove riscv_mhartid
* [#15584](https://github.com/apache/nuttx/pull/15584) arch/Kconfig: allow FLASH config w/o MMU
* [#15585](https://github.com/apache/nuttx/pull/15585) arch/armv7-r: fix gic.h build error
* [#15642](https://github.com/apache/nuttx/pull/15642) arch/risc-v/src/mpfs: Disable external interrupts on all SMP harts
* [#15646](https://github.com/apache/nuttx/pull/15646) arch/arm64/src/imx9/imx9_lpuart.c: Call uart_xmitchars when txint is enabled
* [#15713](https://github.com/apache/nuttx/pull/15713) arch/risc-v/src/mpfs/mpfs_cache.c: Move l2zerodevice to use cache ways starting from 0
* [#15725](https://github.com/apache/nuttx/pull/15725) arch/risc-v/src/common/riscv_backtrace.c: Fix "error: pointer of type 'void *' used in arithmetic"
* [#15741](https://github.com/apache/nuttx/pull/15741) arch/xtensa: Add --print-memory-usage to LDFLAGS in Toolchain.defs
* [#15748](https://github.com/apache/nuttx/pull/15748) arch/arm64 Fix the SP unalignment issues
* [#15758](https://github.com/apache/nuttx/pull/15758) arch/arm64: generate error if context size is not aligned to 16bytes
* [#15762](https://github.com/apache/nuttx/pull/15762) arch/arm: add semihosting poweroff
* [#15763](https://github.com/apache/nuttx/pull/15763) arch/risc-v/Kconfig: Select ARCH_RV_CPUID_MAP for all mpfs targets
* [#15271](https://github.com/apache/nuttx/pull/15271) Add Hardware Defines for STM32H5 QSPI Driver
* [#15351](https://github.com/apache/nuttx/pull/15351) Add STM32H5 QSPI Driver
* [#15411](https://github.com/apache/nuttx/pull/15411) Add FDCAN Character Driver to STM32H5 Architecture
* [#15495](https://github.com/apache/nuttx/pull/15495) Add Timer Support to STM32H5 ADC Driver
* [#15573](https://github.com/apache/nuttx/pull/15573) sensors/sht4x: Converted SHT4X driver to UORB framework.
* [#15583](https://github.com/apache/nuttx/pull/15583) Add STM32H5 Ethernet Driver
* [#15819](https://github.com/apache/nuttx/pull/15819) mpfs_i2c: Tweaks and fixes for the i2c driver
* [#15895](https://github.com/apache/nuttx/pull/15895) riscv/esp32c6: Fix issue related esp32c6 usbserial driver.


Driver Support

New Driver Support

* [#15295](https://github.com/apache/nuttx/pull/15295) nuttx/audio: add fake audio driver.
* [#15307](https://github.com/apache/nuttx/pull/15307) drivers/sensors: Add support to Renesas FS3000 Air Velocity Flow
* [#15332](https://github.com/apache/nuttx/pull/15332) risc-v/bl808: Add I2C driver
* [#15496](https://github.com/apache/nuttx/pull/15496) drivers/sensors/bmi088: add driver for Bosch BMI088 IMU
* [#15525](https://github.com/apache/nuttx/pull/15525) drivers/sensors: Wrote a driver for the MCP9600 thermocouple amplifier.
* [#15795](https://github.com/apache/nuttx/pull/15795) drivers/wireless/lpwan/sx126x: Initial standalone sx126x driver

Drivers With Significant Improvements

* [#15293](https://github.com/apache/nuttx/pull/15293) drivers/sensors: Add Velocity sensor type to UORB
* [#15339](https://github.com/apache/nuttx/pull/15339) Drivers/thermal: Fix hysteresis takes no effect error
* [#15340](https://github.com/apache/nuttx/pull/15340) drivers/e1000: malloc size error
* [#15342](https://github.com/apache/nuttx/pull/15342) drivers/sensors/gnss: Fix deactivate failure when using both topic and device
* [#15387](https://github.com/apache/nuttx/pull/15387) drivers/timers/watchdog: add watchdog timer notifier chain
* [#15406](https://github.com/apache/nuttx/pull/15406) drivers/serial: simplify 16550_PCI_UARTx_CLOCK config
* [#15410](https://github.com/apache/nuttx/pull/15410) virtio-rng: Register /dev/urandom driver if CONFIG_DEV_URANDOM=y
* [#15440](https://github.com/apache/nuttx/pull/15440) drivers/video: add BRGA8888 support for goldfish gpu fb
* [#15448](https://github.com/apache/nuttx/pull/15448) drivers/sensors/gnss: Fix integer overflow error
* [#15468](https://github.com/apache/nuttx/pull/15468) drivers/sensors/gnss: Macro `UINT8_MAX` for maximum value of `uint8_t crefs
* [#15485](https://github.com/apache/nuttx/pull/15485) drivers/usbdev/cdcacm.c: Fix a crash in cdcacm if usbdev gets unregistered while client calls close for the tty
* [#15498](https://github.com/apache/nuttx/pull/15498) drivers/vhost: fix compile error while get vhost status.
* [#15520](https://github.com/apache/nuttx/pull/15520) drivers/note: fix typo falgs and align local name to irq_mask
* [#15564](https://github.com/apache/nuttx/pull/15564) drivers/can: ctucanfd the first round of fixes - mainly for char dev
* [#15610](https://github.com/apache/nuttx/pull/15610) drivers/sensor: add new sensot type to align android sensor type
* [#15612](https://github.com/apache/nuttx/pull/15612) drivers: mcp23x08 add missing header and fix some defines
* [#15629](https://github.com/apache/nuttx/pull/15629) drivers/iovec: revert vector io implement from loop/null/zero driver
* [#15641](https://github.com/apache/nuttx/pull/15641) drivers/rpmsg: fix compiler warning
* [#15654](https://github.com/apache/nuttx/pull/15654) drivers/rpmsg: update format string
* [#15663](https://github.com/apache/nuttx/pull/15663) drivers/rpmsg_port_uart: remove debug message of datalen
* [#15703](https://github.com/apache/nuttx/pull/15703) LIS2MDL UORB driver
* [#15789](https://github.com/apache/nuttx/pull/15789) drivers/sensors: Added uORB driver for LSM6DSO32 IMU.
* [#15799](https://github.com/apache/nuttx/pull/15799) drivers/devicetree: merge ioresource MEM64 to prefetchable memory
* [#15811](https://github.com/apache/nuttx/pull/15811) drivers/thermal: Add support for passive trip point
* [#15860](https://github.com/apache/nuttx/pull/15860) drivers/sensors/lsm6dso32: fixed byte read command to include start condition
* [#15871](https://github.com/apache/nuttx/pull/15871) drivers/rpmsg/Kconfig: Add SPI dependency for RPMSG_PORT_SPI
* [#15875](https://github.com/apache/nuttx/pull/15875) drivers/sensors/ms56xx: Use nxsig_usleep for long delays.
* [#15882](https://github.com/apache/nuttx/pull/15882) drivers/net: change format specifiers macros on lan9250 driver
* [#15891](https://github.com/apache/nuttx/pull/15891) drivers/thermal/core: Fix work not queued after getting temperature fails
* [#15914](https://github.com/apache/nuttx/pull/15914) drivers/audio/es8311: set proper format specifier for logging
* [#15918](https://github.com/apache/nuttx/pull/15918) drivers/audio/es8388: set proper format specifier macro for logging

Board Support

New Board Support

Boards With Significant Improvements



File System

Bug Fixes

* [#13519](https://github.com/apache/nuttx/pull/13519) fs/reference_count: set default reference count option depends on DISABLE_PTHREAD
* [#14444](https://github.com/apache/nuttx/pull/14444) fs/inode: refresh tcb after each file sync() is completed
* [#15077](https://github.com/apache/nuttx/pull/15077) fs/tmpfs: Skip any slash at the beginning of relpath
* [#15202](https://github.com/apache/nuttx/pull/15202) fs: fix comment in https://github.com/apache/nuttx/pull/15163
* [#15159](https://github.com/apache/nuttx/pull/15159) fs/shm/shmfs_alloc.c: Allocate zero-initialized memory in flat build
* [#15167](https://github.com/apache/nuttx/pull/15167) fs/fat/fs_fat32util.c: fix potential exception due to dividing zero during mounting when fat is corrupted
* [#15203](https://github.com/apache/nuttx/pull/15203) fs: move fl_lock to a more appropriate location
* [#15204](https://github.com/apache/nuttx/pull/15204) fs/littlefs/Make.defs: fix a littlefs unpack regression
* [#15603](https://github.com/apache/nuttx/pull/15603) fs/vfs: initialize uio only if lower implement readv/writev
* [#15814](https://github.com/apache/nuttx/pull/15814) littlefs/cmake: fix compilation flag issue

Networking

Improvements

Bug Fixes

Security Issues Fixed In This Release

Compatibility Concerns

Changes to Build System

Renamed or Modified Kconfig Options

Known Problems In This Release

More Information

How to Download

Release artifacts for all current and past NuttX releases can be downloaded at:

How to Clone the Git Repository

The Apache NuttX project uses Git SCM as its version control system.

There are two primary repositories:

The main "Single Source of Truth" repositories are hosted by the ASF:

These are synchronized with repositories hosted at GitHub:

How to Contact the Community

The main forum for project communication, to ask a question, get involved, or contribute to NuttX, is our mailing list, dev@nuttx.apache.org. The list is publicly archived and searchable at https://lists.apache.org/list.html?dev@nuttx.apache.orgFor more information, see NuttX Community.

Enthusiastic Contributors Welcome!

NuttX is a free open-source project. If you'd like to participate, whether it's to enhance documentation (even these release notes) or dive into the nitty gritty of some low-level drivers, please join us! You can join the conversation at our dev mailing list by emailing dev-subscribe@nuttx.apache.org. The mailing list is open to the public and archived. You can browse older messages at https://lists.apache.org/list.html?dev@nuttx.apache.org.