Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Work In Progress

Warning
titleWork 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

...

Markdown
* [#10770](https://github.com/apache/nuttx/pull/10770) drivers: add regmap subsystems support.
* [#10902](https://github.com/apache/nuttx/pull/10902) motor: Add stepper interface
* [#11253](https://github.com/apache/nuttx/pull/11253) mtd: Adds support to W25Q20CL memory.
* [#11149](https://github.com/apache/nuttx/pull/11149) mtd: mx25rxx: add support for MX25L25673G chip
* [#11422](https://github.com/apache/nuttx/pull/11422) net: ksz9477: Add simple port-based static VLAN configuration
* [#11339](https://github.com/apache/nuttx/pull/11339) net: lan9250: Add LAN9250 driver(SPI and QSPI mode)
* [#11280](https://github.com/apache/nuttx/pull/11280) sensors: Add support for MS5607
* [#10864](https://github.com/apache/nuttx/pull/10864) sensors: max31865:RTD-to-Digital Converter
* [#10914](https://github.com/apache/nuttx/pull/10914) stepper: add DRV8825
* [#11228](https://github.com/apache/nuttx/pull/11228) tee: add optee client driver module

Drivers

...

Improvements

Markdown
* [#11071](https://github.com/apache/nuttx/pull/11071) Kconfigs: rename {Rpmsg|rpmsg} to RPMGS
* [#11061](https://github.com/apache/nuttx/pull/11061) can: Add new ioctls
* [#10845](https://github.com/apache/nuttx/pull/10845) foc: foc_dummy.c: update dummy device state only if dev opened
* [#11176](https://github.com/apache/nuttx/pull/11176) foc: return scaling factor for phase currents and BEMF via ioctl
* [#10808](https://github.com/apache/nuttx/pull/10808) ioexpander: Minor fix for ioexpander driver
* [#11147](https://github.com/apache/nuttx/pull/11147) lcd: add stride support for LCD driver
* [#11185](https://github.com/apache/nuttx/pull/11185) lcd: change lcd stride from pixel to bytes
* [#10926](https://github.com/apache/nuttx/pull/10926) math: mpi: add mpi driver in math
* [#11240](https://github.com/apache/nuttx/pull/11240) misc: Rpmsgblk function optimization
* [#11220](https://github.com/apache/nuttx/pull/11220) mmcsd: mmcsd_sdinitialize should save csd register into priv->csd
* [#10909](https://github.com/apache/nuttx/pull/10909) mtd: filemtd:Fix teardown return error number EINVAL
* [#11041](https://github.com/apache/nuttx/pull/11041) mtd: get mtd_geometry_s.model for mtd partition and optimize code
* [#11187](https://github.com/apache/nuttx/pull/11187) mtd: s25fl1: fix compile warnings caused by incorrect variable print format
* [#11370](https://github.com/apache/nuttx/pull/11370) mtd: w25q: add nxsig_usleep to busy waiting in w25qxxxjv_erase_sector()
* [#11391](https://github.com/apache/nuttx/pull/11391) net: qemu/wifi: Add the virtual wifi function on the emulator.
* [#11216](https://github.com/apache/nuttx/pull/11216) net: skeleton.c doesn't compile without this patch if ioctls are enabled
* [#10907](https://github.com/apache/nuttx/pull/10907) note: Change 0/1 to false/true
* [#11153](https://github.com/apache/nuttx/pull/11153) note: delete sched_note_flatten
* [#10840](https://github.com/apache/nuttx/pull/10840) note: optimize note performance
* [#10920](https://github.com/apache/nuttx/pull/10920) note: remove remaining event code
* [#11074](https://github.com/apache/nuttx/pull/11074) power: pm: use pm_staytimeout() in greedy_governor_activity()
* [#11132](https://github.com/apache/nuttx/pull/11132) rptun: check the status before stop remote proc
* [#11222](https://github.com/apache/nuttx/pull/11222) rtc: RTC driver improvement
* [#10831](https://github.com/apache/nuttx/pull/10831) rtt: make RTT console optional
* [#11296](https://github.com/apache/nuttx/pull/11296) segger: rtt: correct macro name to avoid unable to change default mode
* [#11419](https://github.com/apache/nuttx/pull/11419) sensors: mx56xx: Add support for second order compensation
* [#11426](https://github.com/apache/nuttx/pull/11426) sensors: mx56xx: Fix threshold and calculation
* [#11178](https://github.com/apache/nuttx/pull/11178) serial: uart_tcsendbreak: Remove cancel point, as tcsendbreak is not one
* [#11402](https://github.com/apache/nuttx/pull/11402) syslog: ramlog: improve ramlog performance
* [#11392](https://github.com/apache/nuttx/pull/11392) syslog: ramlog: multi readers
* [#10890](https://github.com/apache/nuttx/pull/10890) syslog: ramlog: remove sched_[un]lock and rl_nwaiters
* [#11186](https://github.com/apache/nuttx/pull/11186) timers: Rewrite adjtime() implementation to work for RTC and tickless kernel
* [#11356](https://github.com/apache/nuttx/pull/11356) usbdev: Add callback for CONFIG_USBDEV_SOFINTERRUPT
* [#11042](https://github.com/apache/nuttx/pull/11042) usbdev: config USBDEV_TRACE_INITIALIDSET when disbale USBDEV_TRACE
* [#11161](https://github.com/apache/nuttx/pull/11161) usbdev: Solve some problems of USB hotplug
* [#10985](https://github.com/apache/nuttx/pull/10985) usrsock: Make the field of usrsock_request native alignment
* [#11103](https://github.com/apache/nuttx/pull/11103) usrsock: rpmsg_server: Keep msg order in recursive call
* [#11107](https://github.com/apache/nuttx/pull/11107) usrsock: socket fallback with ENETDOWN
* [#10874](https://github.com/apache/nuttx/pull/10874) video: fb: Add fb_register_device
* [#10812](https://github.com/apache/nuttx/pull/10812) video: goldfish: Remove the vsync residual code
* [#11380](https://github.com/apache/nuttx/pull/11380) video: goldfish: optimize goldfish fb register
* [#11249](https://github.com/apache/nuttx/pull/11249) video: video.c: modify set_buf call seqence in start_capture function.
* [#11224](https://github.com/apache/nuttx/pull/11224) video: wait when the vsync queue is full in FBIO_WAITFORVSYNC
* [#11382](https://github.com/apache/nuttx/pull/11382) virtio: Support for setting MAC addresses of the virtio-net interfaces
* [#11385](https://github.com/apache/nuttx/pull/11385) virtio: virtio-gpu: convert virito-gpu fb_register to virtio_gpu_fb_register
* [#11201](https://github.com/apache/nuttx/pull/11201) virtio: Virtio Qemu 8.1.2 issues fix
* [#11013](https://github.com/apache/nuttx/pull/11013) wireless: bluetooth: Add option to set the HCI TX thread affinity while running with SMP enabled
* [#11072](https://github.com/apache/nuttx/pull/11072) wireless: bluetooth: rpmsg depends on RPTUN

Board Support

...

New Board Support

Boards With Significant Improvements

File System

Bug Fixes

Significant Improvements

...

Improvements

Markdown
arm
* [#10813#10987](https://github.com/apache/nuttx/pull/10813) Add CONFIG_NET_ICMPv6_ROUTER_LIFETIME10987) gd32f4: add gd32f470i board support
* [#10893#11094](https://github.com/apache/nuttx/pull/1089311094) allowstm32: icmpv6add and udpsupport to find the dev by the ifindex with s_boundto.LINUM-STM32H753BI board
* [#10916#10990](https://github.com/apache/nuttx/pull/1091610990) stm32: add Fixsupport RNDISto compilationSTM32F401RC-RS485 errorboard
* [#10819#11358](https://github.com/apache/nuttx/pull/1081911358) localstm32h7: Fix the problem that local udp socketpair cannot release fifo files.linum-stm32h753bi: Add modbus example using usart6
* [#11443#11276](https://github.com/apache/nuttx/pull/1144311276) localseeed-xiao-rp2040: makeAdd theinitial call return of each process consistent with linuxboard support

xtensa
* [#11015#10976](https://github.com/apache/nuttx/pull/1101510976) local: Support SO_SNDBUF option in getsockopt
Add ESP32-2432S028 board
* [#11289#10928](https://github.com/apache/nuttx/pull/1128910928) loopbackesp32s3-box: FixSupport flagshardware of lo deviceversion 3

risc-v
* [#11324#11379](https://github.com/apache/nuttx/pull/1132411379) icmpv6:OptimizeInitial thesupport processfor of obtaining the IPv6 address through RA.CanMV-k230 board
* [#11010#11377](https://github.com/apache/nuttx/pull/1101011377) icmpv6:Add Fixsupport netfor maskPINE64 logicOx64 inBL808 icmpv6_setaddresses
SBC

Board Improvements

Markdown
* [#11197#11056](https://github.com/apache/nuttx/pull/1119711056) igmp:Modify call IFF_SET_IPv4 when igmp_sendtest "ramtest" path
* [#11384#11192](https://github.com/apache/nuttx/pull/1138411192) ipv6:remove obsolete CONFIG_EXAMPLES_FOC_IPHASE_ADC option

arm

Markdown
* [#11101](https://github.com/apache/nuttx/pull/11101) cxd56xx: Add cxd5610 gnss driver
Fix source address with many addresses in same network
* [#11378#11373](https://github.com/apache/nuttx/pull/1137811373) ipv6gd32f4xx: Movechange xxx_ipv6multicast from arch to common codegd32f470z board code

* [#10894#11193](https://github.com/apache/nuttx/pull/1089411193) netdbimx6: When set a dns nameserver which already exists, retrun OKFix sabre-6quad:libcxx

* [#11076#11310](https://github.com/apache/nuttx/pull/1107611310) netconfignrf52: Enable SOCK_CLOEXEC for ioctl socketsnrf52832-dk: add timer example
* [#11396#10835](https://github.com/apache/nuttx/pull/1139610835) netdevnrf52: Modify the logic for setting the IFF_RUNNING status of interfaces.remove CONFIG_ARMV7M_SYSTICK form tickless configs

* [#11110#11150](https://github.com/apache/nuttx/pull/1111011150) Simplifysama5: gettingAdd valueQSPI forsupport different domainSAMA5
* [#11054#11151](https://github.com/apache/nuttx/pull/11054) Support multiple IPv6 address per netdev11151) sama5: sama5d2-xult: add support for QSPI flash and nxffs

* [#11406#11117](https://github.com/apache/nuttx/pull/1140611117) tcpstm32: Recover from iob shortage with TCP_WRITE_BUFFERSb-g431b-esc1: don't use CONFIG_STM32_USE_LEGACY_PINMAP=y
* [#11126#11306](https://github.com/apache/nuttx/pull/1112611306) tcpstm32h7: Supportfix initial sequence number described in RFC 6528config conflict
* [#11009#11214](https://github.com/apache/nuttx/pull/1100911214) tunstm32h7: Fix the error of calling tun_close when tun_txavail or tun_txavail_work is executedlinum-stm32h753bi: Add support to RTC and alarm
* [#10986#11167](https://github.com/apache/nuttx/pull/1098611167) tunstm32h7: Fix the error of calling tun_close when tun_txavail or tun_txavail_work is executedlinum-stm32h753bi: Added suport to userlerds library.
* [#11372#11265](https://github.com/apache/nuttx/pull/1137211265) udp stm32f4: stm32f401rc-rs485: Add check when sending too big packet without IP fragsdcard support
* [#11210#11217](https://github.com/apache/nuttx/pull/1121011217) udp stm32f4: stm32f401rc-rs485: Add buttons support for SO_TIMESTAMP
* [#11120
* [#11169](https://github.com/apache/nuttx/pull/11169) stm32f4: stm32f401rc-rs485: add support to userleds
* [#11255](https://github.com/apache/nuttx/pull/11255) stm32f4: stm32f401rc-rs485: Fix f401rc flash size

risc-v

Markdown
* [#10736](https://github.com/apache/nuttx/pull/1112010736) esp32c3: udppm: modify ipv4 multicast to allow different conn to join simultaneously
* [#10878](https://github.com/apache/nuttx/pull/10878) usersock: Return -ENOSUPP directly if domain isn't equal to PF_INET/PF_INET6

Security Issues Fixed In This Release

Compatibility Concerns

Changes to Build System

Renamed or Modified Kconfig Options

Known Problems In This Release

 Let PM_PROCFS depend on FS_PROCFS_REGISTER
* [#11418](https://github.com/apache/nuttx/pull/11418) esp32c6: Add ostest defconfig
* [#11096](https://github.com/apache/nuttx/pull/11096) mpfs: Add option for board specific PMP configuration
* [#11262](https://github.com/apache/nuttx/pull/11262) qemu-rv: rv-virt/knsh: Set correct RAM_START and RAM_SIZE
* [#11397](https://github.com/apache/nuttx/pull/11397) qemu-rv: Virtio sound

sim

Markdown
* [#10960](https://github.com/apache/nuttx/pull/10960) fix Cygwin/MSYS2 ld: unrecognized option '-z'
* [#11290](https://github.com/apache/nuttx/pull/11290) nxscope: remove CONFIG_ALLSYMS=y

xtensa

Markdown
* [#11142](https://github.com/apache/nuttx/pull/11142) esp32: Add LVGL defconfig
* [#11229](https://github.com/apache/nuttx/pull/11229) esp32: Add support enconder to ESP32-2432S028
* [#10961](https://github.com/apache/nuttx/pull/10961) esp32: Add wifishare board config and documentation
* [#10996](https://github.com/apache/nuttx/pull/10996) esp32: Rename Shift game to Brickmatch and add an board example to esp32-devkitc
* [#11417](https://github.com/apache/nuttx/pull/11417) esp32<|s2|s3>_board_spiflash: Fix error message about SmartFS init
* [#11425](https://github.com/apache/nuttx/pull/11425) esp32s2: Increase init task stack size to 3072
* [#11156](https://github.com/apache/nuttx/pull/11156) esp32s3: Link stack checking function and data to SRAM when enable flash or PSRAM driver
* [#11342](https://github.com/apache/nuttx/pull/11342) esp32s3: add esp32s3-devkit:toywasm kconfig
* [#11295](https://github.com/apache/nuttx/pull/11295) esp32s3: Add rtc defconfig
* [#10885](https://github.com/apache/nuttx/pull/10885) ESP32S3-EYE: GPIO and button support
* [#10884](https://github.com/apache/nuttx/pull/10884) ESP32-S3-EYE: I2C, SPI and LCD support
* [#10883](https://github.com/apache/nuttx/pull/10883) ESP32-S3-EYE: Wifi

File System

Improvements

Markdown
* [#10995](https://github.com/apache/nuttx/pull/10995) Change inode_checkflags to static function
* [#11445](https://github.com/apache/nuttx/pull/11445) Fix hostfs after uid/gid changes
* [#11433](https://github.com/apache/nuttx/pull/11433) fat: Fix number of data clusters usable for fat driver
* [#11196](https://github.com/apache/nuttx/pull/11196) fat: fix ubsan warning of shift-out-of-bounds
* [#10706](https://github.com/apache/nuttx/pull/10706) fs_epoll: several epoll problems fix
* [#11125](https://github.com/apache/nuttx/pull/11125) fs_files.c: make sure that fs_getfilep is not interrupted when holding mutex
* [#11349](https://github.com/apache/nuttx/pull/11349) fs_gettype:add zipfs magic
* [#11446](https://github.com/apache/nuttx/pull/11446) hostfs:fix structure layout inconsistency in hostfs
* [#11090](https://github.com/apache/nuttx/pull/11090) inode: Change inode_unlink to static function
* [#11188](https://github.com/apache/nuttx/pull/11188) inode: check file list before memcpy
* [#11140](https://github.com/apache/nuttx/pull/11140) inode: improve the performance of get file pointer
* [#11318](https://github.com/apache/nuttx/pull/11318) proc: Fix groupfd to get fd by group instead of current tcb
* [#11449](https://github.com/apache/nuttx/pull/11449) procfs add poll support
* [#11360](https://github.com/apache/nuttx/pull/11360) procfs/cpuinfo: Zero copylen in cpuinfo_read
* [#11039](https://github.com/apache/nuttx/pull/11039) rename: fix use after free issue about rename
* [#11451](https://github.com/apache/nuttx/pull/11451) smartfs: Add necessary aligned access in smartfs_rename()
* [#11248](https://github.com/apache/nuttx/pull/11248) spiffs: correct mutex lock cycle of spiffs
* [#10804](https://github.com/apache/nuttx/pull/10804) support zipfs,can mount zipfile
* [#11232](https://github.com/apache/nuttx/pull/11232) tmpfs: fix an integer overflow
* [#10880](https://github.com/apache/nuttx/pull/10880) vfs: add munmap logic to pseudofs

Networking

Improvements

Markdown
* [#10813](https://github.com/apache/nuttx/pull/10813) Add CONFIG_NET_ICMPv6_ROUTER_LIFETIME
* [#10893](https://github.com/apache/nuttx/pull/10893) allow icmpv6 and udp to find the dev by the ifindex with s_boundto.
* [#10916](https://github.com/apache/nuttx/pull/10916) Fix RNDIS compilation error
* [#10819](https://github.com/apache/nuttx/pull/10819) local: Fix the problem that local udp socketpair cannot release fifo files.
* [#11443](https://github.com/apache/nuttx/pull/11443) local: make the call return of each process consistent with linux
* [#11015](https://github.com/apache/nuttx/pull/11015) local: Support SO_SNDBUF option in getsockopt
* [#11289](https://github.com/apache/nuttx/pull/11289) loopback: Fix flags of lo device
* [#11324](https://github.com/apache/nuttx/pull/11324) icmpv6:Optimize the process of obtaining the IPv6 address through RA.
* [#11010](https://github.com/apache/nuttx/pull/11010) icmpv6: Fix net mask logic in icmpv6_setaddresses
* [#11197](https://github.com/apache/nuttx/pull/11197) igmp: call IFF_SET_IPv4 when igmp_send
* [#11384](https://github.com/apache/nuttx/pull/11384) ipv6: Fix source address with many addresses in same network
* [#11378](https://github.com/apache/nuttx/pull/11378) ipv6: Move xxx_ipv6multicast from arch to common code
* [#10894](https://github.com/apache/nuttx/pull/10894) netdb: When set a dns nameserver which already exists, retrun OK
* [#11076](https://github.com/apache/nuttx/pull/11076) netconfig: Enable SOCK_CLOEXEC for ioctl sockets
* [#11396](https://github.com/apache/nuttx/pull/11396) netdev: Modify the logic for setting the IFF_RUNNING status of interfaces.
* [#11110](https://github.com/apache/nuttx/pull/11110) Simplify getting value for different domain
* [#11054](https://github.com/apache/nuttx/pull/11054) Support multiple IPv6 address per netdev
* [#11406](https://github.com/apache/nuttx/pull/11406) tcp: Recover from iob shortage with TCP_WRITE_BUFFERS
* [#11126](https://github.com/apache/nuttx/pull/11126) tcp: Support initial sequence number described in RFC 6528
* [#11009](https://github.com/apache/nuttx/pull/11009) tun: Fix the error of calling tun_close when tun_txavail or tun_txavail_work is executed
* [#10986](https://github.com/apache/nuttx/pull/10986) tun: Fix the error of calling tun_close when tun_txavail or tun_txavail_work is executed
* [#11372](https://github.com/apache/nuttx/pull/11372) udp: Add check when sending too big packet without IP frag
* [#11210](https://github.com/apache/nuttx/pull/11210) udp: Add support for SO_TIMESTAMP
* [#11120](https://github.com/apache/nuttx/pull/11120) udp: modify ipv4 multicast to allow different conn to join simultaneously
* [#10878](https://github.com/apache/nuttx/pull/10878) usersock: Return -ENOSUPP directly if domain isn't equal to PF_INET/PF_INET6

Security Issues Fixed In This Release

Compatibility Concerns

Markdown
* [#10605](https://github.com/apache/nuttx/pull/10605)  Implement ticket spinlock

A proposal to slove #1488

Implement ticket spinlock.


* [#10861](https://github.com/apache/nuttx/pull/10861) spinlock: Add spin_lock_init and spin_is_locked macro

align with Linux api naming.


* [#11102](https://github.com/apache/nuttx/pull/11102) sched: explicitly select the cpuload clock source configuration

Different configurations require different dependencies.
Explicitly select dependencies to avoid automatically selecting
inappropriate configurations.

* [#11334](https://github.com/apache/nuttx/pull/11334) stm32h7_adc: Dynamically set clock prescaler and BOOST

First commit is aligning naming and is a breaking change.

* [#10827](https://github.com/apache/nuttx/pull/10827) Improve adjtime() functionality

Prior pull request #9084 and issue #8858 added basic adjtime()
support for the SAMv7 platform.

This pull request adds support for STM32 platform.

In addition I have made a few changes to the adjtime() configuration
options:

1) Previously adjustments less than 1 microsecond per tick would be
   completely ignored. Now they are applied over a shorter period at
   a rate of 1 us per tick.

2) Previously CLOCK_ADJTIME_PERIOD was in units of 1/100th of second.
   Change to milliseconds to be more generally useful unit.
   Change setting name to CLOCK_ADJTIME_PERIOD_MS to make the unit change
   easier to notice.

3) Previously CLOCK_ADJTIME_SLEWLIMIT was in percentage.
   Most clock crystals have better accuracy than 1%, so the minimum slew
   rate was excessive. Change to CLOCK_ADJTIME_SLEWLIMIT_PPM with setting
   value in parts per million.

4) No need to use floating point math in clock_adjtime.c.

Impact

Users who have used CLOCK_ADJTIME_PERIOD and CLOCK_ADJTIME_SLEWLIMIT 
settings should update their configuration. New CLOCK_ADJTIME_PERIOD_MS is
10x the old period value, and new CLOCK_ADJTIME_SLEWLIMIT_PPM is 10000 times
the old slewlimit.

Known Problems In This Release

NuttX on Ox64: getprime + hello crashes 

Markdown
NuttShell (NSH) NuttX-12.4.0
nsh> uname -a
NuttX 12.4.0 96c2707737 Jan 15 2024 10:35:29 risc-v ox64
nsh> 
nsh> getprime
Set thread priority to 10
Set thread policy to SCHED_RR
Start thread #0
thread #0 started, looking for primes < 10000, doing 10 run(s)
thread #0 finished, found 1230 primes, last one was 9973
Done
getprime took 0 msec
nsh> 
nsh> hello
riscv_exception: EXCEPTION: Store/AMO page fault. MCAUSE: 000000000000000f, EPC: 0000000050208fcc, MTVAL: 0000000080200000
riscv_exception: PANIC!!! Exception = 000000000000000f

More Information

How to Download

...

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

...