What's New In This Release

Major Changes to Core OS

Bug Fixes and Improvements

  • #5978 nuttx: unify FAR attribute usage across the code

  • #6064 sched/environ: Ensure tg_envp terminated by double

  • #6038 sched/pthread_create:fix bug,delete data_sem

  • #6035 sched/init: drivers_initialize() should be late than up_initialize()

  • #6026 sched/note: include-able from C++ files

  • #6083 sched/environ: Refine the environment variables storage layout

  • #5992 sched/note: correct flatten format

  • #6271 sched: Replace pthread_sem_take with nxsem_wait_uninterruptible

  • #6220 sched/note: fix build break

  • #6215 sched/group: addrenv: allocate current group for each cpu

  • #6153 sched:fix mq_timedsend describe

  • #6135 sched: cpuload: add pm callbacks for cpuidle and time compensate for idle task

  • #5986 sched/irq: Fix array overrun in coverity check

  • #5859 sched/sched_timerexpiration.c: change from sched_time to eventtime

  • #6137 sched: remove DEBUGASSERT from nx_waitpid

  • #5929 sched/pthread:need check pthread is DETACHED

  • #5915 sched/note: add support of trace section mark

  • #6328 sched: Move the call of pthread_mutex_inconsistent to nxtask_recover

  • #6329 sched/pthread: Should call up_exit in pthread_exit

  • #6296 sched/wqueue: Add work_timeleft macro to get the left time to start

  • #5753 Fix the initial idle tasks environment

  • #5793 sched/module: correct the check condition

  • #6716 sched/Makefile: move task_reparent.c to appropriate Makefile

  • #6707 sched: Remove the not really used cmptime

  • #6679 sched_critmonitor: remove check zero in sched_critmonitor

  • #6677 sched: handle nxtask_setup_arguments return values

  • #6628 sched/timer: timer_settime not fully satisfy IEEE 1003.1

  • #6423 sched/env: Fix the return value of unsetenv()

  • #6410 sched/mqueue: do sanity check if DEBUG_FEATURES is enabled

  • #6403 sched/mqueue: configurable mqueue notification

  • #6402 sched/mqueue: minor code tuning of message queue

  • #6393 sched/mqueue: replace inline linklist to improve performance

  • #6392 sched/mqueue: remove sched_lock to improve performance

  • #6377 sched/tls: Shouldn't get tls info directly from sp in kernel space

  • #6365 sched/tls: Wrap up_info_size into tls_info_size

  • #6340 Change dpends on SCHED_[L|H]PWORK to SCHED_WORKQUEUE

  • #6250 sched: Remove task_restart in case of CONFIG_BUILD_KERNEL

  • #6236 sched: Remove task_delete in case of CONFIG_BUILD_KERNEL

  • #5822 sched/dumpstack: Print "backtrace:" only in the first iteration

  • #5925 sigact: get free sigact from freelist always successful

  • #6227 Replace all sem_wait with nxsem_wait

  • #5931 fix: pthread_rwlock_timedwrlock.

  • #6348 cpuload: use correct pm cpuload tick

  • #5888 workqueue: add work_foreach support

  • #6226 Replace nxsem_timedwait_uninterruptible with nxsem_tickwait_uninterruptible

  • #6085 semaphore: fix usage of NXSEM_INITIALIZER

  • #5819 pid_t: unify usage of special task IDs

  • #6611 include: Declare nxtask_delete function

  • #5960 timerexpiration:fix DEADCODE when RR_INTERVAL or SCHED_SPORADIC not select

  • #6745 Remove the private NULL, TRUE and FALSE macros

  • #6489 syscall: Remove exit() call gate

  • #5887 signal: Don't do schedule_sigaction when there is no action

  • #6359 signal: add define of SIGHUP/SIGTTIN

  • #6283 pthread/spinlock: Call up_testsest directly in the flat build

  • #6282 timers/watchdog: Ensure it's the idle domain before keepalive

  • #6133 syscall: Fix prototype of exec() to syscall.csv

  • #6616 syscall: Add socketpair to syscall.csv

  • #6120 Implement execle, execve, execvp, execlp and execvpe

  • #5814 env_dup: Allocate memory from the correct memory pool

  • #5914 mm/mm_heap: place alloc-bit at the LSB of node->preceeding

  • #6685 mm/mm_heap: update MM_BACKTRACE and malloc failed output

  • #6658 mm: Fixed the usage of CONFIG_MM_BACKTRACE & CONFIG_DEBUG_MM

  • #5906 mm_heap: heapsize align with MM_MIN_CHUNK

  • #6409 mm: Add mm_uninitialize to release the resource

  • #6385 mm: Log name of the Heap to which the new region is being added

  • #5855 mm/memdump: dynamic turn on backtrace in heap when enable DEBUG_MM

  • #6749 mm/kasan: node header should updated from unpoisoning memory

  • #6697 mm/circbuf: support circbuf_is_init and circ_peekat

  • #6011 mm_initialize: malloc() return aligend pointer

  • #6750 mm_heap/kasan: poison free node after return back the heap list

  • #6305 Separate a few debug stuff from CONFIG_DEBUG_MM

  • #5982 openamp: Change the dependence from OPENAMP to RPTUN

  • #6762 merge openamp to newest version (2022.04.0)

  • #6067 libc/string: Use Byte-Shift algorithm for very long needles

  • #6047 libc/lib_glob:use strlcpy instead of memcpy

  • #6044 libc/net:use strlcpy instead of strncpy

  • #5995 lib_lib_vsprintf/backtrace: fix the type issue

  • #6168 Implement preadv and pwritev

  • #5737 Add dn resolution function

  • #6210 Optimize bool type handling in c

  • #6029 libc:add strptime support

  • #6445 nuttx/lib: remove dependency on BUILD_FLAT for library memory allocation interface

  • #6389 libc/ipc: add ftok(3) support

  • #6384 libc/stdio: Generate the dummy atexit and on_exit

  • #6371 libc:xtensa:arch_memmove: fix warning

  • #6370 libc:Optimize the behavior of fwrite

  • #6360 libc/time: rearrange itimerspec struct elements

  • #6357 libc/stdio: Support 'e'(O_CLOEXEC) in lib_mode2oflags

  • #6248 libc: Rename lib_Exit lib__Exit

  • #5971 libc: Avoid the compiler generate code call self(memcpy/memmove/memset/memcmp) recursively

  • #6240 libs: Move aeabi_atexit from libxx/ to libc/machine/arm/

  • #6229 libc/string: simplify strrchr

  • #6197 libc: Implement userland implementations of exit functions

  • #6196 libxx: Make HAVE_CXXINITIALIZE workable even HAVE_CXX isn't enabled

  • #6175 libc: Remove the redundant seek in writev

  • #6184 libc/assert: let CONFIG_NDEBUG default to !CONFIG_DEBUG_ASSERTIONS

  • #6169 libc/arch_atomic: add gcc legacy __sync buitins support and add FAR to pointers

  • #6140 libs/libc/string: unify implementation across the functions

  • #5948 libc/lib_localtime:fix deadcode

  • #5861 libs/libc/time: update description of strftime

  • #5837 libc: Implement getrandom on top of "/dev/[u]random"

  • #5806 libc: Change the return type of strerror from "const char *" to "char *"

  • #5798 libc/err: fix unpaired va_end()

  • #6139 libc/string: strcmp/strncmp cast unsigned char

  • #6130 libc: Fix typo error in execle

  • #6124 libc/fixedmatch: Avoid "divide by zero" error

  • #6066 libc/blockstream: add block out stream backend

  • #6087 libc: Don't duplicate string in chdir and lib_restoredir

  • #5950 libs/libc/lib_err.c:add va_end to vwarn

  • #5949 lib_chdir:change ret judgment method

  • #5976 modlib_bind.c: Restore "Relocation address out of range" checks

  • #5951 modlib/modlib_bind:fix unsigned_compare with zero

  • #5952 libc/netdb: Support the recursive lock

  • #6027 netdb/lib_dnsaddserver.c: Do not insert the duplicate DNS address

  • #6714 libc: Remove the unnecessary include from wchar and wctype

  • #6613 libc/stdio: Support "long long" type if CONFIG_HAVE_LONG_LONG is enabled

  • #6607 libc/stdio: Enable LIBC_FLOATINGPOINT by default if ARCH_FPU is enabled

  • #6606 libc/stdio: enable long long formating by CONFIG_HAVE_LONG_LONG

  • #6547 libc: Fix getrandom() bug: Didn't propagate read error

  • #6241 libs: risc-v: Add R_RISCV_JAL support to arch_elf.c

  • #6667 libs/libc/string: add memmem

  • #6666 libc/wchar: support wchar

  • #6652 libc/impure: Fix the inconsistence from the different toolchain

  • #6337 Refine the implementation of TLS

  • #6434 include/cxx: Remove all non standard c++ header files

  • #6108 assert: static_assert is not support in c standard C89,C99

  • #5851 libxx: Add CXX_RTTI for enabling RTTI support for C++ applications

  • #6791 Add Embedded Template Library (ETL) support

  • #6720 libs/libc: correct config name

  • #5890 rexec: fix free error in error handing

  • #6709 Imx6 adb

  • #6586 Sabre6quad netknsh

  • #6482 Use builtins for byteswapping

  • #6421 getrandom: use _NX_XXXX interface to remove cancelation point for kernel

  • #6205 binfmt/libelf: Fix function description field

  • #6190 binfmt_execmodule: Use heap size getter for print

