NuttX-12.2.0
What’s New In This Release
Changes to Core OS sched
#9084 sched: add adjtime() interface
#9132 sched: add the CPU bitset to initialize the non-exclusive CPU
#9583 sched: automatically find deadlocks when assert
#7464 sched: fix context switching with locked scheduler
#8965 sched: Fixed improper access of g_pidhash.
#8867 sched: Optimize implementation of strsignal()
#9030 sched/addrenv, binfmt: Always allocate address environment from heap
#9090 sched/addrenv: Implement re-entrancy for addrenv_select()
#9021 sched/addrenv: Miscellaneous clean-up and fixes
#8938 sched/assert: Assert if a thread attempts to post a semaphore incorrectly.
#9595 sched/assert: Change show_xxx to dump_xxx
#9498 sched/assert: disable function/line print if DEBUG_ASSERTIONS_FILENAME disabled
#9516 sched/assert: Optimizing assert handling
#9183 sched/assert: show stacks with the sp from regs
#9184 sched/assert: sig_timewait:remove useless assert
#8955 sched/assert: Simplify the fatal detection logic
#9528 sched/group: Ensure that the setting of tg_members if safe in SMP
#9003 sched/irq: optimizing IRQMONITOR, move up_perf_convert to irq_procfs
#9369 sched/misc: add coredump support on assert
#8743 sched/nxmutex: mutex priority inheritance optimization
#9066 sched/pthread: pthread_barrierwait can not be preemption
#9067 sched/pthread: pthread_cond_wait dead lock
#9002 sched/pthread: replace sched_lock to enter_critical_section
#9539 sched/pthread: Return ESRCH when the task is in the process of exit.
#9202 sched/pthread: sched_lock should replace with enter_critical_secion
#9091 sched/sem/sem_init: Change sem_xxx -> nxsem_xxx in kernel modules
#8951 sched/semaphore: rework semaphore holder check for priority inheritance
#9039 sched/sched: address performance concerns for sched_lock in non-SMP case
#8988 sched/sched_note: add function auto-tracing
#8786 sched/sig_timewait:changes the macro for waitticks
#9203 sched/signal: fix the issue of asynchronous signal processing
#9299 sched/signal: Signal must be masked when it is delivered to a signal handler
#9100 sched/spawn: remove spawn proxy thread to simplify task/posix_spawn()
#9527 sched/tls: remove PTHREAD_CLEANUP from Kconfig
#9007 sched/wqueue: fix issue about worker can’t wake up thread before work_thread running mm
#9417 mm: add invalid pid dump when malloc failed
#9050 mm: circbuf support write or read buffer direct
#9561 mm: compute the heap info more accuracy
#9564 mm: Compute the heap info more accuracy(2)
#9411 mm: Correct the callsite of mm_mallinfo
#9435 mm: Dump all memory blocks on allocation failure
#9555 mm: mm leak dump build error fix and memory foreach optimization
#9601 mm: mm_lock.c: reformat preprocessor
#9151 mm: memory allocations return valid pointer when request 0 size
#9563 mm: Rename PID_MM_INVALID to PID_MM_LEAK
#9560 mm: Rename mm_memdump_s to malltask
#9335 mm: Support memdump can show increased memory
#9476 mm/kmm_map: add missing FAR qualifiers
#9368 mm/kmm_map: add support to dynamically map pages into kernel virtual
#9055 mm/mm_map: give the mm_map as parameter to the mm_map functions
#9488 mm/mempool: allocate a chunk for multiple mempool avoid memory fragmentation
#9051 mm/mempool: fix bug, use incorrect free in mempool init
#9418 mm/mempool: fix bug read out of bounds when realloc
#9337 mm/mempool: fix bug when calculating mempool delta
#9052 mm/mempool: fix memory consumption double counting issue
#9433 mm/mempool: fix seqnumber statistics error in memdump
#9474 mm/mempool: remove nexpend and totalsize from mempool_s
#9336 mm/mempool: support when malloc failed dump mempool info
#9416 mm/mempool: Support when malloc failed dump mempool info libs
#9284 libc: add regex implementation
#9148 libc: Add setbuffer to stdio.
#9062 libc: cleanup per-thread resource in exit/quick_exit
#8958 libc: correct config define of arch functions
#9480 libc: fix build break on kernel mode
#9181 libc: fixed armv7-m strcmp build issue
#9580 libc: lib_strftime: Fix %I to avoid printing 00:xx AM/PM
#9557 libc: lib_syslograwstream: fix bug when iob alloc failed
#9106 libc: memcpy M-profile PACBTI-enablement
#9543 libc: netdev/upper: Optimize on quota related operations
#8946 libc: print error code for unknown errors in strerror/gai_strerror
#9585 libc: Support gcc FORTIFY_SOURCE features
#9513 libc: Prefer to implement memfd on top of shm
#9193 libc/armv8-m: fix build break if MVE is disabled
#9497 libc/fdcheck: add fdcheck module
#9536 libc/fdcheck: compatibility enhancement
#9547 libc/fdcheck: Fix undefined reference to `getppid’
#9405 libc/fdsan: add fdsan protection for all file pointers
#9496 libc/fdsan: keep f_tag unchanged
#9384 libc/libc.csv: Correct type of return value for strstr
#8802 libc/locale: support iconv_open,iconv,iconv_close
#9260 libc/misc: add Fdsan module
#9076 libc/mm: fix files can not be compiled incrementally
#9534 libc/netdb/dns: fix dns wrong response ID error
#9238 libc/pthread: fix nxstyle errors
#9199 libc/pthread: fixed pthread incorrect return values
#9207 libc/qsort: fix invalid-pointer-pair if enable detect_invalid_pointer_pairs=2
#9456 libc/regex: provide a separate kconfig for regex
#9365 libc/stream/hexdump: add hexdump stream to dump binary to syslog
#9138 libc/string: select arch’s libc for kernel/userspace optionally
#9605 libc/unistd: add getpgrp function
#9448 libc/wchar: Implement vswprintf
#9487 libdsp: Add average filter
#9061 libm/newlib: add newlib/libm support
#9083 libm/openlibm: add math library openlibm support.
#9125 libm/libmcs: add math library libmcs support
#9044 libxx: remove redundant code #9158 libelf: Support prioritized init and fini arrays Misc
#9610 binfmt: Always include arch/elf.h in include/nuttx/elf.h
#9395 binfmt/elf: Support loading fully linked executables.
#9426 binfmt/elf/coredump: alignment stack buffer to 64 to match gdb request
#9376 binfmt/elf/coredump: add sanity checks for stack pointer
#9366 binfmt/elf/coredump: add support of dump task stack without memory segments
#9318 binfmt/elf/coredump: correct register offset after xcp.regs update
#9099 binfmt/execmodule: correct destroy flow
#9568 Debug:support python script auto debug nuttx kernel
#9600 Fix assertion of free a wrong heap
#9307 Fix windows compile errors because of double quotes in config
#9147 include/err: Enforce c linkage for err and warn functions.
#9459 include/nuttx/spi.h Fix SPIDEVID_TYPE macro definition
#8956 Let BOARDIOC_SOFTRESETCAUSE_ASSERT equals to the default value of BOARD_ASSERT_RESET_VALUE
#9274 modify type of numbytes in audio_buf_desc_s from uint16_t to apb_samp_t
#9348 openamp: decoupling the transport layer and virtio device layer
#9406 openamp: virtio.h add version field in device id table struct
#9553 Openamp/Kconfig: add cache and debug config for openamp
#9149 Remove #warning in the unnecessary places
#9594 Replace $(INCDIR) and ${DEFINE} with $(INCDIR_PREFIX) and $(DEFINE_PREFIX)
#8726 Replace the unsafe function(strcat, sprintf) with the safe one(strlcat, snprintf)
#9509 sdcard: update sdcard detection to avoid 0xff assignment to bool type
#9424 semantic/parser: fix compile warning found by sparse
#9142 signal: add macro NSIG
#9201 system/signal: in interrupting the context, regs modify logic error
Changes to the Build System Improvements
#9400 tools: Add way to get current defconfig name on runtime
#9572 tools: Fix CONFIG_BASE_DEFCONFIG generation
#9107 tools: Fix some error in Windows native build
#9462 tools: Support string upper/lower case in make
#9334 tools/mkallsyms: add exception handle
#9069 tools/mksymtab: Fix a compilation warning
#9210 tools/nuttx-gdbinit/armv7-a: reorder and synchronization registers of save/restore
#9198 tools/nuttx-gdbinit: improve experience of gdb backend scripts
#9234 tools/nuttx-gdbinit/armv7-a: add fpu support
#9211 tools/Unix: treat kconfig warning as failure
#9231 tools/refresh.sh: Add option to refresh all archs or all chips
Architectural Support New Architectures
Improvements
#9115 arch: Return directly when arch not support interrupt context save
#8823 arch: add more dependent header file
#9296 arch: Save sigdeliver into xcp in the case of signal self delevery
#9131 arch/assert: Distinguish between assert and exception
#8948 arch/boards: fix stm32f411-mininum:nsh compilation failure
#9343 arch/all: in smp pthread_cancel occasionally deadlock except for arm64
#9313 arch/arm: Add a “cc” flag
#8814 arch/arm: Add armv7m assembly strcpy.
#9019 arch/arm: change up_saveusercontext to assembly code
#8863 arch/arm: enable eoimode only select CONFIG_XXX_GIC_EOIMODE
#9338 arch/arm: Fix Kconfig style and texts
#9072 arch/arm: relax compiler check for workaround with “GCC 12.2”
#9085 arch/arm: Resolving warnings for assembly instructions
#9310 arch/arm: set arm_testset to weak function
#9018 arch/arm: update running task when context switch occurred
#9048 arch/arm/{armv7a/armv7r}l2cc: Don’t repeat disabling the cache when the cache is already disabled
#8930 arch/armv7-r: add armv7-r smp support
#9311 arch/armv8-m: add ARMV8M_TRUSTZONE_HYBRID feature
#9458 arch/armv8-r: Fix warning when configuring fvp-armv8r:nsh_smp
#9478 arch/arm/backtrace: validate PC register before process unwind
#9121 arch/arm/unwind: EABI unwind needs frame pointer support
#9034 arch/arm/cxd56: Add lowerhalf interface to keep power when cold sleep
#9469 arch/arm/gd32f4: add sdio driver for GD32F4
#9493 arch/arm/gd32f4/Fixed Kconfig options for obsolete tickless systick options.
#9325 arch/arm/imxrt: Base address missing from imxrt_flexio_get_shifter_buffer_address returned address
#9607 arch/arm/imxrt: Fix implicit function declaration
#9024 arch/arm/imxrt: FlexIO support
#9324 arch/arm/imxrt: Wrong dlastsga or slast setting if doff or soff larger than one
#9026 arch/arm/imx6: with ar8031
#9346 arch/arm/kinetis: s32k1/s32k3:edma {s|d}last needs to be total xfer size
#9001 arch/arm/kinetis/s32k3xx: EMAC MCAST support
#9402 arch/arm/{nrf52|nrf53}: fix IN endpoint completion logic
#9508 arch/arm/{nrf52|nrf53}: various fixes to improve USB stability
#9444 arch/arm/{nrf52|nrf53}: validate if EasyDMA transfer is possible
#9431 arch/arm/nrf52: add MCUboot support
#9008 arch/arm/nrf52: add QSPI support
#9387 arch/arm/nrf53: add QSPI support
#8795 arch/arm/nrf53: add support for RPMSG HCI
#9359 arch/arm/nrf53: add USBD support
#8827 arch/arm/nrf52: nvmc and flash should depends on ALLOW_BSD_COMPONENTS=y
#9340 arch/arm/nrf53: add I2C support ported from nrf52
#9442 arch/arm/nrf53: add MCUboot support
#9351 arch/arm/nrf53: add SPI support ported from nrf52
#9356 arch/arm/nrf53: correct text config I2C3 Master
#9252 arch/arm/sama5: add ATSAMA5D2/D4 Secure Fuse Controller (SFC) driver
#9377 arch/arm/sama5: Add touchscreen calibration IOCTLs, structs, and implement for ATSAMA5D2
#9215 arch/arm/sama5: Fix OHCI SchedulingOverrun interrupt storm.
#9390 arch/arm/sama5: improve LCD support and correct minor errors
#9286 arch/arm/sama5: Make EHCI work with slow devices.
#9357 arch/arm/samv7: remove alignment check that is not needed
#9112 arch/arm/sama5: SAMA5D2 Class D
#9341 arch/arm/sama5: SAMA5D2 SPI DMA fix and Performance Enhancements
#9157 arch/arm/sama5: Use a recursive mutex to fix OHCI deadlock.
#9604 arch/arm/stm: Fix duplicate include guard
#8992 arch/arm/stm32: Remove GPIO_{SPEED|MODE}_xxx and provide a legacy path for lazy migration
#9491 arch/arm/stm32: Removed unused STM32_TICKLESS_SYSTICK Kconfig option.
#8976 arch/arm/stm32/otg: raise an assertion if IN request is not possible to transfer
#8943 arch/arm/stm32/stm32_eth: Added error handling for abnormal interrupts.
#8975 arch/arm/{stm32f7,stm32h7,stm32l4}/sdmmc: callback support requires HPWORK
#9228 arch/arm/stm32h7: sdmmc It is not an error if no wait was needed
#8945 arch/arm/stm32h7/otg: support for OTG HS external ULPI
#8969 arch/arm/stm32h7/otgdev: FS transceiver must be enabled if OTGFS enabled
#9006 arch/arm/stm32h7/rcc: make VOS0 configurable from board.h
#9088 arch/arm/stm32_f7/h7_eth: Added error handling for abnormal interrupts.
#9218 arch/arm/stm32f0l0g0: Fix stm32f0l0g0 GPIO definitions
#9216 arch/arm/tiva: Fix i2c message buffer error
#9441 arch/arm/tiva: start FPU before GPIO config
#9515 arch/arm64: save FPU context when a context switch occurs in SMP mode
#9464 arch/arm64: use adrp instead of adr in bss init code
#9333 arch/arm64: support more interfaces for gicv3
#9023 arch/arm64: Support tickless mode
#9332 arch/arm64: Each core initializes its own idle stack in SMP
#9315 arch/arm64: Support unalign cache clean.
#9243 arch/arm64: Add support for Multiple UART Ports
#9227 arch/arm64: merge serial_pl011.c and qemu_serial.c
#8994 arch/arm64: fixed arm64 backtrace issue
#8990 arch/Arm64: arm64 pmu supported
#8876 arch/arm64: fixed cache issue and add more cache interface
#9098 arch/arm64: Updating ARCH_EARLY_PRINT support
#9065 arch/arm64: in smp pthread_cancel occasionally deadlock
#9330 arch/arm64: .bss initialization using assembly language
#9220 arch/arm64: preprocess link script to make configure more flexibly
#8799 arch/arm64: Support for FPU profile with procfs
#9118 arch/risc-v: Add option for selecting coherent DMA.
#9114 arch/risc-v: change up_saveusercontext to assembly code
#9123 arch/risc-v: Fix save/load FPU macros
#9103 arch/risc-v: Fixed FPU register error
#9597 arch/risc-v: litex/gpio: Fix incorrect declaration name.
#9279 arch/risc-v: Remove riscv_copystate.c as it is not used a…
#9485 arch/risc-v: Store user context into the kernel stack
#9248 arch/risc-v/addrenv: Create utility function for dynamic mappings
#9481 arch/risc-v/backtrace: correct stack pointer if enable ARCH_KERNEL_STACK
#9538 arch/risc-v/barrier: Define more granular memory barriers
#8787 arch/risc-v/kernel mode: Add a stripped down, native version of SBI for NuttX
#9526 arch/risc-v/vfork: Replace jal with call for long jump
#9192 arch/risc-v/litex: Fix emac driver compilation when only IPv6 is used.
#9586 arch/risc-v/espressif: Add full GPIO support
#8957 arch/risc-v/espressif: Add support for Periodic and Oneshot Timers
#8980 arch/risc-v/espressif: Add support for RTC subsystem
#8953 arch/risc-v/espressif: Add support for Tickless mode
#8954 arch/risc-v/espressif: Panic if CPU interrupt allocation fails
#9545 arch/risc-v/espressif: Update esp-hal-3rdparty library
#8971 arch/risc-v/espressif: Use spinlock APIs for defining critical sections
#8973 arch/risk-v/k210: Fix k210 timer on QEMU 6.1 or later
#9548 arch/risc-v/mpfs: add CoreMMC support
#9439 arch/risc-v/mpfs: Add CoreSPI driver for Polarfire SoC
#9440 arch/risc-v/mpfs: Add mpfs_vbus_detect
#9419 arch/risc-v/mpfs: add support for CoreI2C fpga driver
#9489 arch/risc-v/mpfs: Enable KMM_MAP for knsh
#9212 arch/risc-v/mpfs: Fix some logic errors in the driver
#9430 arch/risc-v/mpfs: Modify mpfs_i2c.c to support arbitrary number o…
#9461 arch/risc-v/mpfs: Minor fixes / tweaks to the driver
#9503 arch/risc-v/mpfs: Remove MMU mappings and flush TLB upon boot
#9081 arch/rv-virt/knsh64: increase proxy stack size to avoid overflow
#9075 arch/rv-virt/nsh64: enable CONFIG_BCH to support block device access
#9312 arch/xtensa: only cmp fpu coprocessor for fpu test
#8977 arch/xtensa: Remove FAR qualifier for Xtensa-specific files
#9401 arch/xtensa/esp32: Add missing SPI Flash ROM functions
#8993 arch/xtensa/esp32: Add support for universal mac addresses
#9082 arch/xtensa/esp32: BLE Bugfix
#9078 arch/xtensa/esp32: enable LIBC_ARCH_ATOMIC
#9020 arch/xtensa/esp32: ESP32 not use IMEM in user heap mode
#9408 arch/xtensa/esp32: Fix build issues for SoftAP mode
#9236 arch/xtensa/esp32: Fix himem driver crash in SMP mode
#8926 arch/xtensa/esp32: fix signal deliver when task is running on other CPU
#8963 arch/xtensa/esp32: Fix Wi-Fi driver parameter settings
#8974 arch/xtensa/esp32: Make asprintf and lib_free corresponding
#9077 arch/xtensa/esp32: Ssd1306
#9475 arch/xtensa/esp32: Support multiple PHY init data bin
#9242 arch/xtensa/esp32[s2]: Define syscall table to enable using ROM functions
#9542 arch/xtensa/esp32s2: Fix SPI DMA implementation
#9361 arch/xtensa/esp32s3: add dedicated interrupt stack for ESP32-S3 by default
#9110 arch/xtensa/esp32s3: Add RTC support
#9156 arch/xtensa/esp32s3: add support to WPA3 on Station Mode
#9525 arch/xtensa/esp32s3: Add USB OTG device driver
#8979 arch/xtensa/esp32s3: call softAP callback when Wi-Fi driver TX is done
#9367 arch/xtensa/esp32s3: pause other CPU before SPI flash operations
#9549 arch/xtensa/esp32s3: SPI support quad I/O mode
#9502 arch/xtensa/esp32s3: Support 32MB SPI flash
#9380 arch/xtensa/esp32s3: Support 32MB PSRAM
#9136 arch/xtensa/esp32s3: Support octal lines mode SPIRAM
#9397 arch/xtensa/esp32s3: SPI slave driver
#9232 arch/xtensa/esp32s3: use wapis init config to save Wi-Fi data
#9255 arch/xtensa/esp32xx: Workaround to avoid printing serial trash character
#9190 arch/sim: do not free memory of zero-length reallocation
#9070 arch/sim: Implement text heap
#9079 arch/sim: Move up_textheap_xxx to common place
#9071 arch/sim: multi netdevice forward issue when ll_guardsize not 14
#9472 arch/sim: Replace uart_[xmit|recv]chars_dma with uart_dma[txavail|rxfree]
#9533 arch/sim: Support more sockopts on native socket
#9208 arch/sim/asan: disable detect_invalid_pointer_pairs/detect_stack_use_after_return
#8997 arch/sim/hostfs: pass flag O_BINARY to host
#9186 arch/sim/lsan: disable fast-unwind by default
#9468 arch/sim/ostest: enable priority inheritance testing
#9291 arch/sim/posix/backtrace: process host backtrace with critical section
#9518 arch/sim/posix/sim_hostusrsock: process host network syscall with critical…
#9308 arch/sim/sim_alsa: modify buffer_size in GET_BUFFERINFO when offload capture.
#8961 arch/sim/sim_x11eventloop: fix X11 event accumulation
#9109 arch/sim/usbdev: fix unpaired critical_section()
#8996 arch/sim/win/hostuart: only read key event from console
#8995 arch/sim/win/hosttime: calculate sec/ms independently to avoid overflow
Driver Support New Drivers
#9189 drivers/audio: add support for the ES8311 codec
#8775 drivers/audio: add audio_dma device driver.
#9372 drivers/lcd: add JD9851 driver
#8982 drivers/sensors: add support of InvenSense MPU-9250 sensor
#9452 drivers/sensors: add BMI270 IMU support
#9453 drivers/sensors: add bh1749nuc color sensor support
#9258 drivers/virtio: add virtio-mmio-blk driver Audio Support
Improvements
#9027 drivers/audio: Add audio underrun notice and support it in cxd56 audio driver
#9609 drivers/can/can.c: Fix nested loops with same variable
#9450 drivers/can/mcp2515.c add missing spi configuration in mcp2515_r…
#9399 drivers/can/mcp2515.c Fix Configure Spi Bus on every bus lock
#9393 drivers/can/mcp2515.c Fix Missing Chipselect de-assert before bus unl…
#9427 drivers/can/mcp2515.c Use SPIDEV_CANBUS(config->devid) instead of SP…
#8773 drivers/dma: support dma driver model
#8922 drivers/emmc: eMMC driver support
#9529 drivers/ioexpander/pca9555: fix const correctness of pin set parameters
#9398 drivers/input/tsc2007: Rename touchscreen ioctls for clarity
#8398 drivers/lcd/st7789: Dynamic adjustment of the orientation, switch orientation on the fly
#9463 drivers/modem/alt1250: Update alt1250 driver
#9119 drivers/misc: fix missing instantiation of return value in rwb_mediaremoved.
#9556 drivers/misc/rpmsg: add fdsan support for rpmsg dev/mtd/blk
#9436 drivers/mtd: check args for nvs read
#9011 drivers/mtd: fix uninit data in mtd_config_fs
#9492 drivers/mtd: mtd_config name len max changed to NAME_MAX
#9342 drivers/mtd/gd25: Flash memory - performance enhancements
#9500 drivers/mtd/is25xp: Enable usage of several chips on the same spi bus
#9154 drivers/mtd/nand: Return -EUCLEAN when the bit error happen but fixed by ecc
#9281 drivers/mtd/w25qxxxjv: add dual die support for 1 Gbit flash
#9272 drivers/mtd/w25qxxxjv: fix STATUS2_QE_ENABLED bitfield write
#9396 drivers/net/slip: Switch to poll based design
#8987 drivers/note: fix note_drivers error
#9130 drivers/pipe: fix blocking file_pipe
#8985 drivers/pipe: make pipe and named pipe (mkfifo) POSIX-compliant (blocking open)
#9505 drivers/ptmx: Fix a potential buffer overflow
#9554 drivers/rptun: rptun and rptun_dump bug fix
#9592 drivers/segger: Change the default value of SEGGER_RTT_MAX_NUM_DOWN_BUFFERS to SEGGER_RTT_MAX_NUM_UP_BUFFERS
#9012 drivers/sensors/APDS9922:
#9608 drivers/sensors/apds9960: Fix use after free
#9004 drivers/sensors/Kconfig: Fix bmi160 help texts in Kconfig
#9013 drivers/sensors/Kconfig: Fix bmp280 texts in Kconfig
#9589 drivers/sensors/mpu60x0: add IOCTL support
#8999 drivers/sensors/mpu60x0: Fix the error when reset mpu60x0 in SPI case
#9305 drivers/serial: Fix coverity issue
#9292 drivers/serial: fix race condition in multi-thread write
#9219 drivers/serial: fix update local flags for the pty device attribute
#9049 drivers/serial: support tty c_cc VMIN & VTIME
#9354 drivers/serial/16550: dma support 16550 uart
#9473 drivers/serial/16550: Include nuttx/clk/clk.h
#9283 drivers/serial/16550: serial output can cause deadlock
#9105 drivers/spi/spi_bitbang: Add private data on spi_bitbang
#9102 drivers/spi/spi_bitbang: Fix build warnings
#9404 drivers/syslog: add mutex to syslog_default_write
#9591 drivers/syslog: Add sc_write_force callback
#9176 drivers/syslog: add syslog option definition
#9364 drivers/syslog: use internal buffer to decoupling syslog with iob
#8950 drivers/telnet: Remove TELNET_CHARACTER_MODE
#9133 drivers/telnet: Refused to enter character mode
#9541 drivers/usbdev/cdcacm.c: register console only for device with minor number 0
#9331 drivers/usbhost: Can now handle multiple interface descriptors.
#9245 drivers/usbhost: Fix function address generation for multi-port root hubs.
#9287 drivers/usbhost: Make unplugging hubs more reliable.
#9223 drivers/usbhost/usbhost_cdcacm.c: fix warning
#9257 drivers/usbhost/usbhost_hub: Prevent crash when the last hub port is used.
#9479 drivers/usrsock/dns: add sanity check before send dns event
#9520 drivers/usrsock/rpmsg_server: fix poll recursive when revent POLLHUP or POLLERR
#9581 drivers/usrsock/usrsock_server: fix incomplete received data error
#9261 drivers/usrsock/usrsock_server: fix issues with usrsock_rpmsg_sendto_handler
#8949 drivers/video: passthrough unknown ioctl commands for customized scenarios in fb driver
#9045 drivers/video: Support spot position setting
#9221 drivers/video/fb: adapt to fbmem dynamic update.
#8907 drivers/video/fb: add vsync offset support
#9101 drivers/video/fb: fix pollnotify calling crash in advance
#9328 drivers/video/fb_driver: add fb_open and fb_close
#9388 drivers/video/vnc_server: Fix that vnc_updater thread exited caused by reading a null data
#9329 drivers/video/vnc_server: set touch.maxpoint to 1 for circbuf_init
#9447 drivers/virtio: Fix virtnet_transmit() in virtio-mmio-net.c
#9457 drivers/virtio: Fix virtio-mmio-net
#9582 drivers/virtio: Use one descriptor for RX in virtio-mmio-net.c
#9134 drivers/wireless: Fix mtu info for gs2200m
Audio Support Improvements
#9381 audio: add channels range
#9152 audio/pcm_decode: fix warnings regarding unused functions and vars
Board Support New Board Support
#9322boards/nrf52: add initial support for Thingy:52 board
#9323boards/nrf53: add initial support for Thingy:53 board
Improvements
#8964 boards: define boardioc_softreset_subreason_e in CONFIG_BOARDCTL_RESET
#9512 boards: Enable md5 to test virtio
#9167 boards: Fix CONFIG_[START_DATE,START_MONTH] cannot start with 0
#8962 boards: refresh boards that use usbmsc
#8942 boards: Replace open/pread with file_open/file_pread
#8941 boards/boardctl: Add BOARDIOC_SOFTRESETCAUSE_ENTER_BOOTLOADER reset cause
#9217 boards/boardctl: add BOARDIOC_SOFTRESETCAUSE_RESTORE_FACTORY_INQUIRY
#9535 boards/arm/cxd56xx/spresense: Fix boards implements for supporting PM System
#9056 boards/arm/cxd56xx/drivers/sensors/Kconfig: Fix bmp280 texts in Kconfig
#9358 boards/arm/nrf5x: introduce common folder for nrf52 and nrf53
#9403 boards/arm/nrf52840-dongle: add usb support and usbnsh example
#9451 boards/arm/nrf52-feather: fix typo in I2C1 initialization
#9321 boards/arm/nrf53: cosmetics
#8840 boards/arm/sam34: make userleds work on Arduino Due
#9571 boards/arm/samv7: add lower level IOCTL handler to sam_gpio_enc driver
#9415 boards/arm/samv7: add type member to mtd_partition_s structure
#8952 boards/arm/stm32: add composite device configurations
#9559 boards/arm/stm32/stm32 tickless: stop assertion when calling up_timer_gettime
#9089 boards/arm/stm32/tm4c1294-launchpad: Add reboot support.
#9383 boards/arm/stm32/Update stm32l562e-dk:nsh
#9373 boards/arm/stm32f0l0g0: rework boards to not use legacy pinmap
#9164 boards/arm/stm32f4/nucleo-f429zi: update CONFIG define to keep up with the CONFIG in arch/stm32
#9593 boards/arm/stm32f4/stm32f429i-disco: Register the BUTTON driver
#8906 boards/arm/stm32f4/stm32f411: MiniF4 peripherals support improvements
#9409 boards/arm/stm32f7: DIR/Complementary PWM possible on PE08 and PE10
#9247 boards/arm/stm32f7: rework boards to not use legacy pinmap
#9230 boards/arm/stm32f7/nucleo-144: Modifications for the EMB control board
#9562 boards/arm/stm32f7/stm32f777zit6-meadow: Fix external RAM pinout and add board profile
#9250 boards/arm/stm32h7: rework boards to not use legacy pinmap
#9224 boards/arm/stm32h7/nucleo-h743zi: fix usb host example
#9233 boards/arm/tiva: bmp280 driver binding to tm4c1294
#9206 boards/arm/tiva: mpu6050 driver binding to TM4C1294
#9054 boards/arm/tiva/lm3s6432-s2e: reduce size of NSH configuration binary
#8929 boards/arm/tiva/tm4c1294-launchpad: Use bmi160 driver for boostxl-sensors.
#9150 boards/sim: Add defconfigs for testing the RTP Tools on Simulator and ESP32-LyraT board and relevant documentation about it
#8772 boards/sim: Add sim:toywasm config
#9197 boards/sim: Enable more sanitizer check when enable
#8972 boards/sim/ostest: Enabled KASAN, UBSAN & assertions.
#9015 boards/xtensa/esp32: Add ESP32-PICO-KIT support
#9141 boards/xtensa/esp32/esp32-devkitc: substitute ramtest to mm on defconfigs
#9567 boards/xtensa/esp32/esp32-devkitc/wamr_wasi_debug: Bump WAMR version
#9096 boards/xtensa/esp32/esp32s2-kaluga-1: Add support for LCD displays
#9565 boards/xtensa/esp32/esp32s3: Add usbnsh for all ESP32S3 boards
#9551 boards/xtensa/esp32/esp32s3-devkit: Revert NSH defconfig deletion
#9524 boards/xtensa/k210: Use 8 byte align in linker script #9135 boards: remove unnecessary FAR
#8781 boards/risc-v: Add MPU60x0 IMU sensors support for ESP32C3
#8762 boards/risc-rv/qemu-vr: Support for Kernel build with vexriscv-smp.
#9514 boards/risc-rv/rv-virt: Add netnsh64_smp to test virtio
File System Improvements
#9063 fs: Add g_ prefix to file_operations and mountpt_operations
#8939 fs: Flush the file system cache in BOARDIOC_POWEROFF too
#9521 fs: move memset to upper lever for statfs and add f_fsid field
#9558 fs: some minor changed about the fs
#9060 fs/cromfs: Fix faulty DEBUGASSERT() check
#9000 fs/hostfs: align operation flags define with fcntl.h
#8868 fs/hostfs: switch working directory
#9550 fs/fdcheck: Let FDCHECK depend on SCHED_HAVE_PARENT
#9009 fs/inode: Fixes in asprintf usage.
#9093 fs/inode: when searching for nextname skip “/” and “./”
#9037 fs/littlefs: littlefs shouldn’t be used without C99 BOOL
#9120 fs/littlefs: Add patch for littlefs to use kmm_malloc/free on kernel with MMU. Upgrade to latest littlefs
#9140 fs/mtd: add support for MTDIOC_ERASESECTORS ioctl
#9146 fs/mtd: Implement MTDIOC_ERASESTATE and MTDIOC_ERASESECTORS
#9144 fs/mtd: minor fix for mtd/nand driver
#9145 fs/mtd/nand: Add nand_raw_initialize to skip the probing
#9347 fs/partition: register partition device if caller doesn’t provide handler
#9394 fs/procfs: add cpuinfo
#8991 fs/procfs: add total time running time of task
#9073 fs/procfs: fix readdir loss last character
#9540 fs/vfs: Proper use of sigisemptyset
#9205 fs/vfs: Zero file struct field with memset
#9385 fs/vfs/fs_poll: Fix wrong return value in CONFIG_BUILD_KERNEL
#9576 fs/vfs/sendfile: Fixed behavior of sendfile when count is set to zero.
Networking Improvements
#9423 net: Fix task block when devif_send fails.
#9265 net: move ttl field into socket_conn_s struct
#9237 net: remove conn-related casts
#9254 net: Support to PMTUD
#9180 net/can: control msg support multi-attribute return
#9111 net/can: fix can mssage corruption if enable NET_TIMESTAMP
#9160 net/can: Remove the unnecessary “ret = OK;” in can_getsockopt
#9169 net/ethernet: add ETHERTYPE define
#9483 net/icmp: Save poll device in icmp_poll_s
#9174 net/icmp6: add icmp6-related definition
#9222 net/icmp6/in.h: add SOL_IPV6 protocol-level socket options IPV6_RECVHOPLIMIT
#9195 net/icmpv6: add SOCK_RAW type support
#9177 net/if: add net device type
#9178 net/ip: add iphdr definition
#9171 net/if_arp: add arphdr definition
#9519 net/inet_addr: return INADDR_NONE(-1) when input string is invalid
#9179 net/ip6: add ip6-related definition
#9266 net/ipv6: support SOL_IPV6 options IPV6_UNICAST_HOPS and IPV6_MULTICAST_HOPS
#9269 net/ipv6_setsockopt: Merge similarity logic
#9196 net/ipforward: copy iob when broadcast forward
#9043 net/ipforward: limit the forwarding range of broadcast packets
#9244 net/local: fix blocking local sockets
#9295 net/net: Add the check that socket domain is equal to bound address type, when do bind.
#9162 net/net: Simplify the tcp/udp existence check
#8610 net/netdev: Add upper half of netdev and simplify sim driver
#9517 net/netdev: remove ASSERT when ifindex is invalid
#9543 net/netdev/upper: Optimize on quota related operations
#9293 net/netdev_upper: Protect quota by spin lock to allow netpkt_xxx be called in interrupt context
#9522 net/netfilter: add NF_IP_xxx definition
#9188 net/netinet/include: header file definition changed to nuttx format
#8864 net/netlink: add RTM_NEWADDR, RTM_DELADDR and RTM_GETADDR
#9175 net/netlink: convert lltype to device type
#9116 net/procfs: Support to show MTU in netdev statistics
#9170 net/route: add struct in6_rtmsg definition
#9290 net/rpmsg: initialize semaphore count before wait
#9042 net/rpmsg: Set family for rpaddr in ns_bind
#9374 net/socket: Fix send() / recv() in BUILD_KERNEL
#9588 net/socket/recvfrom: Fix buffer copy direction when using BUILD_KERNEL.
#9074 net/tcp_input: drop SYN when no free node in the backlog
#9187 net/tcp_monitor: start_monitor return OK when connect closed by peer
#9414 net/tcp: Add flag for tcp_close to avoid double free
#9262 net/tcp: Add NewReno congestion control.
#8782 net/tcp: add TCP_MAXSEG support
#9041 net/tcp: Fix clear condition in ofoseg input
#9172 net/udp: add udphdr definition #9173 if_ether: add ether_arp definition
#9214 net/udp: change PKTINFO flag to socket_conn_s struct
#9194 net/udp: Remove wrong check in udp_readahead
#8947 net/usrsock_server: Improvement on sendto errors
#9139 wireless: add IW_AUTH_WPA_VERSION_WPA3 flag to support WPA3
#9113 wireless/bluetooth: Initialize private bt_driver_s member.
#9068 wireless/bluetooth: Fix the Unexpected ACL flags error
#9087 wireless/bluetooth: Fix build error when BT_GATT_CCC is used.
#9471 wireless/bluetooth: Add a generic access service.
#9166 wireless/bluetooth: Support removable bluetooth modules.
Compatibility Concerns
#8827 arch/nrf52: nvmc and flash should depends on ALLOW_BSD_COMPONENTS=y
Users using nvmc and flash must allow BSD components (CONFIG_ALLOW_BSD_COMPONENTS=y).
#8992 stm32: Remove GPIO_{SPEED|MODE}_xxx and provide a legacy path for lazy migration
All boards board.h should be migrated using tools/stm32_pinmap_tool.py `tools/stm32_pinmap_tool.py –pinmap arch/arm/src/stm32h7/hardware/stm32h7x3xx_pinmap_legacy.h –addall –suffix _0 –report /include/board.h it will output 2 sections that should be used to update the board.h.
#9527 sched/tls: remove PTHREAD_CLEANUP from Kconfig
use PTHREAD_CLEANUP_STACKSIZE to enable or disable interfaces pthread_cleanup_push() and pthread_cleanup_pop(). Same as TLS_TASK_NELEM - It is no need to use two variables. Make the reserved entries more explicit
#8985 drivers/pipe: make pipe and named pipe (mkfifo) POSIX-compliant (blocking open)
It would be a possible breaking change if any application was written specifically to expect an open for write-only (and O_NONBLOCK cleared, of course) to be non-blocking even if there are no readers. Being able to port POSIX-compliant applications that expect open to block when opening for write-only with no readers would enhance NuttX’s objective of “to achieve a high degree of standards compliance. The primary governing standards are POSIX and ANSI standards”. That is the case for RTP Tools, for instance.