Apache NuttX-12.7.0 Release Notes
What’s New In This Release
Core OS
Sched
- #13395 Critmon optimize, make possible open cpuload based on critmon and disable critical section & sched_lock to save cost.
- #12691 sched.h: add SCHED_BATCH and SCHED_IDLE definition
- #12584 sched.h: CPU_XXX macros can also be used without CONFIG_SMP
- #12703 sched.h: Update doc link for tcbinfo_s
- #13274 sched: add DEBUGASSERT to assure that affinity not zero
- #13341 sched: adjust the scheduling strategy
- #13105 sched: change pthread_mutex implementation from sem to mutex
- #12742 sched: Improve Kconfig help of INIT_ENTRYPOINT
- #13525 sched: move DUMP_ON_EXIT to sched
- #13211 sched: replace up_cpu_index with this_cpu
- #13271 sched: use this_task replace nxsched_self
- #13263 sched/event: clear pending events before enable the scheduler
- #13329 sched/group/setuptask_file: duplicate idle task fd for kernel thread
- #13083 sched/irq: correct critical section to spin lock
- #12802 sched/nxevent: add support of kernel event group
- #13264 sched/policy: move g_policy from data to rodata
- #13017 sched/sched: simplify the implementation of the function nxsched_readytorun_setpriority
- #13134 sched/signal: fix pthread_kill use after free
- #13530 sched/signal: Simplified Implementation for SIGEV_THREAD_TID
- #12283 sched/signal: There is no need to use sched_[un]lock
- #12553 sched/tcb: amend pull/12320
mm
- #12550 mm: add mm_initialize_pool, make pool more flexible
- #12556 mm: mm_threshold perfer from init
- #12501 mm/iob: Simplify IOB alloc/free logic
- #12923 mm/map/vm_region.c: Fix usage of void* arithmetics
- #12946 mm/mempool: rename the mempool_alloc and mempool_free function
- #12659 mm_ubsan: add dummy to bypass runtime actions
- #12646 mm_ubsan: add implement for dynamic_type_cache_miss
libc
- #12672 add rint and expm1 function to cmath from libm
- #13420 Add dummy implementations for
shm_open
pthread_setaffinity_np
and RLIMIT_RTPRIO
- #13429 arm64_task/pthread_start: Convert the C / inline ASM code to assembly
- #13366 arm64/task/pthread_start: Fix rare issue with context register location
- #13011 lib_getcwd:Fix the Name in the function description.
- #12966 lib_remove:Repair the logical judgment
- #12890 libc: Add macro restrictions to code that uses floating point numbers
- #13111 libc: compile stackchk function by default
- #12953 libs: fix the default value of process-shared attribute
- #12975 libs: fix the default value of process-shared attribute
- #12605 libc: scanf, printf %z change switch const to if
- #12585 libc/execinfo: extract a common backtrace format function
- #13013 libc/msic: Implement get_nprocs API
- #13381 libc/misc/crc32: crc32 add slow mode, optional decrease size
- #13441 libc/netdb: Remove unnecessary CONFIG_LIBC_NETDB checks
- #13025 libc/netdb: Separate IPv4 and IPv6 cache size limit
- #13220 libc/sysconf: add _SC_GETPW_R_SIZE_MAX
- #13479 libc/time: add g_lcl_lock to protect local context in localsub
- #13080 libc/time: remove lib_strptime
- #12693 libc/unistd: added an implementation of the lib_flock function
- #12609 libc/x86_64: port string functions from bionic
- #13110 libcxxabi: libcxxabi enables exceptions by default
- #13079 libs/libc/obstack: correctly append null byte at the end of string
- #13482 libs/libc/obstack: implement ptr and int growing functions
- #13495 libs/libc/obstack: revert invalid null byte append to obstack_vprintf
- #13185 libs/libc/stdio/*printf *scanf:Add string serialization and deserialization functions
- #13294 libs/libm: fix epsilon relaxation in log and logf
- #13307 libs/libm/libm: apply epsilon relax factor only if epsilon is small
-
#12568 libm{libm |
newlib}: fix broken sincos optimization for GCC |
- #12811 libm/copysign: respect signed zero/NaN handling in copysign
- #13174 syscall: delete getrandom in syscall because it have moved to lib
- #13428 gdb plugin: Encapsulate the gdb native command gcore as nxgcore
- #12557 gdbstub: fix typo
- #12549 gdbstub: support gdbstub_debugpoint_add/remove smp call
- #13339 nuttx/pthread: export priority protect in pthread with ceiling priority in semaphore
- #12561 pthread: add pthread_self/pthread_gettid_np function
- #13462 pthread_mutx: remove unused critical_secton lock
- #13456 pthread_mutex: add deadlock assert
tools
- #12701 Feature/mcuboot toolchain support
- #13021 tools: add improved pre-commit tool
- #12794 tools: nxstyle if statement check
- #12651 tools/imx9: prepare bootable bootloader image
-
#12838 tools/[Rust |
D]: Fix build break for RISC-V |
-
#12854 tools/[Rust |
D]: Fix the Rust and D Builds for QEMU RISC-V |
- #12983 tools/parsetrace.py:fix parsetrace script error
- #13321 greenhills support: add ghs linker script for mps2-an500 platform
- #12884 greenhills support: add Kconfig, makefile, make.defs support for ghs compiler
- #12887 greenhills support: add new platform of qemu cortex-m7
- #13146 greenhills support: add the “__sync_synchronize” func impl
- #12877 greenhills support: add up_getsp() implementation to adapting greenhills compiler
- #12883 greenhills support: fix the asm build error for adapting to greenhills compiler
- #12885 greenhills support: fix the build and link error specific to ghs platform
- #13144 greenhills support: fix the build options warning
- #13207 greenhills support: fix the build option warning
- #13145 greenhills support: fix the build warning while support greenhills build
- #12886 greenhills support: fix the build warning for ghs platform
- #13533 greenhills support: fix the enumerated type mixed using warning
- #13322 greenhills support: fix the ghs build warning
- #13502 greenhills support: fix the greenhills compile warning on sizeof operand
- #13195 greenhills support: fix the pointless comparison build warning
various
- #12552 compiler.h: rename CMSE extension attribute macros
- #12874 fix stm32wl5_rcc.h: Add the missing argument to RCC_PLLCFG_PLLP define.
- #13148 include/fcntl.h: add O_LARGEFILE flags
- #13324 include/sensors: import public definitions types and to uorb.h
- #12690 ioctl.h: add SIOCATMARK definition to resolve compilation errors
- #13314 ip6_tables.h: fix gcc 14 errors
- #13257 socketlin : add lin.h and lin bus-type
- #12692 sysinfo.h: add get_nprocs_conf/get_nprocs definition
- #13149 sys/shm.h: add macro define for posix
- #12594 x86_64/irq.h: use 32bit operations in up_cpu_index(
Build System
New Features
- #12904 [Cross-Platform] Remove Unix-specific code in savedefconfig and replace it with cmake script
- #12910 [cmake] add_application supports only registration but not compilation
- #12964 [cmake] split the archive process to avoid parameter too long problems
- #13019 [cmake] add nuttx_post and app_context inter targets for timing control
- #12908 [Win32 sim] enable win32 native platfrom sim compilation by CMake fix compilation error
- #12900 arch/sim/src/cmake/Toolchain.cmake: macOS fix unknown options: –gc-sections
- #12856 build: Fix libc/pwd CMakeLists.txt
- #13347 build: fix memory manager compile options for CMake
- #12859 build: Fix Toolchain.cmake for CONFIG_SIM_ASAN enabled
- #12880 build: set CMake policy to allow FetchContent_Populate
- #12784 build/cmake: add user_ldscript preprocessing
- #12866 build/cmake: fix system include dir for PROTECTED mode
- #13143 board/maix-bit: initial cmake support
- #13090 board/qemu-armv7a: add CMake support
- #12868 boards/rv-virt: cmake for pnsh and nsbi
- #13175 Cmake: [arch arm] added initial support for MSYS2
- #13389 cmake: add support for PCI
- #12516 cmake: reuse OpenAMP own CMake script for CMake build
- #12592 cmake: refine sim cmake redefine symbols
- #13449 cmake: Refactor extra_lib tagert,build include_arch path,refine sim link script target
- #12667 cmake: strip file full path to save the code size
- #13451 cmake: support openlibm,dhara,libmcs,lic regex CMake build scripts
- #12608 cmake/add_library: enable library install by default
- #12714 cmake/boards: fix build break on custom board
- #13085 CMakeLists.txt: warning D9002 on Windows + msvc
- #13253 cmake/nuttx_kconfig.cmake: fixed the correct .config path in the buid folder
- #13276 cmake/tricore: filter out nostdlib in linker phase to avoid build break
- #13499 libc: add missing preadv/pwritev in CMakeLists.txt
- #12700 riscv/cmake: fix Toolchain.cmake
- #12694 riscv/k230: fix apps ROMFS cmake
- #12996 riscv/qemu-rv: add RPTUN cmake
- #12634 sim/cmake: enable garbage collection of unused input sections
- #12721 tools/testbuild.sh: add option -N use CMake with Ninja
- #12805 tools/testbuild.sh: added store compilation artifacts for cmake
- #12724 tricore/cmake: add support of cmake build for tricore
Bug Fixes
- #12558 [bugfix] cmake:fix a few issues during CMake build
- #12915 [bugfix] fix CMake build block when enable LTO
- #12582 Fix cmake for cxd56xx
- #12581 cmake: Fix build failure when -DNUTTX_APPS_DIR is specified
- #13171 CMake: fix CMake compile errors during the protected build mode
- #13081 cmake: fix invalid syntax when generating version.h from tags
Architectural Support
unsorted
- #12827 Additional encoder for F7 and added functions for TimerHook for F745 …
- #12924 Bugfix/esp spi fix
- #12770 Enable SMPS for STM32H745I-DISCO by default
- #12574 arch: Add –whole-archive linker option for some of architectures
- #13200 arch: cxd56xx: Add logic for i2c reset
- #13496 arch: cxd56xx: Fix issue by update of inode reference
- #13201 arch: cxd56xx: Fix SCU sensor data format
- #12962 arch: inline this_task to improve performence
- #13270 arch: remove unused up_cpu_pausereq waiting
- #13423 arch: use up_current_regs/up_set_current_regs replace CURRENT_REGS
- #13041 arch/EXTRA_LIBS: link all staging library.
- #12624 arch/sim: add custom data section support
- #12909 arch/sim/Kconfig: set SIM_FBBPP to 32 by default
- #12845 arch/stm32h7: add defines for USART clock selection
- #13292 arch/xmc4 : Add input pin DX0 selection for multiple SPI channel
- #12823 arch/xmc4 : Fixed critical section in i2c_transfer
- #12761 arch/xmc4 : i2c master lower-half driver
- #12545 BL808: Add support for UARTs 0-2 and serial configuration
- #12575 BL808: Replace courier with M0 interrupt controller
- #12795 elf: Enable ELF loader if text heap read is word-aligned and enable ELF loader for ESP32-S3
- #12620 esp32: add simple boot support
- #12616 ESP32: emac initialization adding cpu id
- #13249 esp32: enable APP_CPU cache earlier
- #13244 esp32: cache_sram_mmu_set: update the correct register bits
- #13222 esp32: fix a crash with PSRAM + SMP
- #13243 esp32: fix seemingly wrong calculations
- #13250 esp32: psram_set_cs_timing: sync with esp-idf
- #13311 esp32: Port the bootloader patch
-
#12572 esp32[c3 |
c6 |
h2]: Add I2C master support |
-
#12573 esp32[c3 |
c6 |
h2]: Add GDMA support |
- #13298 esp32c6: PCNT Quadrature Encoder driver
- #13269 esp32s2: fix SPI flash and file system mounting
- #12647 esp32s3-devkit: add a config for qemu
- #12851 esp32s3-devkit/toywasm: enable ESP32S3_SPI_FLASH_SUPPORT_PSRAM_STACK
- #12725 esp32s3_textheap.c: fix a build error w/o CONFIG_ESP32S3_SPIRAM
- #12565 esp32s3/wifi: Fix bug related to IOB off-loading with SMP
- #12789 esp32s3/i2s: Fix faulty initialization when SMP is enabled
- #13265 esp32_psram.c: Remove a seemingly stale comment
- #12669 Feature/esp mcuboot support
- #12776 Feature/esp spi dma
- #12775 Feature/esp temperature sensor
- #12604 fix(esp32-qemu-openeth): allocate buffers in internal memory
- #13193 gd32f4xx_at24: Fix uninitialized use of local variables i2c and at24
- #13401 Imx9 ethernet fixes
- #12632 Imx9 support flexspi m25p nor
- #13399 imx9/edma: Fix function prototypes
- #13400 imx9/LPUART fixes
- #12921 imx93: Add more base addresses
- #12623 imxrt: Correctly update PLL, bit has to toggled instead of being set
- #12562 imxrt: imxrt11xx set core clock to 1p15v regardless of ocotp
- #12821 k230_start.c: Fix condition for k230_copy_init_data()
- #12894 mps3-an547:support mps3-an547 reset
- #12989 nuttx/sim:By default, stack-use-after-return is not checked when enabling SIM_ASAN.
- #13043 nuttx/sim:By default, stack-use-after-return is not checked when enabling SIM_ASAN.
- #13548 nrf91: Update GPS to GNSS
- #12612 refactor(esp32-qemu-openeth): use lower half driver interface
- #12660 refresh esp32s3-devkit:qemu_debug
- #12707 rp2040 Rename the RP2040-specific PWM_MULTICHAN definition
- #12610 rp2040: Add support to MAX6675
- #13318 rp2040: Support pico-sdk 2.0.0
- #13070 Sync the modifications of the WiFi function in simulator.
- #12697 s32k1xx: FlexIO i2c driver
- #12678 samv7: fix compile warning in PWM driver
- #12627 samv7/sam_mcan.c: fix TSEG1, TSEG2 and SJW compile warnings for MCAN1
- #12622 sim: make possible keep ubsan and bypass feature
- #13034 sim: read the second buffer
- #13097 sim: Support to use of non-consecutive framebuffers
- #13355 sim_offload: add lame library to apps/audioutils/lame
- #12870 sim/login: remove login restrictions to improve the experience for green hands
- #13534 sim/minmea: Fix defconfig warning
- #13042 simwifi: Add the netlink event of connect/disconnect.
- #12778 Small improvements to nrf91
- #13282 smp: enable smp_call in all smp arch
- #12566 STM32G47XXX: Added basic HRTIM support.
- #12600 tee smp support
- #12640 Userleds support to seed-xiao-rp2040
- #13032 wifi_sim.c:fix compile warning
Architecture Improvements
arm
- #12626 arch/arm/stm32: Fix EXTI lines definitions for STM32G47XX.
- #12664 arch/armv8-r: new config to set SPIs Configuration to edge-triggered
- #12666 arch/armv8-r: update g_running_tasks before context switch
- #13472 arch/arm-m: Clear lr before jump to __start
- #13284 arch/arm: support kernel heap in BUILD_FLAT mode
- #13416 arm generate busfault & recursive bug fix
- #13268 arm: armv7-a/r and armv8-r up_cpu_index inline
- #13024 arm: Fix DS1307 initialization for common STM32 logic
- #12888 arm: Select ram vector on armv6m
- #13505 arm_addrenv:fix app crash when enable shm in kernel mode
- #12787 arm_backtrace_unwind:Make the backtrace search the entire stack as much as possible
-
#12954 arm/armv[7 |
8]-m: add syn barrier for MPU ops |
- #12925 arm/armv8-r: invalidate d-cache on boot
- #12928 arm/armv8-r: add cp15 ops for mpu
- #13529 arm/cortex-a,r: replace cp15 instruct to macros to align operation
- #13239 arm/giv3: add g_ prefix to some global variables
- #13262 arm/gicv3: set routing affinity before enable IRQ
- #13240 arm/linum-stm32h753bi: Add support to RFID MFRC522
- #12873 arm/lm3s6965-ek: Disable NTPC for lm3s6965 to fix maximum flash space…
- #13557 arm/qemu: Add mounting of tmpfs
- #13117 arm/qemu: enable WFI in
up_idle
- #13131 arm/spinlock: up_testset() sould not depends on SMP
- #12879 arm/stm32f401rc-rs485: Add support to BMP280 sensor
- #13565 arm/stm32f401rc-rs485: Add support to LCD 16x2 with I2C Backpack
- #12839 arm/stm32f401rc-rs485: Add support to RFID MFRC522
- #12860 arm/stm32h7/stm32h745i-disco: Add STM32H745I-DISCO Per Core Support
- #12902 arm/stm32h7x3x_rcc.c: Add External Power Supply option to stm32h7x3x …
- #12679 arm/xmc4: pwm driver
- #13466 armv7-a gic related update
- #13176 armv7-a timer:fix timer overflow.
- #12956 armv7a/irq: enable fiq in tee, enable irq in ap
- #13453 armv8-m:arch libc function need save ip register use pacbti
- #13237 armv8-r/gicv3: correct cpu index of irouter
- #13275 armv8-r/r52: add neon support into compiler lin
arm64
- #12633 arch/arm64/src/imx9/imx9_lowputc.c: Fix an arithmetic sign error in d…
- #12648 arch/arm64: allow to use custom up_idle
- #13397 arch/arm64/src/imx9/imx9_lpi2c.c: Cleanups and error fixes
- #13402 arch/arm64/imx9: Change Kconfig logic
- #13403 arch/arm64/imx9: Add system reset controller
- #13427 arch/arm64/src/imx9/imx9_lpi2c.c: Ignore spurious RX interrupts
- #13218 arch/arm64: Move ELF_64BIT selection to arch/Kconfig
- #12681 arm64: add initial support for ZYNQ MPSOC and ZCU111 Evaluation Kit
- #12580 arm64: inline up_cpu_index
- #13560 arm64_addrenv: Add support for 4 level MMU translations
- #13363 arm64_addrenv_pgmap.c: Revoke user execution access to kernel mmap’d pages
- #13364 arm64_addrenv.c: Flush kernel page table copy to user mappings
- #13204 arm64_checkstack.c: Fix traversing of user stack when ARCH_ADDRENV=Y
- #13361 arm64_syscall.c: Don’t need to set register context during syscall
- #13365 arm64_vector_table.S: Remove unnecessary instruction
- #12695 arm64/arm64_boot.c: Fix exception caused by accesses to ICC_SRE_EL3 when GICv3 was not implemented
- #13373 arm64/crt0.c: Fix stack alignment when executing signal trampoline
- #12649 arm64/imx9: ccm: add default clk init
- #13205 arm64/imx9: Force 64-bit ELF format
- #13360 arm64/mmu: Fixes for MMU driver
- #13362 arm64/syscall: (Re-)enable interrupts only if they were previously enable
tricore
- #12682 arch/tricore: add support of tricore gcc toolchain
- #12706 arch/tricore: synchronize instruction/data following MTCR/MFC
risc-v
- #12961 arch: inline up_testset in arm arm64 riscv xtensa
- #12579 arch/riscv: add all region in NAPOT
- #12881 arch/riscv: add cluster local hartid
- #12906 arch/riscv: fix IRQ_SOFT for non-SMP
- #12546 arch/riscv: fix NuttSBI PMP config
- #12717 arch/riscv: fix trap sp restore logic
- #13430 arch/riscv: Fixed hardware timer warps-around issue
- #13278 arch/riscv: revert pull#12864
- #12864 arch/riscv: unify in-kernel syscall
- #12619 arch/risc-v: add support for capture driver on ESP32C6 and ESP32H2.
- #12726 arch/risc-v: make common up_allocate_heap weak symbol
- #12732 arch/risc-v: does not clear IPI address in S mode
- #12460 arch/risc-v/common: provide architecture specific perfmon bindings.
- #13353 arch/risc-v/litex: Fix the litex arty_a7 build
- #13382 arch/risc-v/src/litex: Claim all pending PLIC interrupts.
- #13547 arch/risc-v/src/litex_ticked: Set initial tick count to known value.
- #12804 arch/risc-v: introduce AIA support
-
#12843 arch/risc-v: add support for DC motor control on ESP32 |
C6 |
H2 |
- #12586 riscv_exception.c: Add missing comma in exception reasons array
- #13408 riscv_mtimer: modify riscv_mtimer_current to reduce precision lost
- #12643 riscv_tcbinfo: Fix register ordering for PC
- #13564 riscv: add a return value to riscv_swint
- #13561 riscv: g_current_regs is only used to determine if we are in irq
- #12812 riscv: Fix fork() system call
- #13354 riscv: Unify the extended context save/restore
- #12554 riscv: Initial support for debug trigger module
- #12559 riscv: Improve exception and irq mapping
- #12809 riscv/debug: Add support for steppoint
- #12819 riscv/espressif: Mark private data as static in esp_spi.c
- #12861 riscv/fork: fix fp/gp handling
- #12589 riscv/k230: revise canmv230:nsbi
- #12677 riscv/k230: updates for nsh and pnsh
- #12744 riscv/nsbi: fix k230 AMP confs
- #12799 riscv/qemu-rv: skip reloading mhartid
- #12807 riscv/qemu-rv: Add BUILD_PROTECTED target for rv-virt
- #12944 riscv/qemu-rv: add RPTUN support
- #12772 riscv/rv-virt: use RAM_START in ld.script
- #12816 riscv/qemu-rv: add NuttSBI target for rv-virt
- #12831 riscv/qemu-rv: revise PROTECTED mode
- #12840 riscv/nsbi: fix up_udelay for rv32
- #13510 risc-v: Add a new option to control exception reason
- #12722 risc-v/bl808, sg2000: Configure MMU to cache Kernel Text, Data and Heap (T-Head C906)
- #12571 risc-v/bl808: Add GPIO Driver
- #12621 risc-v/bl808: Add GPADC character driver
- #12663 risc-v/bl808: Add SPI driver
- #12771 risc-v/bl808: Add watchdog driver
- #12752 risc-v/bl808: Add timer driver
- #12614 risc-v/ox64: Add LED Driver
- #12762 risc-v/qemu-rv: Add LED Driver for QEMU RISC-V 32-bit and 64-bit
xtensa
- #13223 Add spi slave dev to esp32 xtensa
- #13225 espressif: Fix build with RTC
- #13255 espressif: Fix deadlock in RT timer caused by critical section
- #12560 espressif: Fix error while evaluating Wi-Fi task ID
- #13368 espressif: Update external libraries to fix GPIO interrupt bug
- #13236 espressif: Update HAL library reference to include debug assert
- #13022 espressif: Update internal libraries reference
-
#12551 xtensa: add support for capture driver on ESP32 and ESP32 |
S3 |
- #12781 xtensa: add support for motor control driver
- #12967 xtensa_cache:add up_get_cachesize api
- #12865 xtensa/esp32: replace nxsig_usleep() with up_udelay()
- #12750 xtensa/esp32s3: Add peripheral DMA request return value and optimize DMA initialization
- #13277 xtensa/esp32s3: Add timing delay set interface for QSPI
- #13291 xtensa/esp32s2: add WiFi support
- #13454 xtensa/esp32s3: Adjust I2C clock timing
- #12720 xtensa/esp32s3: Deinitialize ESP32-S3 QSPI GDMA engine.
- #12871 xtensa/esp32s3: Update the rtc code to fix system blocking issue
- #12919 xtensa/esp32s3: partition name duplicate and free
- #12918 xtensa/esp32s3: reserve memory for a mutex struct depending on the OS
- #12932 xtensa/esp32s3: Separate address and command flag for QSPI DMA transfer
- #13165 xtensa/esp32s3/esp32s3_sdmmc.c: wait for command done event also on error response
x86_64
- #13391 Add MSI/MSI-X support for intel64
- #12583 arch/intel64: add cpu specific data and per-cpu interrupt stacks
- #12803 arch/intel64: add support for HPET as system clock
- #12588 arch/intel64: add support for inter-processor signaling
- #12570 arch/intel64: get TSC frequency only when not provided from Kconfig
- #12801 arch/intel64/irq.h: rename rdtsc macros
- #13392 intel64: Improvements for HPET
- #12567 arch/x86_64: addrenv should add offset only for RAM region
- #12577 arch/x86_64/intel64/intel64_rtc.c: fix compilation
- #12591 arch/x86_64: add SMP support
- #13417 arch/x86_64: Add ARCH_INTEL64_DISABLE_CET
- #13409 arch/x86_64: Add ARCH_X86_64_IDLE_NOP and ARCH_X86_64_IDLE_MWAIT
- #13436 arch/x86_64: add basic support for R_X86_64_REX_GOTPCRELX relocation
- #13422 arch/x86_64: Add elf32 multiboot1 wrapper for NuttX binary
- #13313 arch/x86_64: convert all asm() to asm
- #13317 arch/x86_64: Fix wrong RDTSCP implementation
- #13316 arch/x86_64: Support QEMU PVH ELF loader
- #13426 arch/x86_64/intel64: fix compilation errors in intel64_oneshot_lower.c
- #12800 arch/x86_64/intel64/intel64_cpu.c: remove workaround for spin_lock
- #13390 qemu-intel64: restore functionality of PCI test configs
- #13315 qemu-intel64: simplify linker script
- #12597 x86_64: add AVX support
- #12613 x86_64: addrenv support
- #12569 x86_64: hide –whole-archive behind Kconfig option
Driver Support
New Driver Support
- #12829 Add amg88xx driver
- #13396 Add Intel e1000 and igc support
- #13393 Add support for 16550 compatible PCI serial cards
- #12715 Add support for the Sensirion SHT4x temperature and humidity sensor
- #12824 Add thermal framework
- #11605 Coresight: add init coresight driver framework
- #13082 driver/mem: add Mem Driver.
- #12834 driver/ssd1680: Add support for 1.54 inch e-paper display
- #12938 drivers/video: add goldfish gpu fb
- #13470 drivers/pinctl: add pinctrl framework
- #13471 drivers/goldfish-pipe: implement goldfish pipe
- #13553 Pci ep framework
Drivers Improvements
- #12998 [driver][bcm43xxx] reset tx_seq of sido-bus when ifdown wlan-if
- #13154 can/sja1000: drop driver dependency on __builtin functions
- #13524 can: Add g_ prefix to can_dlc_to_len and len_to_can_dlc.
- #13141 can: Merge netpacket/can.h into nuttx/can.h
- #12676 driver/net/lan9250: Add lan9250_ioctl and lan9250_uninitialize APIs
- #13464 driver/ftl: Read the consecutive eraseblocks
- #13320 driver/usbdev: support userspace to access ep0
- #12641 drivers: add API for drivers early initialization
- #13492 drivers: fix gcc14 errors for virtio
- #13107 drivers/audio: fix samp rate conversion issue
- #13323 drivers/bch: fix uint32 overflow issue
- #12564 drivers/net/ksz9477: Add port mirroring support
- #12765 drivers/drivers_initialize.c: check if only one console is selected
- #13411 drivers/fb: add panbuffer clear ioctl
- #13468 drivers/gpio: support poll gpio device and optimize code to save memory
- #12976 drivers/input: enable touch/kbd/mouse for virtio input
- #13060 drivers/modem/alt1250: Disable the PIN feature in ALT1250
- #13327 drivers/mtd/bch: fix size_t overflow when offset > 4GB
- #13480 drivers/pty: support pty write to kill signal, like serial driver
- #12830 drivers/serial: Make the 16550 rx trigger level configurable
- #13202 drivers/regmap: add exit function interface.
- #13469 drivers/reset: support rpmsg reset
- #13328 drivers/rwbuffer: Bug fix: Set nblocks 0 after direct using wrflush
- #13434 drivers/serial
- #13576 drivers/syslog: compile syslog_device.c if console/char/file channel enabled
- #12857 drivers/touchscreen: add grab for touchscreen
- #13481 drivers/usbdev: minor update for cdcacm
- #12930 drivers/virtio-net: Support VIRTIO_F_ANY_LAYOUT
- #13170 drivers: Fix goldfish events x64 unresponsive interrupt issue
- #13531 Fix build error of drivers/sensors/usensor.c
- #13325 Input/ff: new driver frameworks for vibrator(haptic)
- #13078 video: fix warning & update sim camera
- #12760 virtio/serial: initial CONSOLE support
- #12971 mmcsd_sdio:Fix performing read and write in irq
- #12949 mmcsd: add support of getting ext_csd reg data
- #13157 mmcsd: add write ext csd reg support
- #13528 mmcsd: fix a logic error
- #13215 mmcsd: make a compatibility change for cmd12 and cmd23
- #13380 mtd:ramtron MB85RS256B address length is 2
- #13136 mtd:use part->name as partition name when CONFIG_MTD_PARTITION_NAMES set
- #12796 mtd/Kconfig: fix W25_SLOWREAD menu item.
- #13252 mtd/nvs: fix align size
- #13219 nuttx/drivers:Modify errcode returned by relay_ioctl
- #12848 Optimize iic and spi parts and add iic slave drivers
- #13344 pci ivshmem related driveres support
- #13337 Revert “Fix unwanted flush in the SPI slave driver”
- #13251 rndis: correct usb descriptor
- #13538 sensor:Fixed the problem of user information lag in cross-core communication “stublist”.
- #13539 sensor_rpmsg.c:Fix that “stub” will be created when local core only has subscribers.
- #12927 serial/uart_16550: include stdint.h in uart_16550.h
- #13383 serial/uart_16550: remove up_putc spinlock
- #13384 serial/uart_pl011: default syslog needs to check flow control in up_putc
- #13509 serial/pci_16550: make sure that interrupts are disabled during init
- #13102 syslog_rpmsg: Ensure the syslog ept is ready when rpmsg_send
- #13184 timer driver:support poll.
- #13075 usb_cdcmbim: add mbim device driver
- #13367 usbdev: Add fastboot boardctl
- #12914 usbdev: add USB cdcncm device driver
- #12745 usbdev: delete unsigned comparison with 0
- #13216 usbdev: extend the usb req len to unit32_t
- #13190 USB 3.0 device side suppor
Board Support
New Boards
- #13248 arm: Add support for CSK6011A SOC and CSK6011A-NANO board
- #11709 at32uc3a0: Initial work for SimpleMachines’ Mizar32-A
- #12813 boards/esp32s3: Add initial support to the ESP32-S3-Korvo-2 board
- #13467 boards/esp32s3: add support to esp32s3-lhcbit board
Boards Improvements
- #13532 [Bugfix]Kconfig:ensure compatibility between kconfig-frontend and kconfiglib in kernel build
- #12698 Add defconfig to use the ws2812 driver
- #12878 arm/stm32f103-minimum: Use common board MFRC522
- #12922 arm64: Initial implementation of CONFIG_BUILD_KERNEL
- #13376 arm64/Kconfig: Make the ARM64_PA/VA_BITS a true Kconfig variable
- #12973 board/arm/rp2040/seeed-xiao-studio-rp2040 GPIO configuration
- #12738 board/linum-stm32h753bi: Add support to external sdram
- #12882 board/lm3s6965-ek: restore 128K kflash
- #12699 board/stm32f401rc-rs485: Add support to Device Configuration over Telnet
- #12737 board/stm32f401rc-rs485: Add support to MAX7219 8x8 LED Matrix
- #13516 boards: Update EXAMPLES_SOTEST_DEVMINOR to EXAMPLES_SOTEST_DEVMINOR_MAX
- #12743 boards/arm/rp2040: Userled configuration to Seeed-Stdio RP2040
- #13142 boards/arm/stm32/stm32f4discovery: Add support to RFID MFRC522
- #13440 boards/arm/stm32h7/stm32h745i-disco: Add RPTUN support
- #12825 boards/armv5: Make ARMv5 boards work again
- #12593 boards/stm32: DRV8825 driver
-
#12673 boards/esp32[c3 |
c6 |
h2 |
s2 |
s3]: Ignore etctmp in common board |
- #13124 boards/esp32s3_lan9250: deinitialize the ethernet device lan9250
- #12716 boards/esp32s3: Increse the default stack size for usbnsh
- #12763 boards/imx93-evk: add sdimage cleanup
- #12876 boards/lm3s6965-ek: fix memory.ld for PROTECTED
- #12598 boards/MIMXRT1020-EVK: Fix board I2C code to adapt to last IMXRT I2C/pi…
- #13137 boards/risc-v/esp32c6/esp32c6-devkitm: Add support to RFID MFRC522
- #12869 boards/rv-virt: unify RV32 config names
- #13226 boards/sim: Defconfigs for nand and mnemofs
- #12898 boards/xtensa/esp32s3: ESP32S3 Emmc Support
- #13478 boardctl: add board control api to start slave core
- #13273 boardcrtl: change BOARDCTL_TESTSET to BOARDIOC_SPINLOCK
- #12747 Change nucleof429zi nsh defconfig
- #13059 defconfig: add SYSTEM_TELNETD related config
- #13334 esp32: fix a way to test a config
- #13563 esp32s3: Fix faulty
esp32s3-devkit:stack
example
- #13234 imx9_usdhc.c: Fix build error when CONFIG_ARM64_DCACHE_DISABLE=y
- #12867 LTDC for Linum board
- #12780 nrf9160-dk: disable FPU for modem example
- #13476 nucleo-h745zi: fix potential bl jump to app failed issue
- #13069 nucleo-l432kc: Revert the USART2 config to be use by virtual COM port
- #12987 nuttx/boards:Uniform initialization format for init_array.
- #13208 risc-v/bl808: Configure MMU to cache User Text, Data and Heap
- #13199 risc-v/mmu: Configure T-Head MMU to cache User Text, Data and Heap
- #12862 risc-v/qemu-rv: Add Build Config for leds64_rust
- #13186 risc-v/qemu-rv: Add Build Config for leds64_zig
- #12896 risc-v/qemu-rv: add cluster PLIC/CLINT configs
- #12544 riscv/nuttsbi: add MTVAL argument
- #12645 stm32h7/linum-stm32h753bi: add support to qencoder
- #12739 stm32f777zit6-meadow: Add support for two USB CDC/ACM
- #12637 Usbnsh to seed-xiao-rp2040 board
- #12713 zynq_mpsoc/zcu111: add support for gpio and board auto led
- #12806 zynq-mpsoc/zcu111: independent JTAG configs from normal nsh configs
- #12797 w25c: add W25_DEBUG sub-menu config option and update debug traces.
File System
New FS
- #13001 V9FS For NuttX
FS Improvements
- #13514 add sched note for littlefs/romfs/rpmsgfs
- #12863 Fix the location of tmpfs pwrite write and Fixed some code check warnings
- #13500 fs.h: fix a comment in file_operations
- #12532 fs: add backtrace to where file opens
- #13150 fs: add fs_heap, support shm/tmpfs/pseudofile with indepent heap
- #12587 Fs: backtrace tweak
- #13512 fs: Dump the list of files when the file description runs out
- #13194 fs: nfs: Fix nfsmount error
- #12978 fs: Rename node with inode.
- #12969 Fslock optimize
- #12937 fs/mnemofs: Fix journal log rw issue, rw size issue
- #12945 fs/hostfs: Replace strcpy with memcpy
- #13443 fs_inode:Change the type of i_crefs to atomic_int
- #13458 fs_dup2 bug fix, memleak
- #13573 fs/chmod/fchmod/lchmod: only set permissions by mode_t and ignore othjer bits
- #12931 fs/epoll: Optimize implementation details
- #12615 fs/fat: Fix Fseek Bug When File Size Is Multiple of Cluster Size
- #12548 fs/fat/fs_fat32.c Return EOF when reading past the end of the file.
- #13521 fs/dump: correct SCHED_DUMP_ON_EXIT to DUMP_ON_EXIT
- #12990 fs/mmap: Fix build warning with [-Wmaybe-uninitialized].
- #13132 fs/procfs: Supports any number of thread displays
- #13123 fs/shmfs:Avoid an integer overflow
- #12790 fs/spiffs: Return OK on
spiffs_fstat
success
- #13407 fs/mmap: Add MADV_HUGEPAGE definitions
- #13406 fs/mmap: Ensure anonymous pages are initialized to zero
- #12661 fs/mnemofs: Adds Block Allocator
- #12668 fs/mnemofs: Add parent iterator and path methods.
- #12680 fs/mnemofs: Add LRU and CTZ methods
- #12683 fs/mnemofs: Add journal methods.
- #12702 fs/mnemofs: Add master node and r/w methods
- #12943 fs/mnemofs: Autoformat
- #12808 fs/mnemofs: Refactoring path logic, direntry size bug fix, open free bug fix
- #12658 fs/mnemofs: Setup and VFS methods
- #13475 fs/mount: add ftl proxy to mount block filesystem on mtd device
- #13258 fs/mq_open: revise comments
- #13326 fs/files_extend: Bug Fix
- #13331 fs/inode: using inode reference to indicate unlink and simply code
- #13077 Fsnotify
- #12942 Hostfs support get filepath by ioctl
- #12817 procfs/meminfo: free delaylist before reporting
- #13058 procfs/mempool: fix did not remove when pool not enabled
- #13092 rpmsgfs: fix out of bounds access caused by data transmission farmat
- #13063 rpmsgfs: set fs type to rpmsgfs when mount through rpmsgfs
- #13348 smartfs procfs: fix double declare g_smartfs_operations
- #12939 rpmsgfs_client:Fix error return exception
- #12941 rpmsgfs: support filelock
- #13098 tmpfs: old data was loaded when SEEK_SET beyond end of the file
- #13490 vfs:fix a type mismatch issue and a typo
Networking
Improvements
- #13385 Fix the bug that netlink receive wait does not hang up
- #13053 icmp:add net_lock to protect icmp connection
- #13336 local_socket: add SO_SNDBUF & SO_RCVBUF support
- #13045 localsocket improvment
- #12639 net: Enable ICMP by default if IPv4 is enabled
- #13028 net_chksum.c:mod process of generating sum to solve checksum error
- #12991 net/icmpv6/icmpv6_input.c: fix undefined build error
- #13093 net/netdev: Add periodic log for netdev statistics
- #12689 net/netfilter: fix windows compile error
- #12688 net/pkt: correct PF_PACKET family sending errors
- #12995 net/pkt: fix issue that set nonblock by fcntl does not take effect
- #13010 net/pkt: fix raw socket send data length is insufficient
- #13120 net/tcp_timer: fix tcp_timer idle loop and retransmission bug
- #13051 net/tcp: reset the dupack counter.
- #12899 net/tun: Remove unused variables in read & write
- #13191 net/tun: Support changing carrier state of TUN/TAP
- #13350 net/udp: Fixed the issue of sending ICMP error when the destination address is broadcast/multicast.
- #13037 netdev_upperhalf: add polling mode support for tx/rx
- #13046 netdev/ioctl: Setting log level to warning on SIOCGIFHWADDR failure
- #13007 netdev/lower: Add reclaim callback and use it in virtio-net
- #13343 netdev/statistics: Add bytes for netdev statistics
- #13008 netdev/upper: Delay replied packets to prevent TX quota become negated
- #12992 netinet/in.h: add macro definitions to resolve compilation errors
- #12994 netlib/route: add length for add/del route-func to reduce caller stack usage
- #13335 netdb: Make NETDB_DNSSERVER_NAMESERVERS effective for NETDB_RESOLVCONF
- #13038 netdb: netdb code support ffmpeg rtsp(getaddrinfo & getnameinfo)
- #13049 Modify the IPV6 address acquisition method and the gateway settings.
- #13125 modify for offload checksum and add macro with tcp/icmp/icmpv6/igmp checksum
- #13026 modify the type of the ipv6 parameters to solve runtime error
- #13029 solve Problem of tcp parameter calculation exceeding the boundary
- #13156 sys/socket: implement compiler agnostic sockaddr_storage alignment
- #13158 tcp_close.c:when tcp socket stays in TCP_FIN_WAIT_1 or TCP_FIN_WAIT_2,calling tcp_close_eventhandler releases received packets
- #12999 tcp_input: if tcp->req > recvreq, send ack only when state is TCP_ESTABLISHED
Unsorted
Improvements
- #13448 [Bug-Fix] Resource leaks
- #13100 [BugFix]Command “critmon” error
- #13002 12K sample rate support
- #13486 Accelerate access to interrupt status
- #12980 add fb_vsync_pollnotify
- #12959 Add goldfish events
- #12951 Add irq disable func
- #13130 Add memory pressure monitoring
- #13089 api:add lib_realpath function
- #12947 assert: add compile_assert macro
- #13020 assert: check COMPILE_TIME_ASSERT before define
- #13087 Audio upstream
- #13044 Basic Atomic for NuttX
- #13099 bch: alloc bch->buffer when offset not aligned
- #13513 BCH: Add readonly configuration for BCH devices
- #12853 binfmt/elf_loadfile: Set sh_addr even if SHF_ALLOC == 0
- #12965 boot: fix potential bl jump to app failed issue
- #13094 Bugfix hcreate
- #13300 can: Before we use pstate, we should check if it is NULL.
- #13570 can: Add g_ prefix to can_dlc_to_len and len_to_can_dlc.
- #13048 can: CAN code optimization
- #12656 can: fixes and tweaks for CAN FD support
- #13126 Capture adds the function of edges counting
- #12934 clk: fix reg operation not compatible with 64bit
- #13210 cdcacm: align cdcacm_epconfigure function parameters
- #13189 Controlling rgb led bp
- #12889 Coredump enhancement, optimized prompt statements
- #13474 coredump: just save latest core file
- #12958 coredump: refine coredump info analyse
- #13066 crypto: import the ability to clone session
- #13109 crypto/bn: Provide software algorithms to calculate inverse elements and greatest common divisor
- #13431 crypto/rsa: add exp mod in software crypto
- #12970 Disable clean/flush optimization in case of SMP restriction
- #12777 dlfcn: Add stub for dladdr
- #12779 dlfcn: Fix indent issue in lib_dlclose.c
- #13159 dynamically create work queues
- #13489 enable O_CLOEXEC explicitly to avoid fd leak
- #13118 Enhance ASSERT
- #13424 Enhance Kasan
- #13559 Enhance Kasan’s global variable out of bounds detection
- #13388 Expose IPTOS_xxx to the application layer
- #12963 fdcheck: fix race condition in fdcheck
- #13096 fb:add select overlay FB_NO_OVERLAY
- #13296 filep Reference count
- #12578 Fix allocated memory test
- #13461 Fix dev_mem related
- #13555 Fix greater-than-or-equal-to-zero issue
- #12741 Fix pin LTDC_B0, should be PJ12 instead of PF0
- #13129 Fix task_setup race condition
- #13054 Fix the compilation warnings
- #12955 fix the potential bug of putwc, fgetwc, ungetwc, wcsstr, fputwc
- #13095 fix:uart_rpmsg_dmareceive
- #13477 ftl: should pre-allocate eblock for car case
- #13000 getrlimit: implement RLIMIT_STACK return limit stack size
- #13459 GNSS: Add support for constellation, measurement, clock and geofence
- #13504 goldfish:add kernel mode support
- #13330 group/filelist: add reference to protect filelist of group
- #13554 i2c: Optimize access to private data
- #13233 Increase the chance for _assert to work early in the boot
- #13306 init: add OSINIT_TASK_READY
- #13228 inline restore_critical_section and add parameters to restore_critical_section
- #12981 input: fix goldfish input and lvgl input device name mismatch problem
- #13108 input: fix touchevent race condition
- #13073 inode: call inode_release when close success
- #13198 Introduce new PCI framework
- #13442 input/ff: modify FF_MAX to support 64-bit machine
- #13387 ipfrag: fix warnig
- #13163 ipfrag: remove assert for actual product reasons
-
#13012 irq: add [enter |
leave]_critical_section_nonirq |
- #13018 irq: add isr thread
- #13242 irq: dynaminc create g_irqmap
- #13256 irq: irq with the same priority share the same wqueue
- #12595 irq: remove g_cpu_nestcount in restore_critical_section
- #12935 irq: remove restore_critical_section in irq
- #12596 irq: remove restore_critical_section in irq
- #13369 irq: simplify code by using OSINIT_TASK_READY
- #13119 Kasan enhance
- #12893 kasan:fix bug write error is recognized as read error
- #13133 Keep the log level consistent with assert
- #12590 libmetal/atomic: enable 64-bit atomic by toolchain builtin flags
- #13543 lilygo_tbeam_lora_gps/gps: Enable GNSSUTILS_MINMEA_LIB for EXAMPLES_GPS
- #13549 lzf:Add macro judgment to header file reference.
- #12929 make/disassembly: generate disassembly file
- #13179 memset:optimizate speed.
- #12985 minidumpserver: fix parsing bug
- #13287 mksymtab.c support for structure
- #13452 modify BUILD_LOADABLE to MODULES which backwards-compatible Kernel
- #12968 MPU update
- #13460 New Rpmsg Transports: Rpmsg Port SPI, Rpmsg Port Uart and Rpmsg Router Transport Support
- #13104 nxmutex api enhance
- #13047 nuttx-names.in:add popen & pclose assign to glibc interface
- #13006 nuttx/audio: add AUDIOIOC_GETPOSITION ioctl
- #13005 nuttx/audio: add offload buffer size config
- #13340 nuttx/crypto: export asymmetric algorithms about ecdh and ecc256 via /dev/crypto
- #13138 nuttx/crypto: fix wrong implementation in crypto module
- #13173 nuttx/crypto: support new algorithm about crc32 and aes-cmac
- #13084 nuttx/crypto: support poly1305 and ripemd160 algorithm
- #12986 nuttx/note: fix missing the last character when printing custom labels.
- #12730 NVS: fix align size
- #13187 nvs: modify nvs block size and block numbers
- #12601 queue: inline queue
- #13435 pci/pci_uio_ivshmem: pci uio ivshmem msix interrupt support
- #13178 pl031:change mktime to timegm.
- #13057 pm_runtime: fix missing header
- #13064 pm_activity: fix deadlock with spinlock and critcal_section
- #13055 pm: add pm_idle, up_idle only handle pm state execution
- #12933 pm: add debug_assert for cb register/unregister api
- #13072 pm: update document, add pm_idle interface for not-smp case
- #13279 poll: fix thread_cancel() caused poll used after free
- #13074 Private requirement for wapi
- #13168 protected build: userspace threads will unexpectly work in privileged mode after syscall
- #13153 pty: use mutex to protect alloc minor
- #13295 psram_cache_init: remove cosmetic differences between PRO/APP
- #13438 ramlog bug fix
- #13283 Refactor wdog module
- #12891 Reimplemented the mempool traversal function and fixed some existing bugs in the mempool
- #13463 rename, strtoul & sscanf
- #13309 Restore ASSERT/VERIFY semantics
-
#13485 Revert “irq: add [enter |
leave]_critical_section_nonirq” |
- #12607 Revert “irq: remove restore_critical_section in irq”
- #13432 Rpmsg VirtIO Transport support and releated patches
- #13183 rpmsg_rtc:Update g_basetime from rpmsg.
- #13169 rpmsg.c: move onceinit judge logic to common part
- #13404 rpmsgblk: split multi_cmd only when it is too large to be placed into…
- #13465 rpmsgdev: Support server export and oneway polling
- #13172 rptun.c: fix rptun.c format follow rpmsg virtio
- #13203 rtc alarm:fix doesn’t call nxsig_notification
- #13515 shm: remove useless macro
-
#13280 smp: smp call handler add up_cpu_paused_[save |
restore] |
- #13405 spi_slave: change length to nwords
- #12599 spin_lock: inline spin_lock
- #12837 spinlock: add support of spin_trylock_irqsave()
- #12836 spinlock: inline no trace implement to remove duplicate logic
- #13272 spinlock: spin_initialize should add memory barrier
- #13457 stack recored bug fix
- #13386 stream/syslograw: remove support for iob buffer in syslog
- #13511 Support msync
- #13196 support rss/arfs with device
- #13106 suppress libasan checks
- #13031 Synchronize the modification of the WiFi problems in QEMU.
- #13113 Swift embedded support
- #12820 task_fork.c: Fix vfork for BUILD_KERNEL
- #12754 up_backtrace: fix maybe backtrace the exiting thread
- #13293 Update clock speed
- #13410 Update posix timer
- #12611 Upgrade Segger SystemView to V3.54
- #12705 V4l2m2m openh264 x264 to builtin
- #13030 video/fb: changed circbuf_write assert to warning
- #13433 VirtIO PCI Transport Support for NuttX
- #13338 virtio-blk: support called read/write in interrupt
- #13437 wqueue bug fix
- #13241 wqueue: add interface work_queue_priority_wq and work_queue_priority