Major Changes to the Build System

Bug Fixes and Improvements

  • #6015 configure.sh: Make top Make.defs symlink to board Make.defs instead
  • #6014 checkpatch.sh: add -m option to enable/disable Change-Id check
  • #6013 tools/mkdeps: Extend MAX_SHQUOTE to 3072
  • #6094 tools/cibuild.sh: Migrate risc-v toolchian from 8.3.0 to 10.2.0
  • #5836 tools:use dump log creat a gdbsever to debug
  • #6350 tools/gencromfs: add attribute to set minimum 4 bytes aignment for cromfs image data
  • #6520 tools/jlink-nuttx: Move the register index check to setget_reg
  • #5826 tools/jlink: Change the type of pid from uint16_t to uint32_t
  • #5808 tools/nxstyle: Order g_white_prefix by alphanum
  • #6128 tools:fix parsememdump.py match error
  • #6245 tools/mkallsyms.sh: Make it work with llvm
  • #6129 tools:minidumpserver.py support xtensa
  • #6132 compiler.h: optimization option is not supported before GCC 4.6
  • #6232 tools/nxstyle: Add the suffix white list
  • #6180 tools/testbuild.sh: Don't skip configure and distclean

Architectural Support

New Architecture Support

  • #6179 tlsr82: first commit of telink tlsr82xx chip port
  • #6687 Add support for NXP S32K3XX MCU family and boards
  • #6375 stm32wl5: add new chip family
  • #6422 New stm32wb chip family
  • #6418 Eps32 Lilygo t5v2 BSP
  • #6478 arch: arm64: ARMv8-A support for NuttX

