Apache NuttX-12.2.0 Release Notes
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: repalce 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 asignment 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
- #9465 initial FPU support for ARMv8R AARCH32
- #9443 Support for ARMv8R AARCH32
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: rasie 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 ther 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 readed 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 dscriptor 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.