Apache NuttX-12.4.0 Release Notes
What’s New In This Release
Improvements to Core OS
sched
- #10919 sched: assert: move the backtrace dump after the stack dump
- #11195 sched: assert: restore assertion registers to array of last registers
- #10858 sched: assert.c: Print process name in assert dump
- #11131 sched: Check for zero sleep time and yield CPU
- #11226 sched: delete check when pick nexttcb in readytorun list
- #11038 sched: env_dup: fix issue about USE_AFTER_FREE
- #11102 sched: explicitly select the cpuload clock source configuration
- #10816 sched: Fix dependencies of CONFIG_SCHED_CPULOAD_ settings
- #11036 sched: Follow o_cloexe semantics when calling the exec function
- #10867 sched: format: modify spin_lock_irqsave format
- #11018 sched: group/killchildren: replace syscall(2) to kernel api
- #10605 sched: Implement ticket spinlock
- #10827 sched: Improve adjtime() functionality
- #11231 sched: lock refine: remove sched_[un]lock in xxx_waitsample
- #11302 sched: misc/rwlock:Implementing read/write locks.
- #11347 sched: Print more information in assert
- #11017 sched: pthread/barrierwait: replace syscall(2) to kernel api
- #10929 sched: Remove the unused tcb argument from group_setupidlefiles
- #10776 sched: rw spinlock
- #11124 sched: rw spinlocks: cosmetic changes
- #11191 sched: sem_holder.c: When accessing SEM_WAITLIST, use holder’s addrenv
- #11257 sched: semaphore: Move POSIX regulated parts of semaphores into libc
- #11252 sched: sigaction: Expand si_user for non-kernel signals
- #10970 sched: smp call exit immediately when cpuset change to 0.
- #10861 sched: spinlock: Add spin_lock_init and spin_is_locked macro
- #11348 sched: Stack recored:Add maximum stack statistics when the task is running
- #9163 sched: Stop the sched timer when possible to save the power in tickless mode
- #10934 sched: support smp function call
- #11032 sched: task: [posix]spawn: Simplify how spawn attributes are handled
- #11241 sched: task: pthread_cancelpt: Fix nxtask_delete from another task group
- #11165 sched: task: pthread_cancelpt: Move cancel point handling to libc, data to TLS
- #11097 sched: task: Remove spawn_proxyattrs as obsolete implementation
- #11177 sched: taskfiles: skip unnecessary file open/close operations to improve performance
- #11250 sched: taskspawn: fix spawn fail if enable FDCHECK
- #10834 sched: timer: handle perf count overflow
mm
- #11068 mm: both use spin_lock_irqxx() when operated delaylist
- #11183 mm: free delay list when exceeding specified count
- #11258 mm: kmap: Finalize kmap implementation for RISC-V
- #10837 mm: kmap: Fix bug in kmm_unmap
- #10876 mm: kmap: Fix several issues with the kmm_map interface
- #11114 mm: kmap: Fix bad dependency to ARCH_VMA_MAPPING
- #11092 mm: improve SMP performance
- #11152 mm: record the maximum system memory usage
- #11168 mm: Remove mm_spinlock
- #10984 mm: Replace enter_critical_section with spin_irqsave
libs
- #11408 libc: add fgetwc, getwc, ungetwc wchar api implementation
- #10602 libc: add support for custom streams with fopencookie()
- #11011 libc: add support for memory buffer stream with fmemopen()
- #11274 libc: add support for open_memstream
- #11288 libc: arm: add support of PACBTI
- #10969 libc: Change errno to set_errno and get_errno
- #11294 libc: Fix -nan issue with f32
- #11198 libc: Fix improper handling of 64 bit types for libvsprintf
- #11322 libc: Handle PCREL_HI20/LO12_I/S relocations correctly
- #10994 libc: Improve stdio unlock version function
- #11364 libc: lib_slcd: fix encode/decode of binary nibble to/from ascii hex
- #11035 libc: localtime: fix the timezone error caused by minor error
- #11281 libc: machine/arm: align related implementations of armv7 architecture
- #10927 libc: machine: Remove FAR from sparc
- #11133 libc: realpath: allocate link buffer of pseudofs to save stack
- #10913 libc: Refine the implementation of fopen/fdopen
- #10993 libc: Remove the unused lib_libdtoa.c
- #11137 libc: Solve some problems encountered during cmake compilation
- #10992 libc: stdio: Change FILE buffer field from “unsigned char *” to “char *”
- #11063 libc: stdlib/lib_exit.c: fix multiple definition of __dso_handle and sethost.sh: add MSYS environmen for msys2
- #11447 libc: stream: add stream interface
- #11350 libc: Support gdbstub kernal debugging
- #11346 libc: Supports storing coredump into block devices
- #10862 libc: memfd: shm_unlink or unlink anonymous file
- #10891 libc: memfd: turn a runtime error into a linker error
- #10972 libds: add missing observer_b16.c to cmake build
- #10915 libdsp: lib_observer.c: use float numbers for some calculations
- #10979 libdsp: update LP_FILTER comment
- #11256 libm: Fix an issue that public header files are not exported
- #11162 libm: newlib: Change the download site to https
- #11386 libs: log2ceil: Move implementation of log2ceil to a common place
- #11043 libs: modlib: optimize code and add arch api for allocating data section
- #11394 libxx: cmake: remove useless code
- #11050 libxx: Silence warnings when building libcxx.
- #11301 libxx: upgrade llvm version to 17.0.6
- #10860 libxx: Use gnu++20 option only if using libcxx
misc
- #11242 Revert “libc/lib_bzero:Add bzero prototype.”
- #10881 arm, arm64, xtensa, libxx: Change sed -r to sed -E to support macOS
- #11027 assert: rename ASSERT to __ASSERT to avoid conflict
- #11025 audio: add amr format support
- #11055 binfmt/elf: Select ARCH_USE_TEXT_HEAP if ARCH_HAVE_TEXT_HEAP
- #11238 clock.h: use CONFIG_DEBUG_SCHED to test init ticks
- #10924 crypto/rsa_verify: export rsa verify via /dev/crypto
- #10978 debug/assert: decouple configuration of show file name feature
- #10809 dma: support source/destination address auto step
- #10870 fixedmath: add abs and sign operations
- #11111 ioctl: add definitions related to ethtool
- #11121 ioctl: add SIOCGIWNAME support
- #11026 kernel: replace all sem_* to nxsem_*: in kernel space
- #10849 langinfo: The character U+ff0c “,” could be confused with the ASCII character U…
- #11243 list: search prev item in reverse order
- #11221 poll: pollsetup should notify only one fd passed by caller
- #10892 refine: move BIT Macro to nuttx/bits.h
- #11218 spinlock: Move the inclusion of stdatomic.h to source file
- #10869 sys/types: supporting 32-bit IDs for gid_t/uid_t
- #11207 tcbinfo:remove total_num form tcbinfo.
- #11298 video: Update v4l2m2m interface & create videoio.h
- #11362 virtio.h: add virtio_has_feature api for virtio driver
Build System
Improvements
- #11007 Revert “make/archive: Use the full path name when matching or storing…
- #11047 applications: Move the test tools in the system to the testing
- #11395 cmake: build file support with libcxx 17.0.6
- #10982 cmake: correct cmake rule file name
- #11375 cmake: fix NUTTX_COMMON_DIR
- #11031 cmake: init RISC-V cmake qemu-rv build
- #10843 cmake: raise error if previous make build was not cleaned
- #10879 fix: TreeNode has same attribute with NodeMixin
- #10968 nuttx: generate nuttx.map file when enable debug link map.
- #11303 sh: Enhanced compilation system
- #11432 tools: config.mk: whether verbosity is enabled or not, should use bash
- #11098 tools: configure.c and tools/sethost.sh Add CONFIG_EXPERIMENTAL for configure windows native
Architectural Support
New Architecture Support
- #11319 arm:imxrt: Add support for imxrt1170 Soc and imxrt1170-evk board
- #11371 riscv: Add support for Bouffalo Lab BL808 SoC (T-Head C906)
Architecture Improvements
- #10836 arch: add a flag indicating that the chip doesn’t support DMA transfer from/to FLASH
- #10759 arch: add use_data to g_tcbinfo
- #11190 arch: dumponexit: unify dump on exit to common code
- #10828 arch: simplify ARCH_PERF_EVENTS related code
- #11160 arch: textheap: add _heapmember declare for text and data heap
arm
- #11282 clang: replace deprecated parameter
- #11170 Let’s old arm’s arm_doirq return register context like armv7-a
- #11413 debug:fix gdbstub clear fpb & dwt when already use jtag/swo bug
-
#11166 armv8-m: Fix typo error for NVIC_SYSHCON_HARDFAULTPENDED
-
#11118 cxd56xx: Support to get gnss firmware version
- #11398 imxrt: Extend FlexIO support to 117x
- #11436 imxrt: flexio move ifdef guard lower
- #11012 imxrt: NXP I2C non-DMA end only on stop with end of packet
- #11000 imxrt: nxp lpi2c calculated timeout can not be 0
- #11033 imxrt: NXP lpi2c DMA transaction only need the status conditioned
- #11164 imxrt: NXP Serial Do not wait on TXDMA semaphore
- #11070 imxrt: NXP Serial overcome race where DMA has not fetched TCD again
-
#11020 imxrt: serial Ensure the cache is updated if the DMA has updated again
-
#11199 imx6: Replace cpu_start_t with start_t
-
#10877 mx8mp: Add support for SPI
- #11203 nRF91: initial support for GNSS
-
#11308 nrf{52 |
53 |
91}: add missing support for 1 Mbps UART baud |
-
#10826 nrf{52 |
53 |
91}: add support for up_perf |
-
#10830 nrf{52 |
53 |
91}: fixes for timer |
-
#11172 rp2040: pwm: Fix errors at CONFIG_PWM_NCHANNELS=1
- #10817 sama5: Sort SAMA5D2 adc/tsd dma
- #10806 sama5: TSD trigger and pressure scaling issues
- #11307 samd212: invert tx and rx in spi_dma_setup
- #11212 samd212: sam_dmac: Fix compilation and fix SAM_DMAC_CHINTENCLR settings
- #10855 samv7: channel gain switching in aefc
-
#11312 samv7: sam_emac: Implement errata workaround for KSZ8061 PHY
-
#10847 {stm32 |
stm32f7 |
at32 |
samv7 |
imxrt}: fix for adc_setup |
- #11211 stm32: Add support for Ethernet packet timestamping and PTP timer
- #11175 stm32: foc: add support for board-specific ioctl
- #10833 stm32: Initialize LED driver during late initialization for nucleo-f446re
- #11181 stm32: stm32/stm32_adc.c: protect irq_attach with refcounter
- #11194 stm32: stm32_foc.c: rename some macros
- #11194 stm32: stm32_eth: Fix excessively long critical section in ifdown handlerm
-
#10865 stm32: UART needs to be disabled before changing setup
- #10824 stm32l4: ADC: Adds low level operations to start and stop DMA.
- #11154 stm32h7: serial: Do not wait on TXDMA semaphore
- #11323 stm32h7: serial refactor out tx dma semaphore
- #11332 stm32h7: serial Remove .txdmasem = SEM_INITIALIZER(1) bad cherry-pick
- #10841 stm32h7: stm32_oneshot.c: Fix format warnings.
- #11334 stm32h7: stm32h7_adc: Dynamically set clock prescaler and BOOST
-
#11367 stm32u5: fix EXTICR2,3,4 register offsets
- #10846 s32k1xx: Fix LPUART inversion warnings & config.
- #10844 s32k1xx: Fix warnings in PWM code.
- #11099 s32kxxx: flexcan doesn’t set srr bit for extended frames
- #11325 s32k3xx: NXP S32K3xx Fixes stuttering output
- #11106 s32k3xx: serial ensure the cache is updated if the DMA has updated again
arm64
- #10888 Add support for FIQ interrupts
- #11352 coredump: support arm64 coredump
- #11200 Disable ARCH_HAVE_FORK for arm64 as a precaution
- #11429 Fix GICv2 detection
- #10966 Remove unnecessary code in arm64_cpu_idle.S
- #11037 support relocate for aarch64
- #10917 support up_coherent_dcache function
- #10918 target cpuid calculation error in arm64_gic_raise_sgi function
- #11182 the bug of sscanf exception output in arm64 platform
- #11245 vector: no need to save x0 to sp
- #10904 XN should only be set when the attribute MT_EXECUTE_NEVER is set
risc-v
- #10856 addrenv: utils: Determine page table flags by type of vaddr
- #11113 addrenv: Fix static page table mapping (paddr instead of vaddr)
- #10838 addrenv: Fix the user VMA end address
- #10829 addrenv: Fix two SHM related issues
- #11389 arch_elf: Check for _HI20 relocation validity
- #11437 espressif: mcuboot: Fix dependency of the Espressif’s port MCUboot.
- #11034 espressif: Update esp-hal-3rdparty version
- #11024 litex/litex_emac: Add support for KSZ8061 ethernet PHY.
- #11029 litex/litex-emac: Add support for phy interrupts.
- #11028 litex/litex_gpio: Fix ISR dispatch when using higher GPIO indexes.
- #11365 mmu: Extend MMU Flags to 64-bit for T-Head C906 and Svpbmt
- #11283 mpfs: corespi: Round up divider to prevent overlock of SPI
- #10822 mpfs: corespi: Several speed optimizations to the FPGA driver
- #10921 mpfs: ethernet: Fix RX/TX buffer and descriptor handling
- #11405 mpfs: ethernet: Remove DMA_ENABLE hack
- #10922 mpfs: entrypoints: Fix potential R_RISCV_JAL linker error
- #11247 mpfs: ihc: cleanup DEBUGASSERTs and irq enabling
- #11355 mpfs: mpfs_head.S: Change j/jal to tail call
- #10923 mpfs: mpfs_head.S: Simplify clearing PMP
- #11233 mpfs: opensbi: update opensbi to version 1.3.1
- #11404 mpfs: usb: Use kernel memory instead of user memory for DMA
- #11403 mpfs: pmpcfg: Move PMPCFG registers to common location
- #10875 pgalloc.h: Return kernel vaddr for kernel RAM paddr
- #11374 riscv_pmp.c: Revert LOG2_CEIL back to run-time log2ceil function
- #11001 Simplify PMP configuration and code
- #11441 Update mode.h to add CSR_TVEC
sim
- #10930 crypto: Use mbedtls default configuration without special check
- #11381 sim_lcd: add open & close
- #11122 sim_netdriver: some sim defconfig have problems when using the network
- #11246 sim support 16bbp
- #11237 simwifi: Connect the wifi whose ssid contains the special charaters.
- #11235 simwifi: Escapes the special characters of ssid in the scan results.
- #11069 simwifi: Fix the error of the need length for scan bssinfo.
- #11112 simwifi: For scan results, parse and translate the Chinese ssid encoded by the wpa_cli.
- #11066 simwifi: host wlan0 obtains ip and set dns for wlan0 in the defwan wlan0
- #11108 simwifi: Transfer the special characters in ssid.
- #11104 simwifi: Support that get the connected Chinese essid.
- #11051 simwifi: Support that simwifi connects to the hidden ssid.
-
#11171 Replace [enter |
leave]critical_section with up_irq[save |
restore] |
- #11219 Remove the wrong comment from up_allocate_heap
- #11205 usb_rawgadget: remove halt operation
- #10910 Update Fix more generic for platforms that do not have execinfo.h
- #11030 wifidriver: Fix the scan error.
- #10886 wifidriver: Support the sim wifi.
x86_64
- #10899 Fix idle stack assignment
xtensa
- #11141 esp32: ble: Enable the BLE interrupt during an SPI flash operation
- #10859 esp32: ble: Fix task_create_wrapper CPU core ID passed as argument
- #10851 esp32: irq: Fix erroneous interrupt allocation for each CPU core
- #11139 esp32s2: Add rtc heap support
- #11300 esp32s2: Add RTC support
- #11138 esp32s2: Add SPI slave support
- #10850 esp32s2: add UART RS485 support
- #10823 esp32s2: Add support to TWAI/CANBus controller
- #11431 esp32s2: Add xtwdt and rwdt support
- #10873 esp32s2: ESP32-S3 I2C improvements
- #11259 esp32s3: Add rtc heap support
- #11180 esp32s3: Add RWDT support
- #11287 esp32s3: Add SPIRAM high memory support
- #11179 esp32s3: Add XTWDT support
- #10854 esp32s3: ble: enable the BLE interrupt during a SPI flash operation
- #11331 esp32s3: enable LIBC_ARCH_ATOMIC
- #11299 esp32s3: Fix esp32s3 mcuboot ota crash
- #11136 esp32s3: Fix issue regarding IRAM-enabled ISRs by fixing the linker
- #11285 esp32s3: Fix some ESP32S3 module reboot and QVL issues
- #10882 esp32s3: Fix the os halt issue when esp32s3 wlan has high-speed or long time d…
- #11427 esp32s3: Fixed bbpll not calibrated from bootloader issue
- #11328 esp32s3: GPIO clear pending interrupt status before enable IRQ
- #11329 esp32s3: QSPI disable DMA when sending command to slave
- #11286 esp32s3: Invalidate cache if the flash address used has a cache mapping.
- #11144 esp32s3: Support malloc from external RAM and internal RAM
- #11157 esp32s3: Support multiple PHY init data bin
- #11434 esp32s3: Support reading encrypted partitions
- #11052 esp32s3: Support to read data from flash to PSRAM
- #11340 esp32s3: Tasks use SPIRAM as stack can do SPI flash read/write/erase/map/unmap
- #11428 espressif/rmt: Implement a common RMT (Remote Control) driver for xtensa-based devices.
Driver Support
New Driver Support
- #10770 drivers: add regmap subsystems support.
- #10902 motor: Add stepper interface
- #11253 mtd: Adds support to W25Q20CL memory.
- #11149 mtd: mx25rxx: add support for MX25L25673G chip
- #11422 net: ksz9477: Add simple port-based static VLAN configuration
- #11339 net: lan9250: Add LAN9250 driver(SPI and QSPI mode)
- #11280 sensors: Add support for MS5607
- #10864 sensors: max31865:RTD-to-Digital Converter
- #10914 stepper: add DRV8825
- #11228 tee: add optee client driver module
Drivers Improvements
-
#11071 Kconfigs: rename {Rpmsg |
rpmsg} to RPMGS |
- #11061 can: Add new ioctls
- #10845 foc: foc_dummy.c: update dummy device state only if dev opened
- #11176 foc: return scaling factor for phase currents and BEMF via ioctl
- #10808 ioexpander: Minor fix for ioexpander driver
- #11147 lcd: add stride support for LCD driver
- #11185 lcd: change lcd stride from pixel to bytes
- #10926 math: mpi: add mpi driver in math
- #11240 misc: Rpmsgblk function optimization
- #11220 mmcsd: mmcsd_sdinitialize should save csd register into priv->csd
- #10909 mtd: filemtd:Fix teardown return error number EINVAL
- #11041 mtd: get mtd_geometry_s.model for mtd partition and optimize code
- #11187 mtd: s25fl1: fix compile warnings caused by incorrect variable print format
- #11370 mtd: w25q: add nxsig_usleep to busy waiting in w25qxxxjv_erase_sector()
- #11391 net: qemu/wifi: Add the virtual wifi function on the emulator.
- #11216 net: skeleton.c doesn’t compile without this patch if ioctls are enabled
- #10907 note: Change 0/1 to false/true
- #11153 note: delete sched_note_flatten
- #10840 note: optimize note performance
- #10920 note: remove remaining event code
- #11074 power: pm: use pm_staytimeout() in greedy_governor_activity()
- #11132 rptun: check the status before stop remote proc
- #11222 rtc: RTC driver improvement
- #10831 rtt: make RTT console optional
- #11296 segger: rtt: correct macro name to avoid unable to change default mode
- #11419 sensors: mx56xx: Add support for second order compensation
- #11426 sensors: mx56xx: Fix threshold and calculation
- #11178 serial: uart_tcsendbreak: Remove cancel point, as tcsendbreak is not one
- #11402 syslog: ramlog: improve ramlog performance
- #11392 syslog: ramlog: multi readers
- #10890 syslog: ramlog: remove sched_[un]lock and rl_nwaiters
- #11186 timers: Rewrite adjtime() implementation to work for RTC and tickless kernel
- #11356 usbdev: Add callback for CONFIG_USBDEV_SOFINTERRUPT
- #11042 usbdev: config USBDEV_TRACE_INITIALIDSET when disbale USBDEV_TRACE
- #11161 usbdev: Solve some problems of USB hotplug
- #10985 usrsock: Make the field of usrsock_request native alignment
- #11103 usrsock: rpmsg_server: Keep msg order in recursive call
- #11107 usrsock: socket fallback with ENETDOWN
- #10874 video: fb: Add fb_register_device
- #10812 video: goldfish: Remove the vsync residual code
- #11380 video: goldfish: optimize goldfish fb register
- #11249 video: video.c: modify set_buf call seqence in start_capture function.
- #11224 video: wait when the vsync queue is full in FBIO_WAITFORVSYNC
- #11382 virtio: Support for setting MAC addresses of the virtio-net interfaces
- #11385 virtio: virtio-gpu: convert virito-gpu fb_register to virtio_gpu_fb_register
- #11201 virtio: Virtio Qemu 8.1.2 issues fix
- #11013 wireless: bluetooth: Add option to set the HCI TX thread affinity while running with SMP enabled
- #11072 wireless: bluetooth: rpmsg depends on RPTUN
Board Support
New Board Support
arm
- #10987 gd32f4: add gd32f470i board support
- #11094 stm32: add support to LINUM-STM32H753BI board
- #10990 stm32: add support to STM32F401RC-RS485 board
- #11358 stm32h7: linum-stm32h753bi: Add modbus example using usart6
- #11276 seeed-xiao-rp2040: Add initial board support
xtensa
- #10976 Add ESP32-2432S028 board
- #10928 esp32s3-box: Support hardware version 3
risc-v
- #11379 Initial support for CanMV-k230 board
- #11377 Add support for PINE64 Ox64 BL808 SBC
Board Improvements
- #11056 Modify test “ramtest” path
- #11192 remove obsolete CONFIG_EXAMPLES_FOC_IPHASE_ADC option
arm
-
#11101 cxd56xx: Add cxd5610 gnss driver
-
#11373 gd32f4xx: change gd32f470z board code
-
#11193 imx6: Fix sabre-6quad:libcxx
- #11310 nrf52: nrf52832-dk: add timer example
-
#10835 nrf52: remove CONFIG_ARMV7M_SYSTICK form tickless configs
- #11150 sama5: Add QSPI support SAMA5
-
#11151 sama5: sama5d2-xult: add support for QSPI flash and nxffs
- #11117 stm32: b-g431b-esc1: don’t use CONFIG_STM32_USE_LEGACY_PINMAP=y
- #11306 stm32h7: fix config conflict
- #11214 stm32h7: linum-stm32h753bi: Add support to RTC and alarm
- #11167 stm32h7: linum-stm32h753bi: Added suport to userlerds library.
- #11265 stm32f4: stm32f401rc-rs485: Add sdcard support
- #11217 stm32f4: stm32f401rc-rs485: Add buttons support
- #11169 stm32f4: stm32f401rc-rs485: add support to userleds
- #11255 stm32f4: stm32f401rc-rs485: Fix f401rc flash size
risc-v
- #10736 esp32c3: pm: Let PM_PROCFS depend on FS_PROCFS_REGISTER
- #11418 esp32c6: Add ostest defconfig
- #11096 mpfs: Add option for board specific PMP configuration
- #11262 qemu-rv: rv-virt/knsh: Set correct RAM_START and RAM_SIZE
- #11397 qemu-rv: Virtio sound
sim
- #10960 fix Cygwin/MSYS2 ld: unrecognized option ‘-z’
- #11290 nxscope: remove CONFIG_ALLSYMS=y
xtensa
- #11142 esp32: Add LVGL defconfig
- #11229 esp32: Add support enconder to ESP32-2432S028
- #10961 esp32: Add wifishare board config and documentation
- #10996 esp32: Rename Shift game to Brickmatch and add an board example to esp32-devkitc
-
#11417 esp32< |
s2 |
s3>_board_spiflash: Fix error message about SmartFS init |
- #11425 esp32s2: Increase init task stack size to 3072
- #11156 esp32s3: Link stack checking function and data to SRAM when enable flash or PSRAM driver
- #11342 esp32s3: add esp32s3-devkit:toywasm kconfig
- #11295 esp32s3: Add rtc defconfig
- #10885 ESP32S3-EYE: GPIO and button support
- #10884 ESP32-S3-EYE: I2C, SPI and LCD support
- #10883 ESP32-S3-EYE: Wifi
File System
Improvements
- #10995 Change inode_checkflags to static function
- #11445 Fix hostfs after uid/gid changes
- #11433 fat: Fix number of data clusters usable for fat driver
- #11196 fat: fix ubsan warning of shift-out-of-bounds
- #10706 fs_epoll: several epoll problems fix
- #11125 fs_files.c: make sure that fs_getfilep is not interrupted when holding mutex
- #11349 fs_gettype:add zipfs magic
- #11446 hostfs:fix structure layout inconsistency in hostfs
- #11090 inode: Change inode_unlink to static function
- #11188 inode: check file list before memcpy
- #11140 inode: improve the performance of get file pointer
- #11318 proc: Fix groupfd to get fd by group instead of current tcb
- #11449 procfs add poll support
- #11360 procfs/cpuinfo: Zero copylen in cpuinfo_read
- #11039 rename: fix use after free issue about rename
- #11451 smartfs: Add necessary aligned access in smartfs_rename()
- #11248 spiffs: correct mutex lock cycle of spiffs
- #10804 support zipfs,can mount zipfile
- #11232 tmpfs: fix an integer overflow
- #10880 vfs: add munmap logic to pseudofs
Networking
Improvements
- #10813 Add CONFIG_NET_ICMPv6_ROUTER_LIFETIME
- #10893 allow icmpv6 and udp to find the dev by the ifindex with s_boundto.
- #10916 Fix RNDIS compilation error
- #10819 local: Fix the problem that local udp socketpair cannot release fifo files.
- #11443 local: make the call return of each process consistent with linux
- #11015 local: Support SO_SNDBUF option in getsockopt
- #11289 loopback: Fix flags of lo device
- #11324 icmpv6:Optimize the process of obtaining the IPv6 address through RA.
- #11010 icmpv6: Fix net mask logic in icmpv6_setaddresses
- #11197 igmp: call IFF_SET_IPv4 when igmp_send
- #11384 ipv6: Fix source address with many addresses in same network
- #11378 ipv6: Move xxx_ipv6multicast from arch to common code
- #10894 netdb: When set a dns nameserver which already exists, retrun OK
- #11076 netconfig: Enable SOCK_CLOEXEC for ioctl sockets
- #11396 netdev: Modify the logic for setting the IFF_RUNNING status of interfaces.
- #11110 Simplify getting value for different domain
- #11054 Support multiple IPv6 address per netdev
- #11406 tcp: Recover from iob shortage with TCP_WRITE_BUFFERS
- #11126 tcp: Support initial sequence number described in RFC 6528
- #11009 tun: Fix the error of calling tun_close when tun_txavail or tun_txavail_work is executed
- #10986 tun: Fix the error of calling tun_close when tun_txavail or tun_txavail_work is executed
- #11372 udp: Add check when sending too big packet without IP frag
- #11210 udp: Add support for SO_TIMESTAMP
- #11120 udp: modify ipv4 multicast to allow different conn to join simultaneously
- #10878 usersock: Return -ENOSUPP directly if domain isn’t equal to PF_INET/PF_INET6
Security Issues Fixed In This Release
Compatibility Concerns
- #10605 Implement ticket spinlock
A proposal to slove #1488
Implement ticket spinlock.
- #10861 spinlock: Add spin_lock_init and spin_is_locked macro
align with Linux api naming.
- #11102 sched: explicitly select the cpuload clock source configuration
Different configurations require different dependencies.
Explicitly select dependencies to avoid automatically selecting
inappropriate configurations.
- #11334 stm32h7_adc: Dynamically set clock prescaler and BOOST
First commit is aligning naming and is a breaking change.
- #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
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