Bug Fixes and Improvements

  • #6188 arch: Move -fstack-protector-all and -finstrument-functions from Make.defs to Toolchain.defs

  • #6200 arch: Add gcov related config for arm/risc-v/xtensa

  • #6063 arch/stack_color: correct the stack top of running task

  • #6056 arch/stack_color: correct the end address of stack color

  • #5966 arch:tcbinfo: update tcbinfo as xcpcontext update

  • #5865 arch: Add -fsanitize=kernel-address to ARCHCPUFLAGS if CONFIG_MM_KASAN=y

  • #5864 arch/Toolchain.defs: add wildcard for EXTRA_LIBS

  • #5920 ARCH_ADDRENV: Add guard against mis-configuration 

  • #6105 arch/clang: add support for Clang LTO

  • #6089 arch: Move group_addrenv to common place

  • #6183 arch: Remvoe the error message when toolchain can't find

  • #6080 arch/ostest: remove CONFIG_TESTING_OSTEST_FPUSIZE & board level implement

  • #6086 Remove FAR from the arch and board files of ceva/mips/misoc/or1k/sim/sparc/x86_64/xtensa

  • #6778 arch: common: Fix up_check_tcbstack() for CONFIG_ARCH_ADDRENV=y

  • #6665 arch/stack: get correct stack remain and limit dump size when sp is not within stack

  • #6717 arch: Call board_reset before up_irq_save and spin_trylock

  • #6252 arch/addrenv: Change text write enable/disable to generic mprot

  • #6254 arch: Remove board/libboard$(LIBEXT) from the rerequest of export_startup

  • #6276 arch: Move "-nostartfiles -nodefaultlibs" from Make.defs to Toolchian.defs

  • #6351 arch: Define WCHAR_[MIN|MAX] in arch/include/limits.h

  • #6286 arch: inline up_interrupt_context() 

  • #6284 arch/addrenv: Add missing FAR qualifier to addrenv_mprot

  • #6277 arch/i2c: Change xxx_i2c_tousecs to xxx_i2c_toticks

  • #6416 Fix CONFIG_ALLSYMS for arm, risc-v and xtensa after #5496

  • #6567 arch: Remove the inclusion of arch/irq.h from chip/irq.h

  • #6550 arch: Move up_getsp from arch.h to irq.h

  • #6452 arch/backtrace: correct the skip counter

  • #6581 arch: Correct the order of stack related information in assert

  • #5818 progmem: eliminate PROGMEM_ERASESTATE configuration option

  • #5828 Show assigned cpu in dump task

  • #6193 Elf loader: give temporary write access to user .text memory

  • #6176 UMM: Implement getter for address environment heap start vaddr

  • #6367 dump_task: also dump thread param when dump thread name

  • #6062 SAM3X HSMCI DMA Fixes

  • #6059 arch/risc-v/riscv_misaligned: Correct sw source register

  • #6065 RISC-V: Support for mtimer in S-mode

  • #6054 riscv/riscv_schedulesigaction.c: Remove the duplicate state saving

  • #6051 arch/risc-v: Add missing DMB to mtimer / setmtimecmp

  • #6050 RISC-V: Move mhartid to own assembly macro+function

  • #6039 arch/riscv: Move toolchain config to arch/risc-v/Kconfig like xtensa

  • #6034 arch/risc-v: Apply common mtime driver to mtime based chps

  • #6022 arch/risc-v: Apply misaligned access handler for k210/bl602

  • #6006 riscv/ESP32C3: Use the common exception handler

  • #6468 Add I2C_M_NOSTART and I2C_M_NOSTOP support in esp32c3_i2c

  • #6583 risc-v/esp32c3: Add the rest of the reset causes

  • #6600 ESP32-C3: General improvements to Protected Mode infra

  • #6487 risc-v/esp32c3: Implement up_perf_xxx API

  • #6538 ESP32-S3: Add driver for I2C peripheral in Master mode

  • #6552 esp32s3: Fix IOMUX function number for SPI

  • #6522 Added configuration files for using BMP280 with ESP32-DevkitC

  • #6549 Esp32 lilygo tty t5v2 bugfix

  • #6540 ESP32-S2: Improvements to the GPIO driver

  • #6539 ESP32-S2: Add driver for I2C peripheral in Master mode

  • #6493 stm32xx: Fix RTC drift when using HSE

  • #6492 Stm32wl55JC SPI driver

  • #6579 Added ADC support to RP2040

  • #6499 Added PWM for rp2040

  • #6502 risc-v: Move common memory map to its own file from riscv_internal

  • #6603 ESP32: Add support for Protected Mode

  • #6516 arch/stm32_capture fix SMC register offset address and completion slave mode selection

  • #6565 arch/risc-v: Move __XSTR, FLOAD/FSTORE and REGLOAD/REGSTORE to the right place

  • #6020 arch/riscv: Add mtimer driver

  • #6008 arch/risc-v: Attach exception handler in common place

  • #5998 arch/riscv: Minor style change and text correction

  • #6003 esp32c3: Simplify irq dispatch logic

  • #5989 arch/risc-v: Replace riscv_fault with riscv_exception

  • #5970 b-u585i-iot02a:nsh: Drop TrustedFirmware-M dependency

  • #5974 arch/risc-v: use STACK_FRAME_SIZE for in S-mode syscall asm

  • #5980 RISC-V: Fix file name of riscv_dispatch_syscall

  • #5985 RISC-V: Combine 3 variables that depend on CPU amount into one

  • #5981 RISC-V: Fix usage of static_assert in riscv_percpu.c

  • #5983 arch/risc-v: Remove the unnecessary inclusion of board header files

  • #5754 arch/risc-v: Correct stack coloration in riscv_cpu_boot

  • #5758 RISC-V: Prepare CONFIG_BUILD_KERNEL part 1

  • #5760 ESP32-S3: Fix UART IRQ setup hardcoded to CPU 0 

  • #5766 arch/risc-v: Rework riscv_get_newintctx

  • #5773 risc-v/esp32c3: Remove deprecated option for disabling atomics support

  • #5775 arch/risc-v: Merge riscv_getnewintctx into common

  • #5781 phy62xx_exception: using armv6-m exception_common code

  • #5782 RISC-V: Implement option to run NuttX in supervisor mode (S-mode)

  • #5809 fixed mpu9250 not work on i2c bus issue.

  • #5765 esp32 efuse build fix

  • #5772 arch/Kconfig: Don't depend on Xtensa for the SUPPRESS_CLOCK_CONFIG option

  • #5825 ESP32-S3: Enable GPIO read/write operations and interrupts support

  • #5827 Add SPIRAM to ESP32-S2

  • #5829 RISC-V: Add/fix implementation for arch_elf.c

  • #5830 risc-v/qemu-rv: Restore FPU context after context switch

  • #5831 RISC-V: Add kernel stack

  • #5833 ESP32-S2: Remove unused and unsupported configs from Kconfig

  • #5834 ESP32-S2: Initialize instruction cache on startup

  • #5878 arch/risc-v: Use riscv_fpuconfig to enable FPU

  • #5898 riscv/bl602: Implement SPI Cmd/Data

  • #5957 risc-v/esp32c3: Fix regression on IRQ handling for ECALL instruction

  • #5905 arch/risc-v: Store/Restore FPU register in exception_common

  • #5795 ESP32-S3: Clean up and improve GPIO driver interface

  • #6604 esp32s3: Add DMA support

  • #5838 esp32/Make.defs: Organise common arch files and chip files appropriately

  • #5868 arch/risc-v: Move fpu [re]store to common place

  • #5869 riscv/bl602: Enable SPI Master in SPI Poll Send

  • #5907 riscv/bl602: Remove check for LCD driver

  • #5908 riscv/esp32c3: Remove check for LCD driver

  • #5746 RISCV: Fix nasty bug in PMP region test

  • #5842 arch/risc-v: improve style consistency accross chip variants

  • #5913 arch/risc-v: Move group_addrenv to correct place

  • #5922 arch/risc-v: get wider visibility for arch instruction macros

  • #5940 arch/risc-v: Add handler for misaligned load/store

  • #5917 arch/risc-v: move REGLOAD/REGSTORE macro to riscv_internal.h

  • #6217 riscv/pmp: fix bug: PMP_CFG_FLAG_MASK makes pmp cfg fail

  • #6192 Riscv hostfs

  • #6235 RISC-V: add C++ support to crt0

  • #5731 arch/risc-v: Improve speed of context switch

  • #6255 arch/riscv: Remove & ~1 before assign signal_handler to REG_EPC

  • #6237 arch: risc-v: Enable FPU for qemu-rv only if EXPERIMENTAL=y

  • #6242 rv-virt:knsh64

  • #6690 Ability to use newer pico-sdk with RP2040 builds (Issue #4919)

  • #6249 risc-v/mpfs: introduce IHC driver

  • #6776 risc-v/mpfs: usb: configure fifos properly

  • #6077 arch/risc-v: Use fs status definition from csr.h

  • #6095 arch/risc-v: Remove FAR from chip and board folder

  • #6101 arch/risc-v: Change riscv_savefpu/riscv_loadfpu to macro

  • #6102 ARM/RISC-V: Fix xxx_assert from IRQ context

  • #6115 arch/risc-v: Don't clear reserved bits in fcsr in riscv_fpuconfig

  • #6116 arch/risc-v: Enable FPU for K210

  • #6117 arch/risc-v/riscv_misaligned: Implement float load/store support

  • #6125 arch: risc-v: Do not enable FPU for K210 with QEMU

  • #6126 arch/risc-v: add support for GCC LTO

  • #6156 riscv/Makefile: Delete old target used for debugging

  • #6162 RISC-V PMP: Restrict Fence instruction for chips that support S-mode

  • #6191 RISC-V: Fix crt0 file compilation

  • #6194 RISC-V: Fix bug in riscv_addrenv.c

  • #6052 arch/riscv: Jump instead call riscv_dispatch_syscall

  • #6131 RISC-V: Add implementation for vfork

  • #6134 RISC-V: Fix system crash when FPU is in use

  • #6145 RISC-V: Add syscall support for vfork

  • #6151 RISC-V: workaround for the RV64 SoC which does not has mem mapped MTI...

  • #6069 RISC-V: Add support for CONFIG_BUILD_KERNEL

  • #6005 ESP32C3 TWAI (CAN) controller support.

  • #5740 Add ethernet support for risc-v/MPFS

  • #5749 risc-v/mpfs: usb: fix ep0 stall/resume and rx reads 

  • #5783 risc-v/mpfs: usb: fix ep0 read done

  • #5881 MPFS: Fix issue with external interrupt detection

  • #5875 MPFS: Fix error in flat build linker script

  • #5912 arch/risc-v/mpfs: Remove duplicated riscv_restorefpu

  • #6060 MPFS: Fix timer and exception/fault handling

  • #6070 MPFS: Set correct interrupt per mode (M-/S-mode) for mtimer

  • #5993 MPFS: Prepare support for S-mode

  • #5780 MPFS: Add board_memorymap.h

  • #6160 MPFS: Remove # CONFIG_ARCH_FPU is not set from defconfigs

  • #6177 MPFS: Add support for CONFIG_BUILD_KERNEL, adds icicle:knsh

  • #6303 MPFS: Implement S-mode head and start function

  • #6304 risc-v/mpfs: amend OpenSBI to utilize IHC

  • #6260 risc-v/mpfs: apply IHC review fixes

  • #6396 Mpfs fix ddr training failures

  • #6395 risc-v/mpfs: composite usb driver

  • #6261 risc-v/mpfs: IHC: clarify semaphore usage

  • #6285 risc-v/mpfs: IHC: allow hart configuration

  • #6437 risc-v/mpfs: update clock configuration parameters

  • #6405 risc-v/mpfs: Move the entry point to .start section

  • #6496 risc-v/mpfs: emmcsd: fix two issues

  • #6326 mpfs/knsh: Add C++ support

  • #6450 arch/riscv/mpfs: Add a config flag to select SD mux state

  • #6503 arch/risc-v/src/mpfs: Add mpfs_gpiosetevent and gpio irq handling fun…

  • #6530 mpfs: Fix IHC memory locations to native width type

  • #6490 mpfs: Allow mapping of RAM/ROM regions from different memory areas

  • #6602 risc-v/mpfs: usb: fix illegal reads

  • #6535 risc-v/mpfs: ihc: don't start rptun automatically 

  • #6361 arch/risc-v: re-add missing riscv_udelay source

  • #6343 Some cleanup for risc-v

  • #6342 arch/risc-v: Unify common source include

  • #6292 risc-v/opensbi: Generalize the SBI variable handling in makefile

  • #6291 ESP32-C3: Add support for Protected Mode

  • #6400 ESP32-C3: Disable access to invalid memory regions using MPU

  • #6336 esp32*: Disable CONFIG_RAW_BINARY and make Config.mk update nuttx.manifest for nuttx.bin

  • #6325 esp32:wamr_wasi_debug: Remove CONFIG_SCHED_ONEXIT

  • #6324 Fix stm32 pwm HAVE_ADVTIM

  • #6323 esp32: Add an example config for wamr and littlefs

  • #6322 ESP32/ESP32-C3: Fix leak of semaphores created by Wi-Fi kernel thread

  • #6317 esp32_cpuidlestack.c: Remove unnecessary code.

  • #6313 arch: risc-v: Fix crt0.c if CONFIG_HAVE_CXX is not set

  • #6300 risc-v/vfork: FPU was not saved correctly

  • #6299 risc-v/vfork: Fix saved register set and add FPU registers

  • #6415 arch: k210: Add a workaround for clock stabilization

  • #6688 OpenSBI: Add configurable support for domain init

  • #6285 risc-v/mpfs: IHC: allow hart configuration

  • #6645 arch/esp32: Introduce the ESP32_RTC option

  • #5946 arch/xtensa: Add xtensa_tcbinfo struct that contains helpful offsets

  • #5877 xtensa: add xtensa arch oneshot ops

  • #5876 xtensa: add xtensa_spill_window declaration

  • #5820 xtensa/esp32(s2)_user.c: Use macros defined in xtens_corebits.h

  • #5771 arch/xtensa: Don't always reset the APP CPU on startup

  • #5979 arch/xtensa: Build the xtensa_tcbinfo.c file for S2 and S3

  • #5987 xtensa/esp32: Add support to TWAI/CANBus

  • #5941 arch/xtensa: add syscall note support in the flat build

  • #6167 arch/xtensa: Replace the xcp context with stack context to improve context switching

  • #6148 arch/xtensa: Refactor assembly macros

  • #6147 arch/xtensa: Simply use xtensa_createstack for CPU1 idle task.

  • #6136 xtensa: Fix backtrace on exceptions

  • #6122 arch/xtensa: Color the other CPUs task when they are created

  • #6111 arch/xtensa: Use syscall interface for xtensa_save/restore_context

  • #6109 arch/sparc,xtensa: Control output by $(Q) as other arch

  • #6222 xtensa: move fpu register to XCPTCONTEXT_REGS

  • #6231 xtensa_sigtramp.S: Remove unnecessary entry instruction

  • #6203 xtensa/xtensa_coproc.S: Use the first allocated memory to save A0

  • #5790 xtensa_coporc: Adjust stack frame for C callable coprocessor functions

  • #6258 xtensa: Fix argument passing for sys_call5 and sys_call6 functions

  • #6269 xtensa: use CONFIG_ARCH_FPU macro for coprocossor and add up_fpucmp

  • #6270 xtensa: Implement syscalls required for Protected Mode

  • #6278 xtensa.h: Remove old prototype

  • #6293 Xtensa: Add missing input operand on sys_call6 inline ASM

  • #6349 arch/xtensa: Remove the assembly signal trampoline

  • #6312 xtensa/esp32s3: Add basic support to SPI

  • #6372 arch/xtensa: Initialize the internal heap early with the rest of custom heaps

  • #6352 esp32-devkitc:wamr_wasi_debug: pin WAMR version

  • #6314 xtensa: esp32: enable cp processor of app core

  • #6302 xtensa: coproc: modify coproc_save/restore to macro

  • #6294 xtensa: add perf counter

  • #6380 arch/xtensa/xtensa_coproc.S: Fix the condition to save the coprocessors state

  • #6425 arch/xtensa: Don't build xtensa_coproc.S

  • #6443 xtensa: Remove old references to co-processors

  • #6440 arch/xtensa: Refactor assembly code

  • #6436 xtensa/esp32_rtc_lowerhalf.c: Initialize ret variable

  • #6532Remove '-g' LDFLAG

  • #6573 xtensa: Unify common options within a single Make.defs

  • #6390 arch/sparc/bm3803: fix the using of uart1 and uart2

  • #6327 arch/sparc: Remove FILE dump code from _up_dumponexit

  • #6233 Tiva qemu

  • #5151 Tiva CAN driver

  • #6244 Fix broken tiva_gpioirqclear

  • #6548 tiva: Add UART CTS/RTS support

  • #5815 defconfig: add Lua configs for sim and teensy-4.x

  • #6765 arm/backtrace: use sp unwind if FRAME_POINTER is enabled on thumb mode

  • #6208 arm: Refine the common Make.defs

  • #6309 Armv6-m LTO fix

  • #6071 arm/rtl8720c: Remove up_getsp which is already implemented in arch/arm/arch.h

  • #6072 arm/armv7-[a|r]: move fpu save/restore to assembly handler

  • #6048 arm/armv8-m: indicating no low-overhead-loop predication by default

  • #6042 arch/arm: Move FPU initialization to common place

  • #6001 arm/armv[7|8]-m: skip the fpu save/restore if stack frame is integer-only

  • #5752 arch: cxd56xx: Fix critical section in serial transmission

  • #5761 arch/arm: Remove the code copy register from xcpt to stack

  • #5774 arch/arm: set the SP to stack top

  • #5824 arch/arm/src/stm32l4: peripheral voltage monitor support for vddio2

  • #5863 arch/arm: Change arm_arch.h to arm_internal.h in arm_perf.c

  • #5870 arch/armv7-a: Fix a typo in Toolchain.defs

  • #5845 armv8-m: make the securefault handled by non-securefult

  • #5850 armv7-m/armv8-m: move up_pref* api to common place

  • #5745 arch/arm/samv7/sam_tc: implement timer driver support

  • #5896 arm/cortex-[a|r]: IRQ Switch return should with shadow SPSR

  • #5897 ESP32{S2/S3/C3}: Enable support for C++ applications

  • #5918 arm/chip: add backtrace support for all chips that support thumb instruction set

  • #6079 arm/arch: using __builtin_frame_address(0) implement up_getsp()

  • #6076 arch/armv[7|8]m: enhance the clang support

  • #6073 arch/arm: Remove all lazy fpu related code

  • #6057 arch/stm32h7: Add SocketCAN FDCAN driver

  • #6091 arch/arm: Move arm_signal_dispatch.c to common folder

  • #6165 arch/arm/Make.defs: unify common source include

  • #6123 arch/arm: add support for GCC LTO

  • #6114 arm/armv[7|8]m: compare of hardware fp registers should skip REG_FP_RESERVED

  • #6107 armv7/r:cp15_cache_all: fix error in LineSize 'r5' mask

  • #6099 arch/armv7-[a|r]: correct the handing of group env switch

  • #6097 arch/armv[7|8]-m: Unify the toolchain definition of eabi/clang/iar for linux and windows

  • #6096 arch/arm: Remove unneeded group_addrenv call which handled by arm_doirq

  • #6093 arch/arm: Remove FAR and CODE from common/ and arm*/ folder

  • #6092 arch/arm: Remove FAR and CODE from chip and board folder

  • #6198 armv7-a: smp: fix stack coloration

  • #6185 arm/cxd56xx/lc823450: replace arch testset to board implement

  • #6178 armv7-a/r: use cps instruction to change cpu mode

  • #6163 arm/arch_setjmp.S: armv6m support setjmp, longjmp

  • #6103 arm: Remove or merge assembly code as much as possible

  • #6214 armv7-a: smp: allocate page table for each cpu

  • #6213 arm/cortex-m/toolchain: try print runtime library only in clang

  • #6211 armv7-a: Inner Shareable TLB maintenance operations

  • #6225 arm/tlsr82: pwm driver optimize and add pulse count support

  • #6259 arm/tlsr82: add hardware aes encrypt and decrypt support

  • #6354 arm/tlsr82: support flash protection and flash voltage calibration

  • #6311 arm/tlsr82: optimize the adc driver

  • #6424 arm/tlsr82: bugfix, tlsr82_flash_ioctl() return wrong value

  • #6379 arm/tlsr82: gpio driver bug fix and optimize

  • #6334 arm/tlsr82: ble performance optimize and problems solve

  • #6238 tlsr82/tc32: optimize the irq process

  • #6332 arch: imx6: add support kernel build and smp 

  • #6429 arch: imx6: Enable imx_idle.c to reduce CPU load

  • #6234 arm/tc32/Make.defs: filter-out arm_udelay.c

  • #6736 arm/allocateheap: fix multiple definition of 'up_allocate_heap'

  • #6659 arch/arm/samv7: fix SPI 16-bit transactions in DMA mode

  • #6676 arm_secure_irq: fix NVIC_IRQ_DBGMONITOR un-secure set failed

  • #5645 arch/arm: optimize context switch speed

  • #5662 arch/arm: Move ARCHCPUFLAGS to Toolchain.defs

  • #6228 arch/arm: Fix target 'arm_fpuconfig.o' given more than once in the same rule

  • #6201 Restore lost flash define for stm32

  • #3488 stm32h7: Adds tickless support

  • #6772 arch/stm32f7/stm32_tim.c: include the missing RCC header

  • #6771 arch/stm32xx/Kconfig: simplify and unify PWM options

  • #6757 STM32L4 DAC: Implements basic support for low level operations

  • #6741 stm32wb/mbox: fixing TX buffer queue

  • #6739 boards/arm/stm32/common/src: Fix mistakes in comments, snerr and syslog

  • #6732 Multiple stm32wl5jc flash usage improvements

  • #6775 arch/stm32/stm32_foc.c: fix some ADC and PWM ifdefs

  • #6769 arch/stm32f0l0g0: add SPI3 support (STM32G0B0 chips)

  • #6218 STM32F746G-Disco, Audiosupport, Bugfix

  • #6715 stm32wb: adding BLE support 

  • #6729 stm32f7: add showprogress in __start

  • #6078 Stm32f746 audio 

  • #6413 stm32wl5: add gpio exti support

  • #6426 stm32wl5: add flash progmem driver support

  • #6788 LPC17xx_40xx PWM multichannel support

  • #6758 LPC17_40 CAN driver SocketCAN support

  • #6267 arch/arm/samv7/sam_afec: fix ADC pin for channel 9

  • #6339 sama5d2: Fix sama5d2 Kconfig errors and add missing pin definitions

  • #6268 arm/cortex-[a|r]: add performance counter implement based on PMU

  • #6298 arch/arm/samv7: Fix PWM operation for single channel mode

  • #6265 Fixes to imxRT and SAM E70 PWM drivers

  • #6572 arch/arm/Kconfig: Add description for ARM_THUMB to make it configurable

  • #6508 sama5: add config SAMA5_SYSTEMRESET in arch/arm/src/sama5/Kconfig

  • #6534 arch/arm/armv7-m: Fix error link argument for compiler-rt

  • #6497 samv7:mcan Fix can buffer calculation. Add two words to every msg buffer

  • #6614 samv7: add support for RX DMA and RS-485 mode to serial driver

  • #6599 arch/arm/samv7: EMAC bugfixes

  • #6306 Add up_textheap_heapmember

  • #6204 MCAN_INT_ACKE must be on the list of MCAN_TXERR_INTS to be properly h…

  • #6121 compile/opt: add config DEBUG_LINK_MAP

  • #6614 samv7: add support for RX DMA and RS-485 mode to serial driver

  • #6615 Add I2C slave mode for RP2040

  • #6617 Fix arm64 stack coloration

  • #6682 Fixed path calculation in BBS RAM

  • #6790 Several IMXRT fixes

  • #6786 IMX.RT EDMA Support

  • #6787 imxrt: Ethernet Cleanup and extend support for ETH1 or ETH2 and LAN8742A

  • #6794 IMX.RT Add DMA on LPSPI, LPUART, LPI2C

  • #6675 sim: idle pm should do PM_RESOTRE in critical section

  • #6689 sim: Increased priority of loop task

  • #6792 sim/adb: Enable ping for test

  • #5862 arch/sim: Remove the unused SIM_TCNWAITERS from Kconfig

  • #5923 sim: Fix initialization of static C++ constructors when using glibc >= 2.34

  • #5885 sim/rptun: rsc must set rpmsg_vdev.config_len

  • #5756 sim: Enable garbage collection of unused input sections

  • #5988 arch/sim: support simulator keyboard devices

  • #6043 sim: bt: Add specific bluetooth HCI number id

