Work In Progress

NuttX 12.0.0 has not been released yet. These Release Notes are a work-in-progress in preparation for the next release of NuttX.  There is a board tracking the PRs that need to be looked at to add to this doc for the OS TODO ADD LINK and for the Apps TODO ADD LINK

What's New In This Release

Changes to Core OS

Improvements

 * [#7493](https://github.com/apache/incubator-nuttx/pull/7493) sched: clock: adjust clock function to support tick
 * [#7200](https://github.com/apache/incubator-nuttx/pull/7200) sched: clock: Rename g_system_timer to g_system_ticks
 * [#6936](https://github.com/apache/incubator-nuttx/pull/6936) sched: cpuload: fix cpuload error
 * [#7318](https://github.com/apache/incubator-nuttx/pull/7318) sched: env: Skip the envirnment variable duplication of kernel thread
 * [#7490](https://github.com/apache/incubator-nuttx/pull/7490) sched: getprioritymax: handle invaild policy as posix style
 * [#7563](https://github.com/apache/incubator-nuttx/pull/7563) sched: group_setupidlefiles: fall back to /dev/null if /dev/console is disabled
 * [#7235](https://github.com/apache/incubator-nuttx/pull/7235) sched: irq: Refactor irq_spinlock.c
 * [#7469](https://github.com/apache/incubator-nuttx/pull/7469) sched: mutex: NXMUTEX_INITIALIZER should enable priority inheritance
 * [#7095](https://github.com/apache/incubator-nuttx/pull/7095) sched: mqueue: fix resource leak in mq_timedsend()
 * [#7088](https://github.com/apache/incubator-nuttx/pull/7088) sched: msgq: add support of System V message queue
 * [#7838](https://github.com/apache/incubator-nuttx/pull/7838) sched: nx_bringup: Set the initial stack size in kernel build as well
 * [#7492](https://github.com/apache/incubator-nuttx/pull/7492) sched: posix/timer: handle invaild timerid correctly
 * [#6905](https://github.com/apache/incubator-nuttx/pull/6905) sched: prctl: Replace strncpy with strlcpy for safety
 * [#7267](https://github.com/apache/incubator-nuttx/pull/7267) sched: sem: don't clear waitobj when do sem recover
 * [#6967](https://github.com/apache/incubator-nuttx/pull/6967) sched: semaphore: add sem_count temporary variable to improve performance
 * [#6318](https://github.com/apache/incubator-nuttx/pull/6318) sched: semaphore: fix priority boost restoration for priority inheritance
 * [#7456](https://github.com/apache/incubator-nuttx/pull/7456) sched: semaphore: add the wdog judge before cancel
 * [#7583](https://github.com/apache/incubator-nuttx/pull/7583) sched: signal: fix sigtimedwait error handling
 * [#7327](https://github.com/apache/incubator-nuttx/pull/7327) sched: spawn: Add the dummy task_spawnattr_xxxstackyyy in the kernel mode
 * [#7485](https://github.com/apache/incubator-nuttx/pull/7485) sched: spawn: Rename task_spawnattr_[get|set]stack[size|addr] to posix_spawnattr_[get|set]stack[size|addr]
 * [#7597](https://github.com/apache/incubator-nuttx/pull/7597) sched: task: task_getpid: getpid should return process id not thread id
 * [#7018](https://github.com/apache/incubator-nuttx/pull/7018) sched: wqueue: change single queue to double queue to improve speed
 * [#6996](https://github.com/apache/incubator-nuttx/pull/6996) sched: wqueue: fix visual studio Compiler Error C2059
 * [#7477](https://github.com/apache/incubator-nuttx/pull/7477) sched: change the type of tg_joinlock, mm_lock and md_lock from sem_t to mutex_t
 * [#7019](https://github.com/apache/incubator-nuttx/pull/7019) sched: fix corner case wd_cancel assert crash
 * [#7062](https://github.com/apache/incubator-nuttx/pull/7062) sched: fix kasan report error when open CONFIG_DEBUG_MM
 * [#6948](https://github.com/apache/incubator-nuttx/pull/6948) sched: fix macro "SCHED_NOTE_PRINTF" requires 3 argumnets, but only 1 given
 * [#7322](https://github.com/apache/incubator-nuttx/pull/7322) sched: fix runtime error UBSan(division by zero)
 * [#7792](https://github.com/apache/incubator-nuttx/pull/7792) sched: Improve UBSan configuraion
 * [#7159](https://github.com/apache/incubator-nuttx/pull/7159) sched: merge waitsem and msgwaitq
 * [#7791](https://github.com/apache/incubator-nuttx/pull/7791) sched: move _assert to kernel space.
 * [#7837](https://github.com/apache/incubator-nuttx/pull/7837) sched: move sched_note.c to drivers/note
 * [#7810](https://github.com/apache/incubator-nuttx/pull/7810) sched: pthread_mutex_timedlock never returns EINTR
 * [#7816](https://github.com/apache/incubator-nuttx/pull/7816) sched: Remove intr and EINTR from pthread mutex 
 * [#7276](https://github.com/apache/incubator-nuttx/pull/7276) sched: Minor fix backtrace config
 * [#7459](https://github.com/apache/incubator-nuttx/pull/7459) sched: use pid to check idle task
 * [#7196](https://github.com/apache/incubator-nuttx/pull/7196) sched: Optimize sched_note_begin/end
 * [#7471](https://github.com/apache/incubator-nuttx/pull/7471) sched: Remove the unnecessary (FAR sem_t *) cast
 * [#6862](https://github.com/apache/incubator-nuttx/pull/6862) sched: Remove the unnecessary weak_function
 * [#6958](https://github.com/apache/incubator-nuttx/pull/6958) sched: Remove volatile from the task list
 * [#7808](https://github.com/apache/incubator-nuttx/pull/7808) sched: move common assert logic together.
 * [#6987](https://github.com/apache/incubator-nuttx/pull/6987) sched: semaphore and mqueue task list optimize
 * [#7339](https://github.com/apache/incubator-nuttx/pull/7339) sched: Simplify HAVE_GROUP_MEMBERS logic
 * [#6866](https://github.com/apache/incubator-nuttx/pull/6866) sched: Simplify the cpuload process
 * [#7511](https://github.com/apache/incubator-nuttx/pull/7511) sched: remove sched_continue, merge code
 * [#7599](https://github.com/apache/incubator-nuttx/pull/7599) sched: remove nxsched_remove_blocked from up_unblock_task
 * [#7364](https://github.com/apache/incubator-nuttx/pull/7364) sched: Support the stack size and address for posix_spawn and kernel mode
 * [#7415](https://github.com/apache/incubator-nuttx/pull/7415) sched: Pass idle thread envionment variables to the child task through copy
 * [#7454](https://github.com/apache/incubator-nuttx/pull/7454) sched: remove the unused function nx_wait and nx_waitid
 * [#7605](https://github.com/apache/incubator-nuttx/pull/7605) sched: mqueue: make mqueue and mqueue sysv can disable separately
 * [#7656](https://github.com/apache/incubator-nuttx/pull/7656) sched: merge up_block_task and up_unblock_task
 * [#7065](https://github.com/apache/incubator-nuttx/pull/7065) sched: wqueue: fix race-condition on work_queue

 * [#7815](https://github.com/apache/incubator-nuttx/pull/7815) mm: iob: reserved bytes should be updated after each iteration
 * [#7714](https://github.com/apache/incubator-nuttx/pull/7714) mm: iob: new function iob_reserve() to adjust headroom offset
 * [#6836](https://github.com/apache/incubator-nuttx/pull/6836) mm: iob: Remove iob_user_e enum and related code
 * [#6834](https://github.com/apache/incubator-nuttx/pull/6834) mm: iob: modify iob to support header padding and alignment features
 * [#7066](https://github.com/apache/incubator-nuttx/pull/7066) mm: kasan: use init value to avoid kasan used before bss clear
 * [#7509](https://github.com/apache/incubator-nuttx/pull/7509) mm: kasan: fix kasan race-condition #
 * [#6804](https://github.com/apache/incubator-nuttx/pull/6804) mm: mempool: support mempool and show mempool info in procfs
 * [#7450](https://github.com/apache/incubator-nuttx/pull/7450) mm: mempool: support multiple-mempool and enhance mempool
 * [#7581](https://github.com/apache/incubator-nuttx/pull/7581) mm: mm_heap: Change TCB_FLAG_HEAPCHECK to TCB_FLAG_HEAP_CHECK
 * [#7449](https://github.com/apache/incubator-nuttx/pull/7449) mm: mm_heap: optimize MM_XX_SHIFT define
 * [#7495](https://github.com/apache/incubator-nuttx/pull/7495) mm: mm_heap: add debug assert to check the alignment problem
 * [#6928](https://github.com/apache/incubator-nuttx/pull/6928) mm: mm_heap: Avoid assertion violation in case of kmm_free(NULL)
 * [#7662](https://github.com/apache/incubator-nuttx/pull/7662) mm: mm_size2ndx: using flsl to calculate the ndx
 * [#7618](https://github.com/apache/incubator-nuttx/pull/7618) mm: shm: Implement a generic utility API for creating / destroying shm mappings
 * [#7607](https://github.com/apache/incubator-nuttx/pull/7607) mm: shm: Implement shmem drivers for risc-v target
 * [#7134](https://github.com/apache/incubator-nuttx/pull/7134) mm: ubsan: UBSan option should be turned on if SIM_UBSAN enabled
 * [#7301](https://github.com/apache/incubator-nuttx/pull/7301) mm: ubsan: Ubsan
 * [#7285](https://github.com/apache/incubator-nuttx/pull/7285) mm: ubsan: Fixed undefined behavior in UBSan.
 * [#6986](https://github.com/apache/incubator-nuttx/pull/6986) mm: ubsan: Allow custom the sanitizer in Kconfig
 * [#6881](https://github.com/apache/incubator-nuttx/pull/6881) mm: ubsan: debug: Introduce portion of UBSan
 * [#6979](https://github.com/apache/incubator-nuttx/pull/6979) mm: umm_heap: Do not register Umem if CONFIG_BUILD_KERNEL=y
 * [#6995](https://github.com/apache/incubator-nuttx/pull/6995) mm: Check the function result with suitable macro.
 * [#7457](https://github.com/apache/incubator-nuttx/pull/7457) mm: Check for memory leaks in tasks
 * [#6999](https://github.com/apache/incubator-nuttx/pull/6999) mm: fix runtime error by UBSan #
 * [#7536](https://github.com/apache/incubator-nuttx/pull/7536) mm: Refine mm Kconfig
 * [#7551](https://github.com/apache/incubator-nuttx/pull/7551) mm: Remove the unused macro MM_IS_ALLOCATED
 * [#7540](https://github.com/apache/incubator-nuttx/pull/7540) mm: Restore the return type of mm_lock from bool to int


Changes to the Build System

Improvements

 * [#7419](https://github.com/apache/incubator-nuttx/pull/7419) Makefile: Remove INCDIROPT
 * [#7118](https://github.com/apache/incubator-nuttx/pull/7118) Remove EXPERIMENTAL from some long existent config
 * [#7043](https://github.com/apache/incubator-nuttx/pull/7043) Kconfig: EXPERIMENTAL: Add help text and change prompt label
 * [#7052](https://github.com/apache/incubator-nuttx/pull/7052) Config.mk: Add COMPILEZIG
 * [#6885](https://github.com/apache/incubator-nuttx/pull/6885) Make the full image instrumentation configurable
 * [#7272](https://github.com/apache/incubator-nuttx/pull/7272) tools: Added Kconfig option for ccache.
 * [#7048](https://github.com/apache/incubator-nuttx/pull/7048) tools: Optimizing mkallsyms scripts with python
 * [#7103](https://github.com/apache/incubator-nuttx/pull/7103) tools: configure.sh: Update USAGE for custom out-of-tree boards
 * [#7081](https://github.com/apache/incubator-nuttx/pull/7081) tools: b16.c: Fix usage text
 * [#7080](https://github.com/apache/incubator-nuttx/pull/7080) tools: pic32: Add description, fix nxstyle, fix typos
 * [#7076](https://github.com/apache/incubator-nuttx/pull/7076) tools: Remove duplicate calls and optimize compilation speed
 * [#7569](https://github.com/apache/incubator-nuttx/pull/7569) tools: Win.mk Fix error in Windows native build
 * [#7556](https://github.com/apache/incubator-nuttx/pull/7556) tools: incdir.bat
 * [#7849](https://github.com/apache/incubator-nuttx/pull/7849) tools: Fix ccache: error: Could not find compiler "x86_64-elf-gcc" in PATH
 * [#7552](https://github.com/apache/incubator-nuttx/pull/7552) tools: ignore errors when indir does not exist
 * [#7658](https://github.com/apache/incubator-nuttx/pull/7658) tools: Config: Fix error caused by double quotation in Windows native build
 * [#7357](https://github.com/apache/incubator-nuttx/pull/7357) tools: Fix an issue that libboard.a is not exported
 * [#7686](https://github.com/apache/incubator-nuttx/pull/7686) tools: nuttx-gdbinit: restore the context at the end of each command
 * [#7594](https://github.com/apache/incubator-nuttx/pull/7594) tools: configure.bat: Update USAGE
 * [#7765](https://github.com/apache/incubator-nuttx/pull/7765) tools: define.bat: sync design of define.bat with define.sh to uniform usage
 * [#7572](https://github.com/apache/incubator-nuttx/pull/7572) tools: Fix various error in Windows native build
 * [#7560](https://github.com/apache/incubator-nuttx/pull/7560) tools: Fix some buid error
 * [#7529](https://github.com/apache/incubator-nuttx/pull/7529) tools: Fix some configure error in Windows native build

Architectural Support

New Architecture Support

 * [#7011](https://github.com/apache/incubator-nuttx/pull/7011) arch: arm: add chip GD32F450 of GD32MCU 
 * [#7125](https://github.com/apache/incubator-nuttx/pull/7125) arch: arm: initial support for NRF5340 
 * [#7443](https://github.com/apache/incubator-nuttx/pull/7443) arch: sparc: add initial support for S698PM chip and SMP
 * [#7692](https://github.com/apache/incubator-nuttx/pull/7692) arch: arm: arm64: Add support for PINE64 PinePhone

Improvements

 * [#7804](https://github.com/apache/incubator-nuttx/pull/7804) arch: arch_alarm: don't init local variable for fpu test case fail
 * [#7160](https://github.com/apache/incubator-nuttx/pull/7160) arch: Change the linker generated symbols from uint32_t to uint8_t *
 * [#6919](https://github.com/apache/incubator-nuttx/pull/6919) arch: common: Fix arm_allocateheap.c for BUILD_KERNEL
 * [#7503](https://github.com/apache/incubator-nuttx/pull/7503) arch: Fix linking of multiple preprocessed linker script files
 * [#7208](https://github.com/apache/incubator-nuttx/pull/7208) arch: makefile: preprocess link script to make configure more flexibly
 * [#7140](https://github.com/apache/incubator-nuttx/pull/7140) arch: Move _vector and g_current_regs definition to common place
 * [#7621](https://github.com/apache/incubator-nuttx/pull/7621) arch: Refine SCTLR register configuration to confirm the spec
 * [#7463](https://github.com/apache/incubator-nuttx/pull/7463) arch: Remove the unnecessary nosanitize_address from backtrace source code
 * [#7430](https://github.com/apache/incubator-nuttx/pull/7430) arch: Replace __builtin_bswapxx with bswapxx
 * [#7106](https://github.com/apache/incubator-nuttx/pull/7106) arch: Remove FAR from 32bit/64bit arch
 * [#6833](https://github.com/apache/incubator-nuttx/pull/6833) arch: SMP: fix crash when switch to new task which is still running
 * [#7610](https://github.com/apache/incubator-nuttx/pull/7610) arch: rename arch special function name
 * [#7436](https://github.com/apache/incubator-nuttx/pull/7436) arch: arm: Added breakpoint in stack overflow trap.
 * [#7100](https://github.com/apache/incubator-nuttx/pull/7100) arch: arm: add support for armclang compiler(AC6)
 * [#7818](https://github.com/apache/incubator-nuttx/pull/7818) arch: arm: add syscall SYS_save_context support for old arm and armv7-r
 * [#7448](https://github.com/apache/incubator-nuttx/pull/7448) arch: arm: added DHCSR definitions for ARMv7 & ARMv8.
 * [#7187](https://github.com/apache/incubator-nuttx/pull/7187) arch: arm: armlink: add support of link time optimization(lto)
 * [#7767](https://github.com/apache/incubator-nuttx/pull/7767) arch: arm: arm_syscall: add SYS_save_context for armv7-a
 * [#7283](https://github.com/apache/incubator-nuttx/pull/7283) arch: arm: backtrace: rename arm_backtrace_thumb.c to arm_backtrace_sp.c
 * [#7260](https://github.com/apache/incubator-nuttx/pull/7260) arch: arm: backtrace: add support for EHABI(Exception Handling ABI) stack unwinder
 * [#7119](https://github.com/apache/incubator-nuttx/pull/7119) arch: arm: correct global symbol name
 * [#6968](https://github.com/apache/incubator-nuttx/pull/6968) arch: arm: change context switch to macro
 * [#7120](https://github.com/apache/incubator-nuttx/pull/7120) arch: arm: declare vector array default type to read-only
 * [#7173](https://github.com/apache/incubator-nuttx/pull/7173) arch: arm: declare vector array default type to read-only
 * [#7502](https://github.com/apache/incubator-nuttx/pull/7502) arch: arm: document the clever trick of PRI?32 macros
 * [#7154](https://github.com/apache/incubator-nuttx/pull/7154) arch: arm: fallback to common toolchain if armeb(endian big) is unavailable
 * [#7068](https://github.com/apache/incubator-nuttx/pull/7068) arch: arm: fix backtrace busyloop
 * [#7158](https://github.com/apache/incubator-nuttx/pull/7158) arch: arm: fix conditional compilation term (#else)
 * [#7755](https://github.com/apache/incubator-nuttx/pull/7755) arch: arm: generating assemble code in ARM states by default
 * [#7827](https://github.com/apache/incubator-nuttx/pull/7827) arch: arm: Kconfig: add cortex-m85 config
 * [#7128](https://github.com/apache/incubator-nuttx/pull/7128) arch: arm: makefile: linking libraries with GCC should use option -l
 * [#7830](https://github.com/apache/incubator-nuttx/pull/7830) arch: arm: qemu-armv8a/netnsh: Set iob buffer size to 1514 to improve performance
 * [#7165](https://github.com/apache/incubator-nuttx/pull/7165) arch: arm: redefine the linker symbols as armlink style
 * [#7824](https://github.com/apache/incubator-nuttx/pull/7824) arch: arm: only compare callee-saved registers for fpu
 * [#7337](https://github.com/apache/incubator-nuttx/pull/7337) arch: arm: Remove the unnecessary cast for main_t, NULL and argv
 * [#7775](https://github.com/apache/incubator-nuttx/pull/7775) arch: arm: sync ARM_THUMB support from cortex-a
 * [#7653](https://github.com/apache/incubator-nuttx/pull/7653) arch: arm: llvm/clang: add support for LLVMEmbeddedToolchainForArm release-15.0.2
 * [#7212](https://github.com/apache/incubator-nuttx/pull/7212) arch: arm: armv[7|8]-m: Implement up_invalidate_icache
 * [#7288](https://github.com/apache/incubator-nuttx/pull/7288) arch: arm: armv7-a: add l2 page mapping interface
 * [#7064](https://github.com/apache/incubator-nuttx/pull/7064) arch: arm: armv7-a: icache also need SMP cache coherency configuration
 * [#7141](https://github.com/apache/incubator-nuttx/pull/7141) arch: arm: armv7-a: mmu enable should after enable SMP
 * [#7149](https://github.com/apache/incubator-nuttx/pull/7149) arch: arm: armv7-a: remove the code for CONFIG_ARCH_PGPOOL_MAPPING=n
 * [#7290](https://github.com/apache/incubator-nuttx/pull/7290) arch: arm: armv7-a: set normal memory shareable in smp mode
 * [#7171](https://github.com/apache/incubator-nuttx/pull/7171) arch: arm: armv7-r: correct include path of chip.h
 * [#7718](https://github.com/apache/incubator-nuttx/pull/7718) arch: arm: armv7-r: correct the wrong usage of ARMV7A_XX marco
 * [#7577](https://github.com/apache/incubator-nuttx/pull/7577) arch: arm: armv7-r: fix arm_gic_nlines redefines
 * [#7190](https://github.com/apache/incubator-nuttx/pull/7190) arch: arm: armv7-r: fix build break on armlink
 * [#7155](https://github.com/apache/incubator-nuttx/pull/7155) arch: arm: armv7-r: remove incorrect include header "addrenv.h"
 * [#7773](https://github.com/apache/incubator-nuttx/pull/7773) arch: arm: armv7-r: sync ARM_THUMB support from cortex-a
 * [#7513](https://github.com/apache/incubator-nuttx/pull/7513) arch: arm: armv7-a/r: add isb after CACHE and TLB operations.
 * [#7195](https://github.com/apache/incubator-nuttx/pull/7195) arch: arm: armv7-a/r: SMP hande all cores start at same time
 * [#7338](https://github.com/apache/incubator-nuttx/pull/7338) arch: arm: armv7-a/r: Don't define fiq stack if CONFIG_ARMV7A_DECODEFIQ=n
 * [#7751](https://github.com/apache/incubator-nuttx/pull/7751) arch: arm: armv7-a/r: thumb: force assembler files to be interpreted as Thumb code
 * [#7129](https://github.com/apache/incubator-nuttx/pull/7129) arch: arm: armv7-a/r: Implement up_affinity_irq
 * [#7144](https://github.com/apache/incubator-nuttx/pull/7144) arch: arm: armv7-a/r: only primary can do invalidate_dcache_all() at startting
 * [#7113](https://github.com/apache/incubator-nuttx/pull/7113) arch: arm: armv7-a/r: refact cp15_cache functions
 * [#7045](https://github.com/apache/incubator-nuttx/pull/7045) arch: arm: armv7-a/r: use SRS and RFE for exception handler
 * [#7063](https://github.com/apache/incubator-nuttx/pull/7063) arch: arm: armv7-a/r: use generic timer to realize arm_timer
 * [#7067](https://github.com/apache/incubator-nuttx/pull/7067) arch: arm: armv7-a/r: cache: fix up_clean_dcache() slowly
 * [#7099](https://github.com/apache/incubator-nuttx/pull/7099) arch: arm: armv7-a/r: modify regs index to improve exception performance
 * [#7384](https://github.com/apache/incubator-nuttx/pull/7384) arch: arm: armv8-m MPU fixes
 * [#7423](https://github.com/apache/incubator-nuttx/pull/7423) arch: arm: toolchain: update toolchain comment to avoid confusion
 * [#7406](https://github.com/apache/incubator-nuttx/pull/7406) arch: arm: cxd56xx: Fix stall bulk xfer when sending 512 byte data
 * [#7405](https://github.com/apache/incubator-nuttx/pull/7405) arch: arm: cxd56xx: Fix deadlock by using GNSS CEP file on SPI-Flash
 * [#6842](https://github.com/apache/incubator-nuttx/pull/6842) arch: arm: imx6: enet update
 * [#7096](https://github.com/apache/incubator-nuttx/pull/7096) arch: arm: imxrt: add support for PWM synchronization
 * [#7164](https://github.com/apache/incubator-nuttx/pull/7164) arch: arm: imxrt: add support for ADC triggering by an external signal
 * [#7593](https://github.com/apache/incubator-nuttx/pull/7593) arch: arm: imxrt: add Support for NXP TJA1103 PHY
 * [#6989](https://github.com/apache/incubator-nuttx/pull/6989) arch: arm: imxrt: encoder: add support for QEIOC_GETINDEX ioctl
 * [#7146](https://github.com/apache/incubator-nuttx/pull/7146) arch: arm: imxrt: disable PWM synchronization when XBAR connection fails
 * [#7178](https://github.com/apache/incubator-nuttx/pull/7178) arch: arm: lc823450: Fix to boot
 * [#6813](https://github.com/apache/incubator-nuttx/pull/6813) arch: arm: kinetis: EDMA update
 * [#7111](https://github.com/apache/incubator-nuttx/pull/7111) arch: arm: phy62xx: support MTDIOC_ERASESTATE
 * [#7142](https://github.com/apache/incubator-nuttx/pull/7142) arch: arm: sama5: add SAMA5D2 support for SAMA5 xdma driver
 * [#7698](https://github.com/apache/incubator-nuttx/pull/7698) arch: arm: sama5: Corrects PIO errors and omissions for SAMA5D2
 * [#7740](https://github.com/apache/incubator-nuttx/pull/7740) arch: arm: sama5: fix recursive dependency
 * [#7702](https://github.com/apache/incubator-nuttx/pull/7702) arch: arm: sama5: Fix SAMA5D2 ADC and TSD problems
 * [#7730](https://github.com/apache/incubator-nuttx/pull/7730) arch: arm: sama5: Fixes for SAMA5D2 Flexcom USART
 * [#7761](https://github.com/apache/incubator-nuttx/pull/7761) arch: arm: sama5: SAMA5D2 TDC, ADC and TC Corrections
 * [#7112](https://github.com/apache/incubator-nuttx/pull/7112) arch: arm: samv7: fix random corruption of data after SDIO RX DMA transaction
 * [#6830](https://github.com/apache/incubator-nuttx/pull/6830) arch: arm: samv7: get TX DMA running for HSMCI interface
 * [#6814](https://github.com/apache/incubator-nuttx/pull/6814) arch: arm: s32k1xx: EDMA clean up and loop support
 * [#7758](https://github.com/apache/incubator-nuttx/pull/7758) arch: arm: s32k1xx: LPI2C Add DMA support and fix compile
 * [#6821](https://github.com/apache/incubator-nuttx/pull/6821) arch: arm: s32k1xx: LPI2C Add DMA support
 * [#6882](https://github.com/apache/incubator-nuttx/pull/6882) arch: arm: S32K1xx: Fixed PM bug for clockconfig
 * [#7216](https://github.com/apache/incubator-nuttx/pull/7216) arch: arm: s32k1xx: Fix FlexIO timer register access macros
 * [#7217](https://github.com/apache/incubator-nuttx/pull/7217) arch: arm: s32k1xx: Allow building with debug features and no console.
 * [#7737](https://github.com/apache/incubator-nuttx/pull/7737) arch: arm: s32K3xx: RAM fixes
 * [#7759](https://github.com/apache/incubator-nuttx/pull/7759) arch: arm: s32k3xx: EDMA add looping and Error handling
 * [#7757](https://github.com/apache/incubator-nuttx/pull/7757) arch: arm: s32k3xx: EDMA fix DMAMUX1 access violation
 * [#7784](https://github.com/apache/incubator-nuttx/pull/7784) arch: arm: s32k3xx: EDMA Set Backdoor for DTCM memory map
 * [#7538](https://github.com/apache/incubator-nuttx/pull/7538) arch: arm: stm32_eth: Fix in assertion parameters.
 * [#7611](https://github.com/apache/incubator-nuttx/pull/7611) arch: arm: stm32: fix ADC clock after ef517ed
 * [#7592](https://github.com/apache/incubator-nuttx/pull/7592) arch: arm: stm32: 1wire: Don't free the context if the reference doesn't equal zero
 * [#7385](https://github.com/apache/incubator-nuttx/pull/7385) arch: arm: stm32: socketcan: fix the EFF flag for received frames
 * [#7347](https://github.com/apache/incubator-nuttx/pull/7347) arch: arm: stm32: socketcan: fixes for arm_netinitialize
 * [#7346](https://github.com/apache/incubator-nuttx/pull/7346) arch: arm: stm32f7: add SocketCAN support
 * [#6930](https://github.com/apache/incubator-nuttx/pull/6930) arch: arm: stm32f7: fix syslog formats
 * [#6831](https://github.com/apache/incubator-nuttx/pull/6831) arch: arm: stm32f7: fix cache invalidation issue in Ethernet RX
 * [#6889](https://github.com/apache/incubator-nuttx/pull/6889) arch: arm: stm32f7: Kconfig: add STM32F7_SYSCFG
 * [#6810](https://github.com/apache/incubator-nuttx/pull/6810) arch: arm: stm32f7: port ADC driver from arch/stm32
 * [#6811](https://github.com/apache/incubator-nuttx/pull/6811) arch: arm: stm32f7: port FOC driver from arch/stm32
 * [#6809](https://github.com/apache/incubator-nuttx/pull/6809) arch: arm: stm32f7: port PWM driver from arch/stm32
 * [#6880](https://github.com/apache/incubator-nuttx/pull/6880) arch: arm: stm32f7: stm32_otghost.c: fix undeclared ret
 * [#7763](https://github.com/apache/incubator-nuttx/pull/7763) arch: arm: stm32f7: stm32f746 usb
 * [#7258](https://github.com/apache/incubator-nuttx/pull/7258) arch: arm: stm32h7: Add support for dual bank flash
 * [#7359](https://github.com/apache/incubator-nuttx/pull/7359) arch: arm: stm32h7: Add support for stm32h7b3xx MCU's flash
 * [#7417](https://github.com/apache/incubator-nuttx/pull/7417) arch: arm: stm32h7: Allow the use of the Network Monitor via polling
 * [#7017](https://github.com/apache/incubator-nuttx/pull/7017) arch: arm: stm32h7: kconfig
 * [#7401](https://github.com/apache/incubator-nuttx/pull/7401) arch: arm: stm32h7: multiple fixes for stm32h7 flash interface
 * [#6984](https://github.com/apache/incubator-nuttx/pull/6984) arch: arm: stm32h7: stm32_fdcan_sock: fix the FDCAN_LOOPBACK config macros
 * [#7174](https://github.com/apache/incubator-nuttx/pull/7174) arch: arm: stm32h7: SDMMC fix unaligned access for buffers not on 32 bit boundaries
 * [#7194](https://github.com/apache/incubator-nuttx/pull/7194) arch: arm: stm32h7: stm32_fdcan_sock: reserve space for timeval struct in the int…
 * [#6875](https://github.com/apache/incubator-nuttx/pull/6875) arch: arm: stm32l4: ADC: Change hardware trigger configuration
 * [#7167](https://github.com/apache/incubator-nuttx/pull/7167) arch: arm: stm32l5: fix conditional compilation term (#else)
 * [#7162](https://github.com/apache/incubator-nuttx/pull/7162) arch: arm: stm32u5: fix conditional compilation term (#else)
 * [#7166](https://github.com/apache/incubator-nuttx/pull/7166) arch: arm: stm32wl5: fix conditional compilation term (#else)
 * [#6998](https://github.com/apache/incubator-nuttx/pull/6998) arch: arm: rp2040: Added SMART filesystem to RP2040 #
 * [#7037](https://github.com/apache/incubator-nuttx/pull/7037) arch: arm: rp2040: Add watchdog driver support to RP2040
 * [#7044](https://github.com/apache/incubator-nuttx/pull/7044) arch: arm: rp2040: Code Cleanup
 * [#7036](https://github.com/apache/incubator-nuttx/pull/7036) arch: arm: rp2040: Eliminate un-needed wait in rp2040 SMART filesystem
 * [#7021](https://github.com/apache/incubator-nuttx/pull/7021) arch: arm: rp2040: Fix race condition in RaspberryPi Pico W WiFi
 * [#7321](https://github.com/apache/incubator-nuttx/pull/7321) arch: arm: rp2040: Use the correct marcro name for RP2040_UART0_BASE
 * [#7029](https://github.com/apache/incubator-nuttx/pull/7029) arch: arm: telink: add custom setjmp implementation for tlsr82.
 * [#7204](https://github.com/apache/incubator-nuttx/pull/7204) arch: arm: tlsr82: move peripherals pin config to board.h
 * [#7172](https://github.com/apache/incubator-nuttx/pull/7172) arch: arm: tlsr82: replace incompatible instruction sets to internal implement
 * [#7133](https://github.com/apache/incubator-nuttx/pull/7133) arch: arm: tlsr82: serial: clear tx index also when uart_reset called.
 * [#7130](https://github.com/apache/incubator-nuttx/pull/7130) arch: arm: tlsr82: Use flase_read ins of memcpy
 * [#7630](https://github.com/apache/incubator-nuttx/pull/7630) arch: arm64: add support for Generic Interrupt Controller Version 2
 * [#7304](https://github.com/apache/incubator-nuttx/pull/7304) arch: arm64: add Cortex-A57 and Cortex-A72 configurations
 * [#7362](https://github.com/apache/incubator-nuttx/pull/7362) arch: arm64: arm64_arch_timer: delete unused includes
 * [#7256](https://github.com/apache/incubator-nuttx/pull/7256) arch: arm64: arm64_mmu: add mmu_nxrt_config
 * [#7295](https://github.com/apache/incubator-nuttx/pull/7295) arch: arm64: cleanup defconfigs
 * [#7745](https://github.com/apache/incubator-nuttx/pull/7745) arch: arm64: Fix qemu_pl011_txint() in qemu_serial.c
 * [#7262](https://github.com/apache/incubator-nuttx/pull/7262) arch: arm64: qemu/qemu_boot: fix wrong memory size
 * [#7623](https://github.com/apache/incubator-nuttx/pull/7623) arch: arm64: Move group_addrenv to arm64_syscall_switch
 * [#7261](https://github.com/apache/incubator-nuttx/pull/7261) arch: arm64: update to follow NuttX C Coding Standard
 * [#6815](https://github.com/apache/incubator-nuttx/pull/6815) arch: mips: pic32mx: add option to disable JTAG at runtime
 * [#6962](https://github.com/apache/incubator-nuttx/pull/6962) arch: risc-v: addrenv #
 * [#7246](https://github.com/apache/incubator-nuttx/pull/7246) arch: risc-v: address environments: Add basic sanity checks for section boundaries
 * [#7252](https://github.com/apache/incubator-nuttx/pull/7252) arch: risc-v: BUILD_KERNEL + SMP
 * [#6957](https://github.com/apache/incubator-nuttx/pull/6957) arch: risc-v: Dump trap val in exception handler
 * [#6817](https://github.com/apache/incubator-nuttx/pull/6817) arch: risc-v: Fix kernel MMU mapping for L3 table
 * [#7744](https://github.com/apache/incubator-nuttx/pull/7744) arch: risc-v: Fix nsec overflow in riscv_mtimer_current()
 * [#6963](https://github.com/apache/incubator-nuttx/pull/6963) arch: risc-v: Fix up_check_tcbstack() for CONFIG_ARCH_ADDRENV=y
 * [#7242](https://github.com/apache/incubator-nuttx/pull/7242) arch: risc-v: Introduce g_percpu_spin in riscv_percpu.c
 * [#7249](https://github.com/apache/incubator-nuttx/pull/7249) arch: risc-v: Introduce RISCV_IPI macro for SMP
 * [#6818](https://github.com/apache/incubator-nuttx/pull/6818) arch: risc-v: Implement riscv_sbi_set_timer
 * [#7137](https://github.com/apache/incubator-nuttx/pull/7137) arch: risc-v: Remove FPU support from qemu-rv
 * [#7823](https://github.com/apache/incubator-nuttx/pull/7823) arch: risc-v: mmu-mappings: Mark kernel page tables as NOLOAD to save ROM space in kernel
 * [#7229](https://github.com/apache/incubator-nuttx/pull/7229) arch: risc-v: bl602: Add initial DMA support, including SPI over DMA.
 * [#7280](https://github.com/apache/incubator-nuttx/pull/7280) arch: risc-v: bl602/dma: Fix possible call of null pointer
 * [#7263](https://github.com/apache/incubator-nuttx/pull/7263) arch: risc-v: bl602: Fix bug in lli functionality for dma.
 * [#7228](https://github.com/apache/incubator-nuttx/pull/7228) arch: risc-v: qemu-rv: Add M-timer handling for BUILD_KERNEL
 * [#7221](https://github.com/apache/incubator-nuttx/pull/7221) arch: risc-v: qemu-rv: Fix qemu_rv_start_s() for S-mode
 * [#7244](https://github.com/apache/incubator-nuttx/pull/7244) arch: risc-v: qemu-rv: Fix build errors in chip.h for BUILD_KERNEL + SMP
 * [#6848](https://github.com/apache/incubator-nuttx/pull/6848) arch: risc-v: qemu-rv: Fix high CPU usage in SMP mode
 * [#7254](https://github.com/apache/incubator-nuttx/pull/7254) arch: risc-v: qemu-rv: Fix timer and IPI handling for BUILD_KERNEL+SMP
 * [#7259](https://github.com/apache/incubator-nuttx/pull/7259) arch: risc-v: qemu-rv: Refactor the entry point name for BUILD_KERNEL
 * [#7829](https://github.com/apache/incubator-nuttx/pull/7829) arch: risc-v: esp32: Fix maximum I2C FIFO size (now SSD1306 will work)
 * [#7822](https://github.com/apache/incubator-nuttx/pull/7822) arch: risc-v: esp32[-S2/-S3]: Refactor and rename linker scripts
 * [#7800](https://github.com/apache/incubator-nuttx/pull/7800) arch: risc-v: esp32: Optimize macro and ensure overwrite protection
 * [#7790](https://github.com/apache/incubator-nuttx/pull/7790) arch: risc-v: esp32: Modify REG_[GET/SET]_FIELD to use [get/set]reg32
 * [#7817](https://github.com/apache/incubator-nuttx/pull/7817) arch: risc-v: es32c3: improve passthrough performance by iob offload
 * [#7637](https://github.com/apache/incubator-nuttx/pull/7637) arch: risc-v: esp32c3: fix i2c bug of timout
 * [#7214](https://github.com/apache/incubator-nuttx/pull/7214) arch: risc-v: esp32c3: Fix retrieval for linker-defined symbol 
 * [#6988](https://github.com/apache/incubator-nuttx/pull/6988) arch: risc-v: esp32c3: Fix some UBSAN shift-out-of-bounds warnings
 * [#7439](https://github.com/apache/incubator-nuttx/pull/7439) arch: risc-v: esp32[-s2/-s3/-c3]: Re-sort SPI Flash configs
 * [#7445](https://github.com/apache/incubator-nuttx/pull/7445) arch: risc-v: fix bl602 i2c sem init mistake
 * [#7060](https://github.com/apache/incubator-nuttx/pull/7060) arch: risc-v: mmu: Fix L3 mappings for kernel, and mpfs protected mode user space
 * [#7270](https://github.com/apache/incubator-nuttx/pull/7270) arch: risc-v: mpfs: Add a config option for enabling L2 cache
 * [#7460](https://github.com/apache/incubator-nuttx/pull/7460) arch: risc-v: mpfs: Add a configuration flag for SD-card card detec…
 * [#7203](https://github.com/apache/incubator-nuttx/pull/7203) arch: risc-v: mpfs: add conf flags for ddr
 * [#7047](https://github.com/apache/incubator-nuttx/pull/7047) arch: risc-v: mpfs: emmcsd: allow switching from SD to eMMC
 * [#7092](https://github.com/apache/incubator-nuttx/pull/7092) arch: risc-v: mpfs: emmcsd: further enhance the clocking
 * [#7075](https://github.com/apache/incubator-nuttx/pull/7075) arch: risc-v: mpfs: emmcsd: provide options for selecting clk speed
 * [#7526](https://github.com/apache/incubator-nuttx/pull/7526) arch: risc-v: mpfs: Fix the section align mask checks
 * [#6911](https://github.com/apache/incubator-nuttx/pull/6911) arch: risc-v: mpfs: Fixes for MSSIO GPIO configurations
 * [#7507](https://github.com/apache/incubator-nuttx/pull/7507) arch: risc-v: mpfs: ihc rework
 * [#6922](https://github.com/apache/incubator-nuttx/pull/6922) arch: risc-v: mpfs: ihc: fix performance issue
 * [#6902](https://github.com/apache/incubator-nuttx/pull/6902) arch: risc-v: mpfs: ihc: update vq ids 
 * [#6872](https://github.com/apache/incubator-nuttx/pull/6872) arch: risc-v: mpfs: ihc: don't use semaphores with OpenSBI vendor calls
 * [#7461](https://github.com/apache/incubator-nuttx/pull/7461) arch: risc-v: mpfs: Lower the defaul…
 * [#7606](https://github.com/apache/incubator-nuttx/pull/7606) arch: risc-v: mpfs: Mark .start section attributes explicitly
 * [#6879](https://github.com/apache/incubator-nuttx/pull/6879) arch: risc-v: mpfs: Make entrypoint table run-time configurable
 * [#7527](https://github.com/apache/incubator-nuttx/pull/7527) arch: risc-v: mpfs: opensbi: fix random boot failures
 * [#6878](https://github.com/apache/incubator-nuttx/pull/6878) arch: risc-v: mpfs: opensbi: Add the ddr memory region back to opensbi ld script
 * [#6820](https://github.com/apache/incubator-nuttx/pull/6820) arch: risc-v: mpfs: Remove the ddrstorage section from the OpenSBI package
 * [#7230](https://github.com/apache/incubator-nuttx/pull/7230) arch: risc-v: mpfs: Set PHY speed advert after PHY …
 * [#7091](https://github.com/apache/incubator-nuttx/pull/7091) arch: risc-v: mpfs: Stop the DDR training once it is completed
 * [#6953](https://github.com/apache/incubator-nuttx/pull/6953) arch: risc-v: mpfs: usb: fix cppcheck findings
 * [#6951](https://github.com/apache/incubator-nuttx/pull/6951) arch: risc-v: mpfs: usb: fix infinite loop issue
 * [#7041](https://github.com/apache/incubator-nuttx/pull/7041) arch: risc-v: mpfs: usb: fix usb restart
 * [#7013](https://github.com/apache/incubator-nuttx/pull/7013) arch: risc-v: mpfs: usb: provide more endpoints
 * [#7783](https://github.com/apache/incubator-nuttx/pull/7783) arch: sim: add fb poll notify support
 * [#7798](https://github.com/apache/incubator-nuttx/pull/7798) arch: sim: add v4l2 driver for sim
 * [#6933](https://github.com/apache/incubator-nuttx/pull/6933) arch: sim: added gcov dump on application exit.
 * [#6935](https://github.com/apache/incubator-nuttx/pull/6935) arch: sim: add bth4 bridge codes
 * [#6897](https://github.com/apache/incubator-nuttx/pull/6897) arch: sim: add windows host simulate support
 * [#6903](https://github.com/apache/incubator-nuttx/pull/6903) arch: sim: Assign virtio vring notifyid to RSC_NOTIFY_ID_ANY
 * [#7015](https://github.com/apache/incubator-nuttx/pull/7015) arch: sim: fix signal crash in SMP mode
 * [#7380](https://github.com/apache/incubator-nuttx/pull/7380) arch: sim: fix MTU mismatch on TAP device in host route mode
 * [#7334](https://github.com/apache/incubator-nuttx/pull/7334) arch: sim: fix tx pipeline in netdriver to avoid delaying packets.
 * [#7771](https://github.com/apache/incubator-nuttx/pull/7771) arch: sim: Make the naming consistent with each other
 * [#7779](https://github.com/apache/incubator-nuttx/pull/7779) arch: sim: netdriver: set ipv6 addr to host route
 * [#7170](https://github.com/apache/incubator-nuttx/pull/7170) arch: sim: remove stderr in the function renaming list
 * [#6852](https://github.com/apache/incubator-nuttx/pull/6852) arch: sim: remove up_smpsignal.o and up_touchscreen.o from REQUIREDOBJS
 * [#6883](https://github.com/apache/incubator-nuttx/pull/6883) arch: sim: set CMDLINE env to the argument user pass to nuttx
 * [#7717](https://github.com/apache/incubator-nuttx/pull/7717) arch: sim: sim_alsa.c: add mp3 offload playback on sim
 * [#7282](https://github.com/apache/incubator-nuttx/pull/7282) arch: sim: support multiple tapdev for sim
 * [#7655](https://github.com/apache/incubator-nuttx/pull/7655) arch: sim: Unify the host soruce file naming
 * [#6908](https://github.com/apache/incubator-nuttx/pull/6908) arch: sim: wchar_t: fix visual studio Compiler Error C2371
 * [#7335](https://github.com/apache/incubator-nuttx/pull/7335) arch: sparc: add support of spin_lock for LEON3 and LEON4
 * [#7292](https://github.com/apache/incubator-nuttx/pull/7292) arch: sparc: dismiss non-Unicode characters issue
 * [#7579](https://github.com/apache/incubator-nuttx/pull/7579) arch: xtensa: Add missing SENS registers to ESP32
 * [#6993](https://github.com/apache/incubator-nuttx/pull/6993) arch: xtensa: Minor issues to fix ESP32's TWAI.
 * [#6990](https://github.com/apache/incubator-nuttx/pull/6990) arch: xtensa: Avoid including handlers when no coprocessor is available
 * [#6937](https://github.com/apache/incubator-nuttx/pull/6937) arch: xtensa: Remove non-existent ARCH_HAVE_TESTSET support for ESP32-S2
 * [#7447](https://github.com/apache/incubator-nuttx/pull/7447) arch: xtensa: Define COMMON_CTX_REGS for chips without FPU (e.g. ESP32-S2)
 * [#6924](https://github.com/apache/incubator-nuttx/pull/6924) arch: xtensa: Fix allocation of FPU registers in exception context
 * [#7220](https://github.com/apache/incubator-nuttx/pull/7220) arch: xtensa: Add I2S support for ESP32
 * [#7375](https://github.com/apache/incubator-nuttx/pull/7375) arch: xtensa: Save SCOMPARE1 on context switches
 * [#7336](https://github.com/apache/incubator-nuttx/pull/7336) arch: xtensa: esp32_qencoder: Fix small issues and typos reported by Tiago Medicci
 * [#7328](https://github.com/apache/incubator-nuttx/pull/7328) arch: xtensa: esp32: Add support to Quadrature Encoder
 * [#7236](https://github.com/apache/incubator-nuttx/pull/7236) arch: xtensa: esp32: Allow allocation of user data in SPI RAM
 * [#7361](https://github.com/apache/incubator-nuttx/pull/7361) arch: xtensa: esp32: i2c: Add macros to conform with other peripherals and fix typos
 * [#7596](https://github.com/apache/incubator-nuttx/pull/7596) arch: xtensa: esp32: i2s: implement I2S receiver module
 * [#7501](https://github.com/apache/incubator-nuttx/pull/7501) arch: xtensa: esp32: i2s: use internal buffer to handle multiple audio formats
 * [#7360](https://github.com/apache/incubator-nuttx/pull/7360) arch: xtensa: esp32: i2s: Reduce MCLK multiple to support existing boards
 * [#7373](https://github.com/apache/incubator-nuttx/pull/7373) arch: xtensa: esp32s2: i2s: add support for I2S peripheral
 * [#7537](https://github.com/apache/incubator-nuttx/pull/7537) arch: xtensa: esp32s2: i2s: use internal buffer to handle multiple audio formats
 * [#7363](https://github.com/apache/incubator-nuttx/pull/7363) arch: xtensa: esp32s2: Fix SPI
 * [#6823](https://github.com/apache/incubator-nuttx/pull/6823) arch: xtensa: esp32s2: Add basic support to SPI
 * [#7641](https://github.com/apache/incubator-nuttx/pull/7641) arch: xtensa: esp32s2: i2s: implement I2S receiver module
 * [#7799](https://github.com/apache/incubator-nuttx/pull/7799) arch: xtensa: esp32-s3: Add support for Protected Mode

Driver Support

Bug Fixes

New Driver Support

Drivers With Significant Improvements

Board Support

Significant Improvements

New Board Support

Boards With Significant Improvements

File System

Bug Fixes

Improvements

Networking

New Features

 * [#7562](https://github.com/apache/incubator-nuttx/pull/7562) net: Add Network Address Translation (NAT) for NuttX

Improvements

 * [#7828](https://github.com/apache/incubator-nuttx/pull/7828) net: Adjust ioctl function of cellular
 * [#7821](https://github.com/apache/incubator-nuttx/pull/7821) net: Add mtu set and interface name set in ioctl
 * [#7143](https://github.com/apache/incubator-nuttx/pull/7143) net: Add IN6_IS_ADDR_LINKLOCAL macro
 * [#7727](https://github.com/apache/incubator-nuttx/pull/7727) net: extract l3 header build code into new functions
 * [#6923](https://github.com/apache/incubator-nuttx/pull/6923) net: remove pvconn reference from all devif callback
 * [#7675](https://github.com/apache/incubator-nuttx/pull/7675) net: remove psock reference from connect
 * [#7452](https://github.com/apache/incubator-nuttx/pull/7452) net: remove the unused nx_[send|recv]msg
 * [#7431](https://github.com/apache/incubator-nuttx/pull/7431) net: move IPv4/6BUF define to common header
 * [#7769](https://github.com/apache/incubator-nuttx/pull/7769) net: nename arp_arpin to arp_input
 * [#7631](https://github.com/apache/incubator-nuttx/pull/7631) net: arp: Make NET_ARP(Address Resolution Protocol) configurable
 * [#7239](https://github.com/apache/incubator-nuttx/pull/7239) net: can: improve net/can/Kconfig
 * [#7382](https://github.com/apache/incubator-nuttx/pull/7382) net: can: can_xxxsockopt.c: correct the code alignment
 * [#7733](https://github.com/apache/incubator-nuttx/pull/7733) net: chksum: move all chksum api declarations to common header
 * [#7814](https://github.com/apache/incubator-nuttx/pull/7814) net: devif_send: replace all block send to nonblock mode
 * [#7703](https://github.com/apache/incubator-nuttx/pull/7703) net: devif/ip: build l2 header on the IP layer
 * [#7746](https://github.com/apache/incubator-nuttx/pull/7746) net: devif: fix devif loopback
 * [#7719](https://github.com/apache/incubator-nuttx/pull/7719) net: devif: add common interface to build L2 headers
 * [#7701](https://github.com/apache/incubator-nuttx/pull/7701) net: devif: add common funtion to build L2 headers before sending
 * [#7574](https://github.com/apache/incubator-nuttx/pull/7574) net: dns: Reduce the dns_lock granularity
 * [#7625](https://github.com/apache/incubator-nuttx/pull/7625) net: icmp: ICMP_NO_STACK should not depends on NET_IPv4
 * [#7269](https://github.com/apache/incubator-nuttx/pull/7269) net: ipforward: fix typo in ipv4_dev_forward
 * [#7766](https://github.com/apache/incubator-nuttx/pull/7766) net: offload: add offload support for pkt/arp
 * [#7616](https://github.com/apache/incubator-nuttx/pull/7616) net: l2/l3/l4: add support of iob offload
 * [#7713](https://github.com/apache/incubator-nuttx/pull/7713) net: local: add net_lock to local_listen
 * [#6808](https://github.com/apache/incubator-nuttx/pull/6808) net: local: make local udp send multi-thread safe
 * [#7197](https://github.com/apache/incubator-nuttx/pull/7197) net: local: remove dead code
 * [#6812](https://github.com/apache/incubator-nuttx/pull/6812) net: local: remove the sync preamble from datagram
 * [#7679](https://github.com/apache/incubator-nuttx/pull/7679) net: local: support FIONWRITE for domain socket ioctl
 * [#7275](https://github.com/apache/incubator-nuttx/pull/7275) net: local: unified formatting name function
 * [#7732](https://github.com/apache/incubator-nuttx/pull/7732) net: loopback: reuse devif_loopback() logic for device lo(loopback)
 * [#7768](https://github.com/apache/incubator-nuttx/pull/7768) net: d_buf: remove d_buf reference from l3/l4
 * [#7807](https://github.com/apache/incubator-nuttx/pull/7807) net: devif: initialize d_len to 0 before polling connections
 * [#7782](https://github.com/apache/incubator-nuttx/pull/7782) net: devif: reprepare iob buffer before polling connections
 * [#7711](https://github.com/apache/incubator-nuttx/pull/7711) net: inet: fix compile failed if not define UDP
 * [#7030](https://github.com/apache/incubator-nuttx/pull/7030) net: inet: invalid addrlen length should return EINVAL
 * [#7778](https://github.com/apache/incubator-nuttx/pull/7778) net: ip: return success if the packet was forwarded.
 * [#7433](https://github.com/apache/incubator-nuttx/pull/7433) net: ipfwd: correct application data offset
 * [#7797](https://github.com/apache/incubator-nuttx/pull/7797) net: ipfwd: fix ipforward after IOB offload
 * [#7826](https://github.com/apache/incubator-nuttx/pull/7826) net: ipfwd: limit number of ipforward struct to be less than number of IOB
 * [#7750](https://github.com/apache/incubator-nuttx/pull/7750) net: ipfwd: Support ICMP/ICMPv6 error reply when forwarding
 * [#7801](https://github.com/apache/incubator-nuttx/pull/7801) net: ipfwd: update IP buffer offset
 * [#7741](https://github.com/apache/incubator-nuttx/pull/7741) net: ipv4: fix shadows declaration
 * [#7683](https://github.com/apache/incubator-nuttx/pull/7683) net: icmpv6: Fix icmpv6_reply function
 * [#6925](https://github.com/apache/incubator-nuttx/pull/6925) net: icmpv6: finetune the RA parsing procedure
 * [#7747](https://github.com/apache/incubator-nuttx/pull/7747) net: nat: Add support for ICMP Error Message
 * [#7102](https://github.com/apache/incubator-nuttx/pull/7102) net: netdev: Fix memcpy() size used by SIOCSIFHWADDR for radios
 * [#7101](https://github.com/apache/incubator-nuttx/pull/7101) net: netdev: Fix sa_family returned by SIOCGIFHWADDR
 * [#7314](https://github.com/apache/incubator-nuttx/pull/7314) net: netdev: Add Cellular link layer support
 * [#7016](https://github.com/apache/incubator-nuttx/pull/7016) net: netdev: ioctl: correct the argument length of ioctl MII/PHY
 * [#7038](https://github.com/apache/incubator-nuttx/pull/7038) net: netdev ioctl: netlock/unlock() should in pairs
 * [#7020](https://github.com/apache/incubator-nuttx/pull/7020) net: netdev: simplify handling of netdev ifr ioctl()
 * [#7004](https://github.com/apache/incubator-nuttx/pull/7004) net: procfs: add tcp profs support
 * [#6997](https://github.com/apache/incubator-nuttx/pull/6997) net: procfs: add entry mapping table
 * [#7132](https://github.com/apache/incubator-nuttx/pull/7132) net: procfs: disable tcp/udp proc node if no stack available
 * [#7192](https://github.com/apache/incubator-nuttx/pull/7192) net: procfs: fix runtime error AddressSanitizer(global-buffer-overflow)
 * [#7039](https://github.com/apache/incubator-nuttx/pull/7039) net: procfs: interface index should begin from 1
 * [#7124](https://github.com/apache/incubator-nuttx/pull/7124) net: socket: implement SO_RCVBUF and SO_SNDBUF for getsockopt
 * [#7438](https://github.com/apache/incubator-nuttx/pull/7438) net: socket: remove the unused nx_xxx functions
 * [#7206](https://github.com/apache/incubator-nuttx/pull/7206) net: socket: return -ENOPROTOOPT for unsupported/unknown socket option
 * [#6907](https://github.com/apache/incubator-nuttx/pull/6907) net: sockopt: move BINDTODEVICE to socket level
 * [#7722](https://github.com/apache/incubator-nuttx/pull/7722) net: sockopt: add parameter check in psock_setsockopt
 * [#7651](https://github.com/apache/incubator-nuttx/pull/7651) net: sockif: add si_getsockopt and si_setsockopt to simply getsockopt and setsockopt
 * [#7377](https://github.com/apache/incubator-nuttx/pull/7377) net: tcp: Update conn laddr after select device
 * [#7483](https://github.com/apache/incubator-nuttx/pull/7483) net: tcp: fix build break if enable NET_TCP_NO_STACK
 * [#7350](https://github.com/apache/incubator-nuttx/pull/7350) net: tcp: remove debug counter of connect instance
 * [#7313](https://github.com/apache/incubator-nuttx/pull/7313) net: tcp: syscall send() should not return ETIMEDOUT
 * [#7535](https://github.com/apache/incubator-nuttx/pull/7535) net: tcp: Make TCP_MAXRTX and TCP_MAXSYNRTX configurable
 * [#7668](https://github.com/apache/incubator-nuttx/pull/7668) net: tcp: recv returns 0 without set errno
 * [#7571](https://github.com/apache/incubator-nuttx/pull/7571) net: tcp: find bound device when laddr is ANY
 * [#6956](https://github.com/apache/incubator-nuttx/pull/6956) net: tcp: use independent work to free the conn instance
 * [#7635](https://github.com/apache/incubator-nuttx/pull/7635) net: tcp: TCP_WAITALL should use state flag
 * [#7728](https://github.com/apache/incubator-nuttx/pull/7728) net: tcp: fix build break if enable CONFIG_NET_IPv6 only
 * [#6874](https://github.com/apache/incubator-nuttx/pull/6874) net: tcp: reset conn->nrtx when ack received
 * [#7510](https://github.com/apache/incubator-nuttx/pull/7510) net: tcp: Avoid starting TCP sequence number from 0
 * [#6947](https://github.com/apache/incubator-nuttx/pull/6947) net: tcp: fix devif callback list corruption on tcp_close()
 * [#7286](https://github.com/apache/incubator-nuttx/pull/7286) net: tcp: Added handling of MSG_WAITALL flag in TCP recv.
 * [#7652](https://github.com/apache/incubator-nuttx/pull/7652) net: usrsock: add REMOTE_CLOSED event handler to connect
 * [#6975](https://github.com/apache/incubator-nuttx/pull/6975) net: usrsock: allow usrsock *DATA_ACK with no-preload data
 * [#6893](https://github.com/apache/incubator-nuttx/pull/6893) net: usrsock: Change xid from uint64_t to uint32_t
 * [#6971](https://github.com/apache/incubator-nuttx/pull/6971) net: usrsock: Change xid from uint64_t to uint32_t
 * [#7072](https://github.com/apache/incubator-nuttx/pull/7072) net: usrsock: Code refactor
 * [#7291](https://github.com/apache/incubator-nuttx/pull/7291) net: usrsock: Correct some status exceptions in non-blocking mode usrsock connect
 * [#7665](https://github.com/apache/incubator-nuttx/pull/7665) net: usrsock: fix get/setsockopt issue about usrsock protocol
 * [#6974](https://github.com/apache/incubator-nuttx/pull/6974) net: usrsock: forward FIONBIO to socket level
 * [#6949](https://github.com/apache/incubator-nuttx/pull/6949) net: usrsock: refine usrsock's architecture
 * [#7627](https://github.com/apache/incubator-nuttx/pull/7627) net: usrsock: Refine  Kconfig option
 * [#6890](https://github.com/apache/incubator-nuttx/pull/6890) net: usrsock: Remove dev field from usrsockdev_s
 * [#7671](https://github.com/apache/incubator-nuttx/pull/7671) net: usrsock: Remove specific process from common code as much as possible
 * [#7378](https://github.com/apache/incubator-nuttx/pull/7378) net: usrsock: Some relatively reasonable error code modifications
 * [#7009](https://github.com/apache/incubator-nuttx/pull/7009) net: udp: add IPVx_PKTINFO related support
 * [#7026](https://github.com/apache/incubator-nuttx/pull/7026) net: udp: Clean up psock_udp_recvfrom related code
 * [#7506](https://github.com/apache/incubator-nuttx/pull/7506) net: utils: add net_chksum_adjust defined by RFC3022
 * [#6900](https://github.com/apache/incubator-nuttx/pull/6900) net: wireless: bluetooth: add btsnoop open-close ioctl cmd
 * [#6899](https://github.com/apache/incubator-nuttx/pull/6899) net: wireless: bluetooth: add btsnoop and snoop
 * [#7135](https://github.com/apache/incubator-nuttx/pull/7135) net: wireless: add support for netdev private ioctl
 * [#6970](https://github.com/apache/incubator-nuttx/pull/6970) net: getsockname: small addrlen should be a valid value
 * [#7576](https://github.com/apache/incubator-nuttx/pull/7576) net: rpmsg: add lock to poll & poll_notify 
 * [#6978](https://github.com/apache/incubator-nuttx/pull/6978) net: Align the prototype of sock_intf_s::si_ioctl with file_operations::ioctl

Security Issues Fixed In This Release

Compatibility Concerns

API Changes

Default Semaphore Protocol Changed

When NuttX is built with priority inheritance (CONFIG_PRIORITY_INHERITANCE), priority inheritance can be enabled or disabled per semaphore and care must be taken to make the correct choice based on how each semaphore is used.

When a semaphore is used as a mutual exclusion lock ("locking semaphore"), a thread that needs exclusive access to a resource waits on the semaphore, uses the resource, and then posts the semaphore. In this case, priority inheritance should be enabled for the semaphore (sem_setprotocol(sem, SEM_PRIO_INHERIT)) to mitigate priority inversion which could occur when multiple threads with different priorities compete for various resources.

In contrast, when a semaphore is used to signal an event from one thread to another ("signaling semaphore"), one thread waits on the semaphore and another thread posts it when the anticipated event occurs. In this case, since the thread that posts the semaphore is different than the one that waits on it, priority inheritance must not be enabled for the semaphore (sem_setprotocol(sem, SEM_PRIO_NONE)).

In earlier releases, priority inheritance was enabled by default for all semaphores whenever NuttX was built with CONFIG_PRIORITY_INHERITANCE. If a semaphore was used for signaling across threads, the non-standard API sem_setprotocol(sem, SEM_PRIO_NONE) had to be used to selectively disable priority inheritance for that semaphore.

Starting with this release, the default is changed: priority inheritance is disabled by default for all semaphores. To enable priority inheritance for a semaphore, first NuttX needs to be built with CONFIG_PRIORITY_INHERITANCE, then priority inheritance needs to be enabled for the semaphore in question with sem_setprotocol(sem, SEM_PRIO_INHERIT).

The benefit of this change is easier porting and maintenance of standards-compliant applications to NuttX by eliminating the need for 3rd party applications to call the non-standard API sem_setprotocol().

In addition, this is a safer default: Having priority inheritance inadvertently enabled for a signaling semaphore can cause incorrect behavior, while the impact of having it inadvertently disabled for a locking semaphore is limited to reduced performance.

This change was introduced in PR # 5070 https://github.com/apache/incubator-nuttx/pull/5070, git commits 4e1d967bcd0031bd07a6a46f022c75216cf98404e5fbbd416d5f1e74e3f705677b2e99b0b8c544d39a4b66fbb306d388e2ce431807a139848604a9f0, and 125de66b63b316a2c2a2912dd408f4bac2fc85c3.

All semaphore uses within the NuttX repositories have been updated; those used for locking have been replaced with mutexes (mutex_t instead of sem_t). See PR # 6965, git commits 

ef3919e4eb75b1ab854a21c98124d7e90e5c5e14590e0d5666c47dcb91ccd35faa57681ca26d4b1d, and 5db565c78d7c009eaea8517f01a2d138ab5f0028.

Downstream users need to call sem_setprotocol(sem, SEM_PRIO_INHERIT) when setting up each semaphore used for mutual exclusion locking. In addition, they may optionally remove calls to sem_setprotocol(sem, SEM_PRIO_NONE) for signaling semaphores.

Changes to Build System

Renamed or Modified Kconfig Options

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:

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.