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

...

New Board Support

Markdown

Board Improvements

...

File System

Improvements

Markdown
arm
* [#10995#10987](https://github.com/apache/nuttx/pull/1099510987) Change inode_checkflags to static functiongd32f4: add gd32f470i board support
* [#11445#11094](https://github.com/apache/nuttx/pull/1144511094) stm32: Fixadd hostfssupport after uid/gid changesto LINUM-STM32H753BI board
* [#11433#10990](https://github.com/apache/nuttx/pull/1143310990) fatstm32: Fixadd numbersupport ofto data clusters usable for fat driverSTM32F401RC-RS485 board
* [#11196#11358](https://github.com/apache/nuttx/pull/1119611358) fat stm32h7: linum-stm32h753bi: fixAdd ubsanmodbus warningexample of shift-out-of-boundsusing usart6
* [#10706#11276](https://github.com/apache/nuttx/pull/1070611276) fs_epollseeed-xiao-rp2040: severalAdd epollinitial problems fixboard support

xtensa
* [#11125#10976](https://github.com/apache/nuttx/pull/1112510976) fs_files.c: make sure that fs_getfilep is not interrupted when holding mutexAdd ESP32-2432S028 board
* [#11349#10928](https://github.com/apache/nuttx/pull/1134910928) fs_gettype:add zipfs magic
* [#11446esp32s3-box: Support hardware version 3

risc-v
* [#11379](https://github.com/apache/nuttx/pull/1144611379) hostfs:fixInitial structuresupport layoutfor inconsistency in hostfsCanMV-k230 board
* [#11090#11377](https://github.com/apache/nuttx/pull/1109011377) inode: Change inode_unlink to static function
* [#11188Add support for PINE64 Ox64 BL808 SBC

Board Improvements

Markdown
* [#11056](https://github.com/apache/nuttx/pull/1118811056) inode:Modify checktest file list before memcpy"ramtest" path
* [#11140#11192](https://github.com/apache/nuttx/pull/1114011192) inode:remove obsolete CONFIG_EXAMPLES_FOC_IPHASE_ADC option

arm

Markdown
improve the performance of get file pointer
* [#11318#11101](https://github.com/apache/nuttx/pull/1131811101) proccxd56xx: FixAdd groupfdcxd5610 to get fd by group instead of current tcb
* [#11449gnss driver

* [#11373](https://github.com/apache/nuttx/pull/1144911373) gd32f4xx: procfschange addgd32f470z pollboard supportcode

* [#11360#11193](https://github.com/apache/nuttx/pull/1136011193) procfs/cpuinfoimx6: Zero copylen in cpuinfo_readFix sabre-6quad:libcxx

* [#11039#11310](https://github.com/apache/nuttx/pull/1103911310) renamenrf52: fix use after free issue about renamenrf52832-dk: add timer example
* [#11451#10835](https://github.com/apache/nuttx/pull/1145110835) smartfsnrf52: Add necessary aligned access in smartfs_rename()remove CONFIG_ARMV7M_SYSTICK form tickless configs

* [#11248#11150](https://github.com/apache/nuttx/pull/1124811150) spiffssama5: correctAdd mutexQSPI lock cycle of spiffssupport SAMA5
* [#10804#11151](https://github.com/apache/nuttx/pull/1080411151) support zipfs,can mount zipfilesama5: sama5d2-xult: add support for QSPI flash and nxffs

* [#11232#11117](https://github.com/apache/nuttx/pull/1123211117) tmpfsstm32: fix an integer overflowb-g431b-esc1: don't use CONFIG_STM32_USE_LEGACY_PINMAP=y
* [#10880#11306](https://github.com/apache/nuttx/pull/1088011306) vfsstm32h7: addfix munmap logic to pseudofs

Networking

Improvements

Markdown
config conflict
* [#10813#11214](https://github.com/apache/nuttx/pull/10813) Add CONFIG_NET_ICMPv6_ROUTER_LIFETIME11214) stm32h7: linum-stm32h753bi: Add support to RTC and alarm
* [#10893#11167](https://github.com/apache/nuttx/pull/1089311167) allow icmpv6 and udpstm32h7: linum-stm32h753bi: Added suport to find the dev by the ifindex with s_boundto.
* [#10916userlerds library.
* [#11265](https://github.com/apache/nuttx/pull/1091611265) Fix RNDIS compilation error stm32f4: stm32f401rc-rs485: Add sdcard support
* [#10819#11217](https://github.com/apache/nuttx/pull/1081911217) localstm32f4: Fix the problem that local udp socketpair cannot release fifo files.stm32f401rc-rs485: Add buttons support
* [#11443#11169](https://github.com/apache/nuttx/pull/1144311169) localstm32f4: make the call return of each process consistent with linuxstm32f401rc-rs485: add support to userleds
* [#11015#11255](https://github.com/apache/nuttx/pull/1101511255) localstm32f4: Support SO_SNDBUF option in getsockopt
stm32f401rc-rs485: Fix f401rc flash size

risc-v

Markdown
* [#11289#10736](https://github.com/apache/nuttx/pull/1128910736) loopbackesp32c3: pm: FixLet flagsPM_PROCFS ofdepend lo deviceon FS_PROCFS_REGISTER
* [#11324#11418](https://github.com/apache/nuttx/pull/1132411418) icmpv6esp32c6:Optimize theAdd process of obtaining the IPv6 address through RA.ostest defconfig
* [#11010#11096](https://github.com/apache/nuttx/pull/1101011096) icmpv6mpfs: Add Fixoption netfor maskboard logicspecific inPMP icmpv6_setaddressesconfiguration
* [#11197#11262](https://github.com/apache/nuttx/pull/1119711262) igmp: call IFF_SET_IPv4 when igmp_send qemu-rv: rv-virt/knsh: Set correct RAM_START and RAM_SIZE
* [#11384#11397](https://github.com/apache/nuttx/pull/1138411397) ipv6qemu-rv: Fix source address with many addresses in same networkVirtio sound

sim

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

xtensa

Markdown
xxx_ipv6multicast from arch to common code
* [#10894#11142](https://github.com/apache/nuttx/pull/1089411142) netdbesp32: WhenAdd set a dns nameserver which already exists, retrun OKLVGL defconfig
* [#11076#11229](https://github.com/apache/nuttx/pull/1107611229) netconfigesp32: EnableAdd SOCK_CLOEXECsupport forenconder ioctlto socketsESP32-2432S028
* [#11396#10961](https://github.com/apache/nuttx/pull/1139610961) netdevesp32: ModifyAdd thewifishare logicboard forconfig settingand the IFF_RUNNING status of interfaces.
* [#11110documentation
* [#10996](https://github.com/apache/nuttx/pull/1111010996) Simplifyesp32: gettingRename valueShift forgame differentto domain
* [#11054](https://github.com/apache/nuttx/pull/11054) Support multiple IPv6 address per netdevBrickmatch and add an board example to esp32-devkitc
* [#11406#11417](https://github.com/apache/nuttx/pull/1140611417) tcpesp32<|s2|s3>_board_spiflash: RecoverFix fromerror iobmessage shortageabout with TCP_WRITE_BUFFERSSmartFS init
* [#11126#11425](https://github.com/apache/nuttx/pull/1112611425) tcpesp32s2: SupportIncrease initialinit sequencetask numberstack describedsize into RFC 65283072
* [#11009#11156](https://github.com/apache/nuttx/pull/1100911156) tunesp32s3: FixLink the error of calling tun_close when tun_txavail or tun_txavail_work is executedstack checking function and data to SRAM when enable flash or PSRAM driver
* [#10986#11342](https://github.com/apache/nuttx/pull/1098611342) tunesp32s3: Fix the error of calling tun_close when tun_txavail or tun_txavail_work is executedadd esp32s3-devkit:toywasm kconfig
* [#11372#11295](https://github.com/apache/nuttx/pull/1137211295) udpesp32s3: Add check when sending too big packet without IP fragrtc defconfig
* [#11210#10885](https://github.com/apache/nuttx/pull/1121010885) udpESP32S3-EYE: AddGPIO supportand forbutton SO_TIMESTAMPsupport
* [#11120#10884](https://github.com/apache/nuttx/pull/1112010884) 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

Changes to Build System

Renamed or Modified Kconfig Options

...

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

...