Driver Support

New Driver Support

  • #6030 Add Sensirion's SCD41 driver and minor fix
  • #6412 drivers/sensors: add driver for as5048a magnetic encoder
  • #6345 drivers: video: add isx019 camera sensor
  • #6491 LITEETH peripheral driver support
  • #6525 drivers: add support of pwm capture driver
  • #6537 drivers/ipcc: add Inter Processor Communication driver
  • #5835 LITESDCARD peripheral driver support
  • #6510 Support for 2.13 inch display v2
  • #6634 drivers/lcd: Add support to use APA102 LED Matrix as LCD Display
  • #6408 e-ink ssd1680 driver
  • #6353 Add driver for WIZnet W5500 Ethernet controller

Bug Fixes and Improvements

  • #6068 driver/mmcsdio: do not hold the semaphore on interrupt context
  • #6019 power/governor: Remove the duplicated function prototype
  • #6021 Test/wm8904balance
  • #6018 Increase audio_comp driver flexibility
  • #5927 Minor improve for mmcsd
  • #5747 drivers/timers: rename notification parameter oneshot to periodic
  • #5849 pm: remove unnecessary depends on OSINIT_OS_READY
  • #5853 driver/syslog: Add microseconds after date time
  • #5901 power: unify lock sates and move pm_auto_update to outer dir
  • #5990 fix uinput rpmsg logic error
  • #5816 drivers/mtd/mtd_config: set different format versions for named and ID modes
  • #5736 driver/uinput: add cross core control function
  • #6127 pm: Move pm_initialize call from driver_initialize to xxx_pminitialize
  • #6053 drivers: remove unimplemented open/close/ioctl interfaces
  • #6157 drivers: mtd: fix null buffer reference
  • #6159 driver/ioexpander: remove response about irq_handler
  • #6186 Stm32f746 audio
  • #6164 drivers/audio/cxd56: Workaround for HW issue of CXD56
  • #6655 driver/syslog: support syslog_rpmsg client and server chardev
  • #6657 drivers/lcd/st7789: update putarea() method
  • #6661 drivers/syslog: Call up_nputs in syslog_default_write
  • #6668 driver/ioe_rpmsg: split server and client ept_cb to simplify code
  • #6246 drivers/sdio: Call SDIO_LOCK before and after the transaction
  • #5736 driver/uinput: add cross core control function
  • #5718 drivers/can: optimize can driver reader side
  • #6789 drivers/net: make sure that net driver d_buf is 16-bit aligned
  • #6708 driver/sensors[2]: enhance and update sensor driver
  • #6703 driver/sensor: add calibrate interface for sensor driver
  • #6704 driver/sensors: enhance sensor driver
  • #6696 driver/sensor: add sensor type of cap and wake_gesture
  • #6698 driver/power:add ioctl cmd for voltage info and protocol and add update event mask
  • #6727 power: add PM_IDLE_DOMAIN to pm.h and remove definations
  • #6759 drivers: Reorganize the power related code layout
  • #6748 power/axp202: Replace battery_charger_operations_s * with battery_charger_dev_s
  • #6761 drivers/wireless/gs2200m: Fix short bit length
  • #6743 drivers/battery: Handle the early changed event correctly
  • #6673 power related update
  • #6653 Driver/sensor: enhance sensor driver to support uorb and multi core access sensor by rpmsg
  • #6331 drivers/mtd/smart.c: Modify devname[] size to avoid overflow
  • #6414 drivers/syslog: fix deadlock by reverting part of the changes from b88a8cf39ff1019ad787c4316b22ce29c7daa2dc
  • #6435 drivers/syslog: reuse rmutex_t for the recursive check
  • #6419 drvers/mmcsd/sdio: function enable should wait for CCCR_IORDY
  • #6500 drivers: serial: Add error for insuff buffer
  • #6526 drivers/lcd: getplaneinfo fix for ST7789,ST7565 and skeleton driver
  • #6513 drivers/lcd: Fix regression on ILI9341 introduced after #6465
  • #6544 Make sensor mpu60x0 more configurable in menuconfig
  • #6564 drivers/lcd_framebuffer: Optimize updateearea for the full screan case
  • #6577 drivers/segger: Support the customize SEGGER_RTT_[BUFFER_]SECTION
  • #6113 pipe: Increase buffer size by one byte to ompensate the full indicator
  • #6455 usbhost_cdcacm: fix error with interrupt IN endpoint
  • #6369 Fix in default syslog date format
  • #6601 usbdev/usbmsc: introduce USBMSC_WRMULTIPLE for faster writes
  • #6571 fix sd can't usage when mult-block receive errro
  • #6551 framebuffer for e-ink display. Added callback function to redraw
  • #6456 mmcsd/sdio: correct return value of sdio_probe()
  • #6363 Added color reset when a syslog channel is added
  • #6362 syslog Fixed separation of log sessions
  • #5886 syslog_rpmsg related update
  • #5803 syslog: Change g_syslog_default_sem to static function variable
  • #5801 syslog/channel: minor fix to avoid unreachabled return
  • #6171 syslog: Fixed a potential buffer overflow issue
  • #6618 Optimize syslog_write performance
  • #6669 lcd/apa102: Fix APA102 RGB LED Matrix interleaving issue
  • #6639 lcd/apa102: Add putarea() support for faster rendering
  • #6633 drivers/bch: Adjust f_pos with the correct value
  • #6621 mmcsd: Remove the not really used capacity field
  • #5802 Refine the uinput implementation
  • #5800 regulator/rpmsg: list delete should use safe version in loop
  • #5893 ioe_rpmsg: use rptun_wait/post to resolve deadlock with usrsock
  • #6699 rtc/rpmsg: when a client connection, server initiates time sync
  • #6706 rptun related update 1
  • #6713 rptun related update
  • #5847 rptun related update
  • #6678 stdio: need also flush stdio when flushall
  • #6756 Minor update for sensor
  • #5880 ramlog: support setting threshold value of ramlog for poll waiters
  • #5857 c89: get rid of designated initializers in common code
  • #6738 w25qxxxjv.c: Use PRIxOFF to format off_t
  • #6728 w25qxxxjv.c: Ensure Quad SPI mode is enabled
  • #6459 Adds device descriptor for the MB5RS2MTA 256KB FRAM part
  • #6465 Add lcd_dev_s pointer to lcd_planeinfo_s to support multiple LCDs per board
  • #6588 SSD1680 Landscape mode bugfix
  • #6319 SSD1306: Added option to force reconfigure display after power off
  • #6224 LCD SSD1306: Added custom configuration option
  • #6223 LCD: Added existing FBIO_SETPOWER support to lcd_framebuffer.c
  • #6344 Video: various updates
  • #6320 use rmutex inside of all repeated implementation

Board Support

New Board Support

  • #6216 Nucleo G474RE board support including USB Full Speed Device
  • #6754 NXP S32K1XX: add initial support for NXP RDDRONE-BMS772 board
  • #6730 boards/stm32f7: add intial support for ST steval-eth001v1 board
  • #6691 boards: add initial support for ST steval-stlcs01v1
  • #6383 boards/nucleo-wl55jc: add new board
  • #6448 xtensa/esp32s3: Add esp32s3-eye board support
  • #6592 boards: add initial support for stm32l0538-disco
  • #6528 Added RP2040 Boards: Adafruit KB2040 and Adafruit Feather RP2040
  • #6620 boards/stm32f0l0g0: common board logic support
  • #6189 Sabre 6quad libcxx
  • #6793 TTGO T-Display ESP32 V1.1 board support
  • #6266 Nucleo f401 re oled
  • #6592 boards: add initial support for stm32l0538-disco

Bug Fixes and Improvements

  • #6684 Enable to test C++ static object in ELF
  • #6036 arch, boards: cxd56xx: Minor update for spresense
  • #6074 boards/arm/a1x: Remove the check CONFIG_ARCH_FPU around arm_fpuconfig
  • #5964 boards/nucleo-f446re: support for SystemView
  • #5964 boards/nucleo-f446re: support for SystemView
  • #5788 boards/arm/samv7/same70-qmtech: add gpio driver support
  • #5812 esp32s3-devkit/spiflash: Use SmartFS instead of LittleFS
  • #5817 boards/arm/same70-qmtech: Remove dead code
  • #5841 esp32s3-devkit: Fix the number of memory regions in some configurations
  • #5909 boards/boardctl:common boardctl to read reset cause
  • #5751 boards/sim/adb: Enable CONFIG_ADBD_SOCKET_SERVICE
  • #5763 boards: sabre-6quad: Enable environ and path in knsh/defconfig
  • #5839 boards: rv-virt: Fix stack corruption for rv64 config
  • #5860 boards/arm/uid: fix pointer to int compare
  • #5895 boards: correct path to RCRAWS files during file copy
  • #5785 boards/arm/samv7: define MTD progmem partitions at board level
  • #5787 boards/arm/samv7/same70-qmtech: add /dev/timer0 support
  • #5804 boards/arm/samv7/samv71-xult: Fix mcuboot update example missing config
  • #6142 boards: Switch the elf link script to binfmt/libelf/gnu-elf.ld
  • #6199 boards/space: Remove the unneeded XXXEXT definition
  • #6138 boards/boardctl: correct boarctl return value
  • #6141 boards/risc-v: Remove "MAXOPTIMIZATION = -Os" from Make.defs
  • #6143 boards: Move -fno-common from Make.defs to Toolchain.defs
  • #6144 boards: Move -g from Make.defs to Toolchain.defs 
  • #6146 boards: Move "-fno-exceptions -fcheck-new" from Make.defs to Toolchain.defs
  • #6155 boards: Move -fno-strict-aliasing from Make.defs to Toolchain.defs
  • #6195 boards: rv-virt: Add support ELF to nsh and nsh64 defconfigs
  • #6075 boards/esp32_twai: Remove arm_arch.h from comment
  • #6081 boards/sim: support rc.sysinit
  • #6654 boardctl:add reset subreason restore factory
  • #6744 boards/stm32wb/ble: adding nimble config
  • #6752 NXP S32K1XX: fix LPI2C reset
  • #6753 NXP S32K1XX boards: add up_perf_init to support SEGGER SystemView
  • #6798 board/cxd56xx/audio: Fix CXD56 audio initialization
  • #5033 boards/arm/samv7: Update mcuboot configs
  • #6692 stm32f0l0g0: fixes for SPI half duplex
  • #6693 boards/stm32g071b-disco: add ina230 support and gpio dev support
  • #6694 esp32s3-devkit: Add support to discrete 5-way joystick
  • #6764 boards: spresense: Reduce power consumption with LTE board
  • #6777 boards: Enable thread local storage for some config
  • #6391 esp32c3-devkit/knsh: Enable CONFIG_RAW_BINARY to convert the ELF file
  • #6287 stm32h7: allow definition of HSI divider in board config
  • #6373 board: nucleo-l432kc: Add missing nucleo 432kc spi driver setting
  • #6275 boards/arm: Remove "LDFLAGS += -g" whichi is already added by Toolchain.defs
  • #6439 boards/esp32: Increase the NTP deamon stack size as it was overflowing
  • #6273 board/sim: Enable hellocxx in loadable config
  • #6580 Add ws2812 bringup logic to all RP2040 boards
  • #6511 esp32_board_spi:Missing Data Command pin support
  • #6514 esp32-wrover-kit: Add board profile to support MMC/SDCard over SPI
  • #6462 boards/risc-v/mpfs/m100pfsevp/include/board_liberodefs.h: Update memo…
  • #6597 boards/xtensa: Remove outdated information
  • #6582 boards: stm32f4discovery: Add iperf to rndis/defconfig
  • #6626 stm32: hide STM32xx_SPI_DMA option and select it automatically
  • #6627 stm32g071b-disco: add OLED support
  • #6542 Nucleo Wl55JC board supports E-ink display
  • #6622 arch/stm32f0l0g0: improvements for SPI and enable SPI for STM32G0
  • #6623 stm32f0l0g0: improvements for ADC
  • #6625 stm32f0l0g0/SPI: support for half duplex and simplex rx/tx modes
  • #6646 esp32: Re-organise wireless options
  • #6585 esp32s3-devkit: Add support to ST7735 SPI LCD
  • #6648 Added Adafruit QT Py RP2040 board and made UART, SPI, and I2C configuration more flexible

File System

Bug Fixes and Improvements

  • #6726 vfs: Remove the unnessary check when CONFIG_DEBUG_MM enable
  • #6007 fs/vfs: fix st_mode mask check
  • #6002 fs/poll: change format for type pollevent_t
  • #5797 fs/rpmsgfs: minor refine the return value
  • #6686 fs/hostfs: Change nuttx_dev_t from uint16_t to uint32_t
  • #6674 procfs related update
  • #6671 rpmsgfs related update
  • #6663 fs/fs_sync/ioctl: update
  • #6662 sys/sysmacros.h: support sysmacros header
  • #6630 partition/gpt: Replace PRI?LBA with PRI?OFF
  • #6629 procfs/mount: Unify uint[32|64]_t to fsblkcnt_t for the code simplification
  • #6545 fs/fat: Fix a bug that long file name cannot be found
  • #6401 fs/mqueue: skip nxmq_pollnotify() if no poll waiters
  • #6347 fs/cromfs: Fixed a hardFault caused by unaligned memory access
  • #6104 fs:oflag need consistent with psock
  • #6100 fs/inode/fs_files:changes fd judgment method
  • #5854 fs/romfs: fix bug about test case:examples/romfs
  • #5867 fs/romfs: fix size of pointer during memory allocation
  • #5879 littlefs: unify lfs error code to nuttx
  • #5884 fs/files_allocate: assert when fd overflow
  • #5894 fs:add _POSIX_OPEN_MAX limit to files_extend
  • #5899 Fs/romfs: fix bug about compare path with same prefix
  • #6049 fs/vfs/fs_truncate.c: Use ioctl to truncate on non-mountpoint inode
  • #5891 opendir: use inode_find() instead when opendir()
  • #6024 fs/fcntl: add O_APPEND flag judge in fcntl
  • #6023 littelfs: deal with block devices w/o ioctl
  • #6773 FS disable FS_LARGEFILE by default
  • #5934 fs/unionfs: fix some warning and bug
  • #5938 fs/procfstcbinfo: minor bug about print address
  • #5883 lseek: use type:off_t for return value
  • #5764 procfs: Remove mallinfo from struct procfs_meminfo_entry_s
  • #5924 fs and unistd: increase OPEN_MAX by claiming a Kconfig
  • #5937 fs/epoll: change type of eventset from uint8_t to uint32_t
  • #5807 sys/type.h: Change pid_t from int16_t to int
  • #6307 littlefs_stat: Fix directory size
  • #6724 add heapcheck(memcheck) flag
  • #5935 fs/rpmsgfs: fix bug about using uninit variable "times"
  • #5936 fs/romfs: fix string overflow
  • #5844 rpmsgfs: do NOT access the pointer when do remote ioctl
  • #5856 rpmsgfs/rename: fix bug about pathname align with 8bytes
  • #5892 rpmsgfs related update
  • #5846 epoll: fix epoll close error, report by kasan
  • #6680 poll: defalut set POLLERR POLLHUP to events
  • #6681 unlink: don't do unlink with inode_semtake
  • #6637 mtd/smartfs: Fix uninitialized variable

Networking

Bug Fixes and Improvements

  • #5967 net:fix coverity warning

  • #5972 net/utils: fix IPv4 checksum calculation

  • #5769 net/local: correct the socket flags from client socket

  • #5750 net/udp: clear the connection structure after free

  • #5748 net/local: correct the socket flags from server socket

  • #6368 net/tcp: Hold the net lock in tcp_timer_expiry

  • #6355 tcp: remove all devif_timer

  • #6154 net/tcp:make initial tcp port more random

  • #5794 netdb/getaddrinfo: fix NULL pointer reference

  • #5791 netinitialize: call xxx_netinitialize unconditionally

  • #5770 net/sockopt: bypass the SO_RCVBUF/SO_SNDBUF to usrsock

  • #6735 make sure conn's domain is matched with addr's family

  • #6608 net: Fix frame count check fail and race condition

  • #6330 tcp: move wd_timer from wifi driver to tcp stack

  • #6289 net: fix the build when CONFIG_NET_TCP_WRITE_BUFFERS is not enabled

  • #6262 icmp: Fixed replies to broadcasts

  • #6161 Fix udp recvfrom to correctly return addrlen

  • #5799 net/netdev: fix switch case missing break

  • #6398 net/tcp: wave hands on background

  • #6297 net/tcp: Zero keeptimer in case caller set keepalive to false

  • #6290 net/tcp: Use the decrease timer in TCP_TIME_WAIT/TCP_FIN_WAIT_2

  • #6264 Fix ENOENT errors when polling on Netlink socket

  • #6428 net/tcp: d_appdata should remove the tcp specific option field

  • #6399 Packet dropped in IPv4/v6 input is now an info, not a warning

  • #6770 delay creating DNS bind socket

  • #6751 Net thread-safe ether_ntoa_r & inet_ntoa_r

  • #6740 [TCP] Close RAM usage optimization

  • #6747 Fix notify disassocitaion

  • #6702 tcp: check option length before d_len update

  • #6701 udp: Use s_sndtimeo as the actual timeout time

  • #6700 netdev: add return value for ifup / ifdown

  • #6563 net/tcp: discard connect reference before free

  • #6562 net/tcp: fix regression of invalid update the rexmit_seq in buffer mode

  • #6543 net_if: add IFF_LOOPBACK/POINTOPOINT/MULTICAST/BROADCAST

  • #6529 net: Ensure sendmsg and sendfile return -EAGAIN in case of timeout

  • #6519 netdev/carrier: check the IF stautus before carrier

  • #6451 net/tcp(buffered): retransmit only one the earliest not acknowledged segment

  • #6640 net/slip: Rename and clarify orphaned Kconfig options

  • #6590 net/poll: fix race condition if connect free before poll teardown

  • #6589 net/tcp: fix assertion of fallback connection alloc

  • #5943 This PR mainly contains some USRSOCK related changes

  • #6041 rpmsg_usrsock: Support the wireless ioctl which contain pointer

  • #5945 fix:Remove udp send large pkt assert

  • #5944 net: tcp/udp/icmp/icmpv6 add FIONSPACE support

  • #5926 local socket: cancel assert about backlog exceed 255

  • #5933 netdev_file_ioctl: Fix fcntl F_SETFL O_NONBLOCK regression

  • #5889 rpmsg_socket: fix kasan report error

  • #5848 local_socket: default set block mode if accept() a new socket

  • #6672 rpmsg socket related update

  • #6670 local socket related update

  • #5755 wireless/80211: update the 80211 header

  • #6432 wireless/bcm43xxx: add extended join parameters

  • #6358 wireless: add Wireless statistics definition

  • #6420 wireless/bcm43xxx: add support of bcm43013 chip

  • #6463 wireless/bcm43xxx: add status print on bcmf_wl_auth_event_handler()

  • #6461 wireless/bcm43xxx: Don't call bcmf_board_setup_oob_irq in bcmf_sdio_thread

  • #6457 wireless/bcm43xxx: configurable buffer size of escan result

  • #6453 wireless/bcm43xxx: replace all busy delay to nxsig_usleep

  • #6447 bcm43xxx: Remove bcmf_txavail_work and resue bcmf_tx_poll_work

  • #6446 wireless/bcm43xxx: improve throughput of net driver

  • #6444 wireless/bcm43xxx: configurable schedule priority of daemon thread

  • #6442 wireless/bcm43xxx: fix typo sq_init() -> dq_init()

  • #6441 wireless/bcm43xx: replace sem_wait to uninterruptible version

  • #6431 wirless/sdio: frame length should with guard bound

  • #6430 wireless/bcm430xx: rename chip minor id to 'x'

  • #6427 wireless/bcm43xxx: load nvram from file system

  • #6561 wireless/bcm43xxx: only break out the send loop if no data

  • #6560 wireless/bcm43xxx: remove flowctrl check

  • #6559 wireless/bcm43xxx: filter out the bssi with same ssid name

  • #6558 wireless/bcm43xxx: mac address does not need to be updated in ifup

  • #6557 wireless/bcm43xxx: discard auth event if netdev down

  • #6556 wireless/bcm43xxx: set listen interval on lowpower

  • #6555 wireless/bcm43xxx: country code should terminating with null

  • #6554 wireless/bcm43xxx: fix memory leak if tx fail

  • #6533 wireless/bcm43xxx: enable tx flow control to improve performance

  • #6524 wireless/bcm43xxx: replace private queue implement to list_node

  • #6523 wireless/bcm43xxx: remove unused tx_queue_count

  • #6518 wireless/bcm43xxx: add dynamic kso control support

  • #6517 wireless/bcm43xxx: correct the return value

  • #6501 wireless/bcm43xxx: add get country code support

  • #6494 wireless/bcm43xxx: add set country code support

  • #6488 wireless/bcm43xxx: add auto power saving support

  • #6481 wireless/bcm43xxx: remove small chunks to improve clm download speed

  • #6480 wireless/bcm43xxx: prefer HPWORK if bcmf task has higher priority than HPWORK

  • #6479 wireless/bcm43xxx: merge frame send to once to improve the performance

  • #6471 wireless/bcm43xxx: enable power saving on netdev up/down

  • #6470 wireless/bcm43xxx: add customized MAC address support

  • #6469 wireless/bcm43xxx: remove global variable for bcmf_sdio_thread

  • #6467 wireless/bcm43xxx: handle disassoc correctly

  • #6466 wireless/bcm43xxx: sort scan result by rssi

  • #6464 wireless/bcm43xxx: add more ioctl command support

  • #6636 wireless/ieee802154: Don't set IFF_DOWN in mac802154netdev_register

  • #6695 bluetooth: fixing BT buffer addref/release balance

  • #6782 bluetooth: fix net lock imbalance in drop casse


Security Issues Fixed In This Release

Compatibility Concerns

#6276 - Remove -nostartfiles and -nodefaultlibs from individual board Make.defs.

#6256 - Remove ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef and ARCHWARNINGSXX = -Wall -Wshadow -Wundef and then remove ARCHWARNINGS and ARCHWARNINGSXX from CFLAGS and CXXFLAGS.

#5897 - Remove -fno-exceptions -fcheck-new from ARCHCFLAGS and ARCHCXXFLAGS and change ARCHCFLAGS = to ARCHCFLAGS += and ARCHCXXFLAGS = to ARCHCXXFLAGS +=. C++ exceptions are now managed centrally by Kconfig options CONFIG_CXX_EXCEPTION and CONFIG_CXX_RTTI.

#6144 - Remove from each board:

ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
  ARCHOPTIMIZATION = -g
endif

and

ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
  LDFLAGS += -g
endif

as these are now managed centrally by Kconfig option CONFIG_DEBUG_SYMBOLS.

#6155 - Remove from each board:

ifneq ($(CONFIG_DEBUG_NOOPT),y)
  ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing
endif

as these are now managed centrally by Kconfig options CONFIG_DEBUG_OPTLEVEL and CONFIG_DEBUG_FULLOPT.

Changes to Build System

Known Problems In This Release

More Information

How to Download

Release artifacts for all current and past NuttX releases can be downloaded at:

How to Clone the Git Repository

The Apache NuttX project uses Git SCM as its version control system.

There are two primary repositories:

  • nuttx - The real time operating system itself.
  • apps - Optional applications and example programs for the operating system. You can use this repository or make your own custom one.

The main "Single Source of Truth" repositories are hosted by the ASF:

These are synchronized with repositories hosted at GitHub:

How to Contact the Community

The main forum for project communication, to ask a question, get involved, or contribute to NuttX, is our mailing list, dev@nuttx.apache.org. The list is publicly archived and searchable at https://lists.apache.org/list.html?dev@nuttx.apache.orgFor more information, see NuttX Community.

Enthusiastic Contributors Welcome!

NuttX is a free open-source project. If you'd like to participate, whether it's to enhance documentation (even these release notes) or dive into the nitty gritty of some low-level drivers, please join us! You can join the conversation at our dev mailing list by emailing dev-subscribe@nuttx.apache.org. The mailing list is open to the public and archived. You can browse older messages at https://lists.apache.org/list.html?dev@nuttx.apache.org.

  • No labels