NuttX-10.3.0
What’s New In This Release
Major Changes to Core OS
New Features
#5524 mm: iob: add support of alloc with timeout iob_timedalloc()
#4743 mm: Support the kernel address sanitizer
#5498 sched: Implement task local storage
#5418 sched: Implement sysinfo function
#5590 sched: os init_state: add new state OSINIT_IDLELOOP
#4698 sched: mq_open: add long file name check and parameter check
#5445 task: Always implement posix_spawnp as macro
#4963 trace: and sched note dump
#5366 binfmt: libelf: Implement sh_addralign handling
#4871 binfmt: elf: add bare metal coredump support
Bug Fixes
#5503 Replece clock_gettime with clock_systime_timespec if suitable
#5721 Remove the unnecessary code from nx_start
#5681 Simplify and unify fcntl with FIOCLEX and FIONCLEX
#5082 compile/flags: add FRAME_POINTER into Toolchain.defs
#5199 file_operations: get back C89 compatible initializer
#5065 rename CONFIG_USER_ENTRYPOINT to CONFIG_INIT_ENTRYPOINT
#5399 Add CONFIG_NDEBUG Kconfig to control NDEBUG definition
#5347 register_driver: fix driver modes across the code
#5509 libc.csv: Add pthread_setname_np and pthread_getname_np
#5364 libc.csv: Add more symbols
#4971 audio: audio_comp.c: capbility should use collections
#5072 graphics: vncserver: Implement vsync
#5058 graphics: vncserver: Fix buffer overflow
#5132 graphics: vnc: Decouple VNC server from NX graphic stack
#4998 system: note dump: add CONFIG_SCHED_INSTRUMENTATION_SWITCH
#5435 wireless: bluetooth: fix build break if NET_6LOWPAN enabled
#5487 binfmt: Decouple builtin from binfs file system
#4667 binfmt: Remove umm_initialize from elf_load
#5351 binfmt: elf.c: Fix syslog formats for ELF64
#5522 binfmt: Fix binfmt for BUILD_KERNEL & ADDRENV
#4689 binfmt: remove the specified prefix from target variables
#5229 binfmt: coredump: remove the block fragmentation
#5409 libc: stdlib: Compile lib_openpty.c without checking CONFIG_SERIAL_TERMIOS
#5600 libc: Imx6 thumb
#5474 libc: posix_openpty should use the absolute path(“dev/ptmx”)
#5508 libc: sim: Rename arch_setjmp[64].S to arch_setjmp_x86[_64].S
#4829 libc: Make perror work without CONFIG_FILE_STREAM
#4779 libc: wqueue Correct time calculation in work_p…
#4756 libc: machine: xtensa: add xtensa libc implement
#4752 libc Move lib_filesem.c, lib_stream.c and lib_streamsem.c to libc/stdio
#5288 libc: misc: lib_execinfo.c: fix bad memory access
#5290 libc: backtrace_malloc change sprintf to snprintf
#5381 libc: sim: arch_elf64.c: Implement R_X86_64_PC64
#4870 libc: add interface to support output stream as buffer style
#4861 libc: pthread: Implement pthread_atfork
#4992 libc: Move stream implementation from libs/libc/stdio to libs/libc/stream
#4768 libc: machine: add config LIBC_ARCH_MEMCHR
#4855 libc: psignal: Output the message to STDERR_FILENO instead STDOUT_FILENO
#4853 libc: hex2bin: Handle the line ending(\r, \n and \r\n) dynamically
#5690 libc: gettext: Support the plural format
#5692 libc: stdio: Fix bug when CONFIG_LIBC_NUMBERED_ARGS is enabled
#5465 libc: chdir:”PWD” should save absolute path
#4994 libc: textdomain: Fix error behaviour
#5039 libc: lzfcompress: add lzf compress stream
#4859 libc: getdelim: Remove KERNEL check since it shouldn’t be called inside kernel
#4944 libc: getopt: Move struct getopt_s to include/nuttx/tls.h
#4881 libc: Update include/nuttx/input/x11_keysymdef.h to the latest version
#5126 libc: math: fix fmod family operation
#5125 libc: math: fix log and logf calculations on ARMv7 (and maybe others)
#5170 libc: pthread:pthread_barrierinit sem use pri_none
#2063 libc: Fix libcxx for sim/macOS
#5269 libc: Fix a few libcxx build issues for sim/macOS
#5202 libc: libcxx-mini: operator new will assert when alloc failed.
#5180 libc: pthread: restore pthread mutex default protocol POSIX compatibility
#5549 libc: pthread: add the kernel stack allocation for ADDRENV=y and BUILD_KERNEL
#4978 libc: Add getprogname function
#5004 libc: unistd: getopt: Use argc to end parsing
#5017 libc: Enable terminal api regardless of CONFIG_SERIAL_TERMIOS setting
#5053 libc: symtab: optimize the find speed by bisection
#5096 libc: Add backtrace_symbols[_fd] functions
#4874 libc: stdoutstream: restore the output method to fputc()
#5564 libc: machine: Implement ARM aeabi_xxx API called by clang
#5398 libc: Implement posix_openpt
#4962 libc: allsyms: Load all symbols for debugging
#4909 libc: Add mknod implementation
#4894 libc: misc: add err.c to libc
#4893 libc: str: add strlcat to libc
#5575 libc: sched: task_setcanceltype: fix function name in comment
#4828 libc: stdio: Handle 64bits off_t correctly
#4804 libc: netdb: fix access within misaligned address error
#4725 libc: Improve the netdb config consistency
#4985 libc: Remove CEVA tl420/tl421 support on Nuttx
#5036 libc: net: Implement getifaddrs and freeifaddrs
#5519 libc: Fix -Werror=nonnull-compare and -Werror=format-truncation=
#5629 libc: fix up_tls_info define for BUILD_KERNEL
#5307 libc: bug patch for frexpf function
#5107 libc: Ensure that sethostname null terminates the hostname correctly
#5479 libdsp: lib_observer: add nolinear fluxlink observer
#5483 libdsp: improvements for lib_observer.c
#5563 libdsp: minor improvements and support for fixed16 observers
#5527 libnx: handle the bad message correctly
#5321 libxx: uclibxx: add patch use overload constructor of filebuf & ostream
#4747 Revert “libc: Implement fesetround & fegetround for arm”
#4739 Revert “lib/netdb: Change the default NETDB_DNSCLIENT_NAMESIZE to NAME…
#5459 mm: mm_heap: add mm_foreach to run handler for every memory node
#5504 mm: handle take mm sem in IRQ
#4765 mm: fix realloc overwrite memcpy when use a new block
#4759 mm: do kmm_checkcorruption in IRQ when TCB_FLAG_DEBUG_CHECK set
#5532 mm: fix gran_alloc() array index range checking
#5548 mm: fix #if condition of g_mmheap for BUILD_KERNEL and ADDRENV
#5539 mm: handle take mm sem in IRQ
#5585 mm: Add memory dump function when enable CONFIG_DEBUG_MM
#5417 pthread: Add len argument to pthread_getname_np
#4798 sched: Reduce the default preallocated buffer when DEFAULT_SMALL=y
#5632 sched: group: Fix dataabort when exiting task or pthread if ARCH_ADDR_ENV=y
#5658 sched: group: Simplify the allocation and deallocation logic
#5649 Revert “sched: Don’t duplicate caller file handler when creating kernel thread”
#5543 sched: Mark pthread as non-cancelable to avoid additional calls to pthread_exit()
#5583 sched: note:add switch and dump instrumentation
#5416 sched: Disable pthread by default when DEFAULT_SMALL is enabled
#5015 sched: add holder in sem_trywait
#5264 sched: Define SMP_NCPUS to 1 in no SMP case
#4803 sched: signal: add spinlock to g_sigfreeaction
#4799 sched: Disable message queue by default when DEFAULT_SMALL equals y
#4772 sched: vfork: allocate tls_info_s instead task_info_s from stack
#4931 sched: sched_waitpid:delete debugassert
#4863 sched: Move g_tcbinfo to include/nuttx/sched.h
#5331 sched: critmonitor: remove the assertion if counter == 0
#5098 sched: backtrace: Dump the complete stack regardless the depth
#5185 sched: Remove CONFIG_ prefix from SCHED_HPWORK
#4666 sched: Remove pidhash_s and move ticks to tcb_s
#4676 sched: Check g_pidhash[hash_ndx] isn’t NULL before access pid field in nxsched_get_tcb
#5545 sched: clock: Remove CLOCK_MONOTONIC option from Kconfig
#5464 sched: tcbinfo: Fix warning by discarded qualifiers
#5455 sched: mqueue: remove unused leave_cancellation_point
#5456 sched: module: remove redundant unlock
#5392 sched: Remove SDCLONE_DISABLE option and config
#4858 sched: watchdog: remove tick check in wd_timer
#5018 sched: init/nx_start.c: fix compile break when CONIFG_TASK_NAME_SIZE=0
#4999 sched: sched_note: change uint32_t nbi_module into uint8_t array
#4989 sched: fix bug in the function nxsched_resume_scheduler
#4958 sched: signal: Introduce a private spinlock in sig_action.c
#4954 sched: dumpstack: raise the stack dump level to emergency
#4953 sched: semaphore: fix race condition for timed wait
#4913 sched: Move argv from tcb_s to task_info_s
#5368 sched: idle: remove heap & stack check in idle thread
#4782 sched: sem: remove limitation of irq context when do sem_trywait
#4972 sched: wqueue: update wqueue to support using wqueue before wqueue start
#5266 sched: IDLE thread will not boost up when IDLE hold sem
#5540 sched: semaphore: fix corner case sem_waitirq assert crash
#4682 sched: cpuload: fix crash because of the member of g_pidhash is NULL
#5171 sched: semaphore: release all semaphores’ holder that the task held when exit
#5063 sched: wqueue: fix NO leave_critical_section() when only CONFIG_SCHED_HPWORK
Major Changes to the Build System
New Features
Bug Fixes
#5362 tools: mkromfsimg.sh: add attribute to set minimum 4 bytes aignment for romfs image data
#4794 tools: mkconfig: Handle string with escape character correctly
#4730 tools: add code coverage tool
#5174 tools: Fix parallel build issue due to missing dependency
#5275 tools: mkromfsimg.sh: fix build error in case if romfs is used
#5274 tools: add option to reuse boards common files for custom boards
#5715 tools: define BOARD_COMMON_DIR only if ARCH_BOARD_COMMON is set
#5533 tools: Default macro to compile one Rust file.
#5494 tools: Unix.mk: silence output from version.sh
#5400 tools: mkconfig: Remove the unnecessary config option correction
#4701 tools: esp32: Refactor generation of QEMU-compatible image
#4865 tools: gdbinit: add sim:x86-m32 support
#4926 tools: rp2040: Compile with C++14
#4936 tools: Rename size_report to size_report.py
#5518 tools: mkallsyms.sh: Disable the mismatch warning of builtin declaration
#5346 tools: Config.mk: suppress all normal output for cmp
#5374 tools: Detect correct host CPU on MacOS/Linux running on ARM.
#4673 tools: CeDeROM add *BSD support 20211016
#4494 tools: build: Replace ‘make download’ with ‘make flash’, but keep both for now
#5116 tools: Remove .clean_context
#4869 tools: Improve releasecheck.sh
#5491 tools: Fix configure.sh for custom apps dir.
#5495 tools: Fix jlink-nuttx build with GCC 10.2
#5505 tools: Fix JLinkGDBServer crash attaching to target
#5147 tools: Improve dependencies for include/nuttx/version.h
#5162 tools: Improve dirlinks dependencies for Makefile.win
#5055 tools: Improve Makefile.[unix|win]::context’s dependencies
#5163 tools: Rename Makefile.* to have the .mk extension
Architectural Support
New Architecture Support
Architecture with Significant Improvements
#5468 arch: Add xxx_tcbinfo.c to SoC level Make.defs
#5482 arch: Replace nx_vsyslog with vsyslog
#5507 arch: Align the implementation of stack related functions
#4830 arch: Remove fflush(stdout) from driver code
#5741 arch: Make the comment and definition of CONFIG_SYS_RESERVED correctly
#5332 arch: Toolchain.defs: Simplify addition builtin library to EXTRA_LIBS
#5122 arch: backtrace: correct the skip counter
#5095 arch: Select ARCH_HAVE_BACKTRACE in Kconfig for supported arch
#5342 arch: Add up_perf_getfreq function
#5335 arch: cache: flush/clean dcache all if size large than cache size
#5328 arch: Decouple up_critmon_[gettime|convert] from critmon
#4699 arch: cache: add lock & unlock feature
#4910 arch: Dump task name through tcb_s::name instead of argv[0]
#4677 arch: *_cpupause:Allow a spin before taking the g_cpu_wait spinlock.
#5007 arch: assert: flush the syslog before stack dump to avoid buffer overwrite
#4942 arch: tcbinfo: fix build break if task name disabled
#4941 arch: Remove the duplicated up_tls_info implementation
#5385 arch: Toolchain.defs: Replace –print-file-name=libgcc.a with –print-libgcc-file-name
#5371 arch: Toolchain.defs: Don’t expand EXTRA_LIBS immediately
#5057 arch: arm/risc-v/xtensa: enhance the task dump
#5397 arch: arm/renesas/xtensa: fix leaving from critical section
#5231 arch: arm/xtensa/risc-v: save the running registers to xcp context
#5719 arch: Move [arm|xtensa]intstack[alloc|top] to common header file
#5060 arch: Kconfig: Add HAVE_SYSCALL_HOOKS configs to Xtensa arch.
#4840 arch: add MTDIOCTL_PROGMEM_ERASESTATE support
#5259 arch: use HTONS, NTOHS, HTONL, NTOHL macro in kernel code
#5008 arch: assert: unify stack and register dump across platforms
#4810 arch: debug: add tools for task aware debug
#5088 arch: make/allsyms: skip the unnecessary link operation
#4749 arch: Remove FILE dump code from _up_dumponexit
#5309 arch: toolchain: add libm to EXTRA_LIBS only if it is provided by the compiler
#5120 arch: signal: signal handler may cause task’s state error
#4993 arch: tls: restore C89 compatibility for TLS
ARM
#4816 arch: arm: Remove EXPERIMENTAL from ARCH_TRUSTZONE_XXX
#5562 arch: arm: add BUILD_KERNEL code in arm: arm_vectors.S
#4980 arch: arm: select LIBC_ARCH_ATOMIC when config ARCH_CHIP_RP2040
#4961 arch: arm: assert: fix the stack dump overflow
#4935 arch: arm: Implement TLS support
#4917 arch: arm: Kconfig: Add ARCH_HAVE_PROGMEM config
#5593 arch: arm: unify some duplicate code to common layer
#5691 arch: arm: Move setjmp to common place
#4878 arch: arm: fix unalign cacheline invalidate & add cache coherence config for semihosting option
#5744 arch: arm: timer_lowerhalf: minor improvements
#5087 arch: arm: assert: move the arm_assert to common code
#5085 arch: arm: move the backtrace implement to common code
#5084 arch: arm: select ARM_THUMB by default for Cortex-M
#5329 arch: arm: Fix make export for armv7-a SoCs
#5105 arch: arm: Fix rebase error in arm_backtrace_thumb.c
#5703 arch: arm: Support setjmp/longjmp for all socs
#5582 arch: arm: replace SYS_syscall_return hardcode from syscall
#5502 arch: arm: armv7-a: Add debug messages for addrenv
#5511 arch: arm: armv7-a: Fix arm_syscall for SYS_pthread_start
#5517 arch: arm: armv7-a: fix gtm.h GTM_COMP1 and GTM_AUTO defines
#5620 arch: arm: armv7-a: Remove CONFIG_SMP guard from arm_scu.c
#5742 arch: arm: armv7-a/r: unified syscall registers dump
#5066 arch: arm: armv7-a/r: dump all registers with alias
#5354 arch: arm: armv7-a/r: cp15_invalidate_dcache_all: fix Sets mask error.
#5367 arch: arm: armv7-a/r: bugfix: fix a4 register use but not store in xxx_invalidate/flush/clean_all.S
#5558 arch: arm: armv7-a/r: fix SVC’s sp restore in arm_vectors.S
#5628 arch: arm: armv7-a/r: handle swi on interrupt stack
#5734 arch: arm: armv7-a/r: set the default CPU mode to System
#5506 arch: arm: armv7-a/r: unify switch context from software interrupt
#5441 arch: arm: armv7-a/r: cache: add cp15_cache_size function and use flush/clean_all if size large than cache size
#5650 arch: arm: armv7-a/r: cache: modify hardcode in cache set/way operation
#4702 arch: arm: armv7-m,armv7-r,armv8-m:MPU Add mpu_reset and ARM_MPU_EARLY_RESET
#5477 arch: arm: armv8-m: Handle the special irq correctly in up_secure_irq
#5355 arch: arm: cortex-m: doirq: do not update the CURRENT_REGS on nested interrupt handling
#4960 arch: arm: cortex-m: backtrace: remove the push process to simplify backtrace
#4956 arch: arm: cortex-m: assert: dump all registers with alias
#4955 arch: arm: cortex-m: fault: add CFSR(Configurable Fault Status Register) Definitions
#5048 arch: arm: cortex-m: hardfault: add secure-fault handler
#4959 arch: arm: cortex-m: enhance the crash dump
#4957 arch: arm: cortex-m: hardfault: add usage/bus-fault handler
#4965 arch: arm: cortex-m23: remove mem-fault select from armv8-m baseline
EFM32
#5587 arch: arm: efm32: Garbage configuration setting in EFM32 code
IMX6
IMXRT
LC823450
#4951 arch: arm: lc823450: Replace the critical section with spinlock in lc823450_serial.c
NRF52
PHY62XX
#5642 arch: arm: phy62xx: remove unused private header
RP2040
#4786 arch: arm: rp2040: support I2C_RESET
RTL8720C
#5552 arch: arm: rtl8720c: Remove the unused Toolchain.defs
S32K1XX
#5220 arch: arm: s32k1xx: implement uniqueid
SAM34
#5700 arch: arm: sam34: sam_dmac.c: Fix compilation error
SAMV7
#5513 arch: arm: samv7: fix peripheral id shift during transmit xdma configuration
#5413 arch: arm: samv7: sam_progmem: insert DMB instruction into data write loop
#5411 arch: arm: samv7: add arm_systemreset.c to CMN_CSRCS
#5471 arch: arm: samv7: Added support for PWM driver
#4795 arch: arm: samv7: add support for AFEC driver
#4737 arch: arm: samv7: add support for QSPI driver in SPI Mode
#5145 arch: arm: samv7: correct number on interrupts
#4950 arch: arm: samv7: enable MCAN driver support for both rev A and rev B
#4901 arch: arm: samv7: Add DMA and TC support to AFEC (ADC) driver
#5146 arch: arm: samv7: rework SAMv7 timer counter implementation
#5219 arch: arm: samv7: implement quadrature encoder driver
#5043 arch: arm: samv7: initial support for LIN bus communication (Master only)
#4904 arch: arm: samv7: fix unaligned address write for progmem interface
#4899 arch: arm: samv7: fix page size flash writing for page unaligned addresses
#5393 arch: arm: samv7: fix leaving from critical section in HSMCI callback
STM32
#5206 arch: arm: stm32: add FDCAN support
#5169 arch: arm: stm32: add SocketCAN support
#5167 arch: arm: stm32: add CAN error support
#5419 arch: arm: stm32: add FDCAN SocketCAN support
#5523 arch: arm: stm32: dp83848c ethernet phy interrupt support
#5481 arch: arm: stm32: fdcan: add CAN FD frames support
#5370 arch: arm: stm32: Add OTG ID GPIO disable
#4790 arch: arm: stm32: Qencoder: add support for the encoder index pin and implementation for stm32/qenco
#5627 arch: arm: stm32f103re has a dac module.but the pinmap file has no corresponding
#5300 arch: arm: stm32f20xxf40xx: up_progmem_erasesize for stm32f20xxf40xx_flash.c
#5605 arch: arm: stm32f405: Add DAC2 configuration
#4967 arch: arm: stm32f412: add SPI2 & SPI3
#5267 arch: arm: stm32f7: serial fix PM_CONFIG build
#5064 arch: arm: stm32f7: sdmmc invalidate before DMA to avoid eviction overwrite -
#4704 arch: arm: stm32f0/g0/l0: Add custom clock config option to stm32f0/g0/l0 chips
#4872 arch: arm: stm32f7: sdmmc defer invalidate until after DMA completion
#5677 arch: arm: stm32f7: fix CAN3 receiving
#4741 arch: arm: stm32g4: Minor fixes for stm32g4 foc
#4780 arch: arm: stm32h7: sdmmc: do not enable power saving configuration bit in SD 4-bit mode
#4770 arch: arm: stm32h7: dmamux: correct bit fields
#4755 arch: arm: stm32h7: sdmmc: added missing sdio_set_sdio_card_isr() function to initialize SDIO in-band interrupt logic
#4731 arch: arm: stm32h7: add low power timers
#5492 arch: arm: stm32h7: Fix build for all config {R|T}XDMA states
#5493 arch: arm: stm32h7: Flash fixes from 328374f4658d11655f268f968f4c6c7a3942f320
#4815 arch: arm: stm32l4: dfumode: enable for STM32L4+ chips
#5666 arch: arm: stm32l4: stm32l4+ might need flash data cache corruption workaround
#4975 arch: arm: stm32l4: stm32l4_pwm.c: fix printf format
CEVA
SIM
#5696 arch: sim: add all symbols support
#5641 arch: sim: add loop thread to handle dev loops
#4716 arch: sim: add native socket support based on usrsock
#4882 arch: sim: Add new option to enable arch specific hostfs
#4776 arch: sim: host ASAN improvement
#5401 arch: sim: initial support sim:nsh on MacOS M1 based hosts.
#5452 arch: sim: detect clang native compiler on MacOS.
#5414 arch: sim: Unify the return value of usrsock_xxx_handler
#5473 arch: sim: Always typedef xcpt_reg_t to unsigned long
#4751 arch: arm: Add l suffix for INT32_C macro
#5099 arch: sim: Implement up_backtrace
#5071 arch: sim: Support vncserver as display device
#4977 arch: sim: add CONFIG_SIM_STACKSIZE_ADJUSTMENT to reduce variability
#5384 arch: sim: Adjust the stack size for up_use_stack too
#5486 arch: sim: Fix a build with clang on linux
#5295 arch: sim: Added Kconfig option for UART buffer size.
#5188 arch: sim: Rename up_vfork_x[32|64].S to up_vfork_x86[_64].S
#5179 arch: sim: Move spiflash simulation to drivers/spi instead
#5178 arch: sim: Rename up_vfork[32|64].S to up_vfork_x[32|64].S
#5431 arch: sim: Don’t add up_tls_size in up_use_stack before forward to up_create_stack
#4487 arch: sim: Don’t add -lc++abi to STDLIBS
#4791 arch: sim: btuart: Remove the unnecessary config
#5313 arch: sim: netdev: retrieve all the queued RX frames from the network device on every poll
#4696 arch: sim: rptun: Trigger the callback only the sequence number change
#5286 arch: sim: up_macho_init.c: Add a workaround for Monterey
#5046 arch: sim: usrsock: increase the sim usrsock buffer size
#5030 arch: sim: usrsock: reuse the socket address to avoid bind timeout
#5685 arch: sim: syscall: add syscall note support in the flat build
#4754 Revert “sim: Specify -fshort-wchar as NuttX wchar_t is 16-bit”
#5343 arch: sim: netdev,tapdev: implemented emulation of TX done and RX ready interrupts
#5295 arch: sim: Added Kconfig option for UART buffer size.
#5260 arch: sim: up_touchscreen: update up_touchscreen, using touch_upperhalf
#5226 arch: sim: netdev: eliminated RX data stream congestion in case of high TX network traffic
RISC-V
#5619 arch: espressif: Fix SCHED_CPULOAD feature using Oneshot Timer
#4728 arch: espressif: Rename MTD-related configs to become more intuitive
#5044 arch: espressif: Add hardware-supported Secure Boot on top of MCUboot
#4671 arch: espressif: Provide SPI Flash parameters to MCUboot build
#5173 arch: espressif: Fix build system issues related to Flash Encryption
#5619 arch: espressif: Fix SCHED_CPULOAD feature using Oneshot Timer
#4727 arch: espressif: Enable Partition Table allocation at custom offset
#4945 arch: risc-v: Introduce basic support for qemu rv32
#5291 arch: risc-v: Unify common irq code
#5192 arch: risc-v: Merge rv32im and rv64gc into common
#5228 arch: risc-v: Support both rv32/rv64 on qemu-rv
#5160 arch: risc-v: Replace LP64 with CONFIG_ARCH_RV64
#5148 arch: risc-v: Refine riscv_assert.c and arch.h
#5243 arch: risc-v: Make exception_common 8 byte align
#5709 arch: risc-v: mpfs: Make cleaner pinmux configurations for USB
#5209 arch: risc-v: Refine riscv_vectors.S
#5123 arch: risc-v: Correct epc adjustment with C ISA
#5106 arch: risc-v: Refine riscv_testset.S
#5076 arch: risc-v: Refine Toolchain.defs
#5097 arch: risc-v: Move riscv_blocktask.c to common
#5092 arch: risc-v: Remove unneeded kconfigs
#5064 arch: risc-v: opensbi: Make.defs: use a wildcard for file listing
#5314 arch: risc-v: Move xxx_cpustart.c to common
#5103 arch: risc-v: Refine riscv_fpu.S
#5273 arch: risc-v: Sv39 MMU driver
#5135 arch: risc-v: Refine riscv_initialstate.c
#5115 arch: risc-v: Refine syscall interface
#5113 arch: risc-v: Add backtrace to risc-v common sources
#4983 arch: risc-v: Implement TLS support
#5707 arch: risc-v: Implement SYS_save_context in swint
#5695 arch: risc-v: Save/Load float register in setjmp
#5478 arch: risc-v: Use _ebss instead of _default_stack_limit as idle stack base
#5484 arch: risc-v: Implement common up_cpu_idlestack
#5490 arch: risc-v: Let g_cpu_basestack determined at compile time
#5091 arch: risc-v: pwm: add option to break the loops when using multiple PWM channels
#5454 arch: risc-v: Remove duplicated up_idle logic
#5358 arch: risc-v: RISC-V MMU: Add missing implementation for PTE getter
#5240 arch: risc-v: Refine riscv_cpupause.c
#5308 arch: risc-v: Merge mcause.h into irq.h
#5210 arch: risc-v: Refine exception_common
#5236 arch: risc-v: Refine riscv_cpuindex.c
BL602
#5316 arch: risc-v: bl602: Fix broken bl602 flash due to partition_table being incorrectly marked as unused
#5221 arch: risc-v: bl602: Rename bl602_entry.S to bl602_head.S
#4876 arch: risc-v: bl602: Enable GPIO output
#4984 arch: risc-v: bl602: Swap SPI MISO and MOSI
#5131 arch: risc-v: bl602: Fix preprocessing directives for uart flow control
#5093 arch: risc-v: bl602: Use userspace chosen channel numbers when starting bl602 pwm
ESP32C3
#5129 arch: risc-v: esp32c3: SPI flash MTD device uses all flash space
#4771 arch: risc-v: esp32c3: Remove the DMA test included in the driver along with its defconfig.
#4700 arch: risc-v: esp32c3: Remove test code from crypto accelerators drivers.
#4711 arch: risc-v: esp32c3: Remove the stub implementations of the early serial
#5615 arch: risc-v: esp32c3: Fix detection of CPU reset by Watchdog Timer
#4796 arch: risc-v: esp32c3: Fix MMU pages number calculation error
#4820 arch: risc-v: esp32c3: Partition supports BIO cmd
#4821 arch: risc-v: esp32c3: Add hardware brownout check and reset
#4834 arch: risc-v: esp32c3: esp32c3_usbserial.c: Initialize cpuint to ENOMEM.
#4813 arch: risc-v: esp32c3: Fix GPIO Output on pins 18 and 19 USB/JTAG
#4809 arch: risc-v: esp32c3: Driver for the ESP32-C3’s CDC console.
#5615 arch: risc-v: esp32c3: Fix detection of CPU reset by Watchdog Timer
#4787 arch: risc-v: esp32c3: Initialize the BLE Mac
#4822 arch: risc-v: esp32c3: Fix reset triggering crash nested when crash
#4740 arch: risc-v: esp32c3: Fix Wi-Fi & BLE coexist issues
#4886 arch: risc-v: esp32c3: Refactor SPI Flash to support umask interrupt when R/W/E SPI Flash
#4885 arch: risc-v: esp32c3: Refactor ADC calibration
#5616 arch: risc-v: esp32c3: Enable Timer Groups clocks on timer initialization
#5304 arch: risc-v: esp32c3: esp32c3_irq.c: Skip over ECALL instruction.
#5457 arch: risc-v: esp32c3: Fix issue #5377 UART1 not working because clock as disabled
#5016 arch: risc-v: esp32c3: Initialize rtc and peripheral parameters by default when chip starts
#5124 arch: risc-v: esp32s2/esp32c3: Remove unavailable support for ROM Basic Console
#5133 arch: risc-v: esp32s2/esp32c3: Add support for enabling hardware Flash Encryption on boot
MPFS
#4877 arch: risc-v: mpfs: Add spi cs control for mpfs
#5289 arch: risc-v: mpfs: bootloader entrypoints
#5247 arch: risc-v: mpfs: switch to exception common
#5360 arch: risc-v: mpfs: Add support for a ROMFS image for MPFS
#5322 arch: risc-v: mpfs: build protected
#5109 arch: risc-v: mpfs: Add MSSIO GPIO pinmap configuration
#5306 arch: risc-v: mpfs: OpenSBI: utilize an index2id table
#5287 arch: risc-v: mpfs: opensbi redefinition fixes
#5225 arch: risc-v: mpfs: Opensbi fixes
#5325 arch: risc-v: mpfs: opensbi conf
#5310 arch: risc-v: mpfs: switch to NuttX types for opensbi
#5702 arch: risc-v: mpfs: usb: apply review fixes
#5040 arch: risc-v: mpfs: add opensbi support
#4709 arch: risc-v: mpfs: emmcsd: provide proper internal emmc settings
#4714 arch: risc-v: mpfs: ddr training and system clock init
#4839 arch: risc-v: mpfs: emmcsd: boost waitresponse perf
#4817 arch: risc-v: mpfs: uart: add a way to configure uart3 and uart4
#4788 arch: risc-v: mpfs: emmcsd: fix uninitialized value
#4781 arch: risc-v: mpfs: cache: provide L1/L2 cache enablers
#4773 arch: risc-v: mpfs: i2c: Add support for adaptive I2C bus frequency
#5694 arch: risc-v: mpfs: usb: fix an unused variable warning
#5161 arch: risc-v: mpfs: mpfs_serial.c: Correct setting of nbits
#5152 arch: risc-v: opensbi: update to version 1.0
#5636 arch: risc-v/qemu-rv: Set FS bits in mstatus
#5529 arch: risc-v/qemu-rv: Supports SMP up to 8 cores and other minor changes
#4825 arch: risc-v/xtensa: Kconfig: Some cleanup and improvements to arch versions of C library functions.
#5683 arch: risc-v/xtensa: correct dumpstate xcp size
#5717 Revert “arch: risc-v: Correct FPU register save area in riscv_copystate”
SPARC
XTENSA
#4688 arch: xtensa: Kconfig: add quotes in source to clean warnings from setconfig
#5738 arch: xtensa: Save exception cause and vaddr into the user frame
#5149 arch: xtensa: Rename up_stack_color to xtensa_stack_color.
#5198 arch: xtensa: fix lack of float register save & restore
#4663 arch: xtensa: Correctly save/restore coprocessor0 state.
#5450 arch: xtensa: kconfig: move ARCH_HAVE_TESTSET config to chip
#5648 arch: xtensa: fix sp duplicate reduce in handler enter
#5541 arch: xtensa: modify svcall to swint
#5729 arch: xtensa: Small improvements around xtensa_context
#5708 arch: xtensa: small improvements around using the software interrupt.
#5684 arch: xtensa: backtrace: fix backtrace last buffer error in some scene
#5250 arch: xtensa: Fix core voltage level when SPI Flash runs at 80Mhz
#5248 arch: xtensa: some fixes in interrupt handler
#4818 arch: xtensa: mpu: use WRITEBACK attribute for intsram & extsram
#4683 arch: xtensa: mpu: modify acc and memtype to uint32_t
#4664 arch: xtensa: xtensa_context.S: Save and restore SCOMPARE1 when necessary.
#4669 arch: xtensa: xtensa_cpupause.c: Allow a spin before taking the g_cpu_wait spinlock.
#5336 arch: xtensa: use swint to switch context
#5679 arch: xtensa: xtensa_user_handler.S: Store EXCCAUSE and EXCVADDR into the user frame.
#5000 arch: xtensa: correct the interrupt stack on irq handler
ESP32
#5056 arch: xtensa: esp32: Add WiFi/BLE Coexistence support
#5187 arch: xtensa: esp32: Add PWM support using the LEDC peripheral
#5143 arch: xtensa: esp32: Use ROM implementations of libc functions
#5117 arch: xtensa: esp32: Add support for enabling hardware Flash Encryption on boot
#4991 arch: xtensa: esp32: Show CPUs activity using LEDs.
#4670 arch: xtensa: esp32: Few fixes around SPI Flash to make it SMP friendly.
#4710 arch: xtensa: esp32: Make SPI Flash initialization common to all ESP32 boards
#5542 arch: xtensa: esp32: setup software interrupt for esp32chips
#5407 arch: xtensa: esp32: Remove the QEMU special case when initializing the heap.
#5536 arch: xtensa: esp32: Few improvements around interrupt handling.
#5196 arch: xtensa: esp32: Add support to RS485
#4543 arch: xtensa: esp32: Use device specific lock as much as possible.
#4796 arch: xtensa: esp32: Fix MMU pages number calculation error
#4820 arch: xtensa: esp32: Partition supports BIO cmd
#4933 arch: xtensa: esp32: Remove CONFIG_SMP conditions in the code.
#5073 arch: xtensa: esp32: Fix some Wi-Fi issues
#4867 arch: xtensa: esp32: Fix retrieving GPIOs’ IRQ number and peripheral ID in SMP.
#4769 arch: xtensa: esp32: Make ESP32_BT_RESERVE_DRAM default to 0 again if Bluetooth is not enabled.
ESP32S2
#5213 arch: xtensa: esp32s2: Fix some wrong definitions related to IRQ management
#5212 arch: xtensa: esp32s2: Fix data cache option in menuconfig
#5693 arch: xtensa: esp32s2: Sync IRQ management API with ESP32 and ESP32-S3
#4902 arch: xtensa: esp32xx: esp32xx_rtc.c: misc. fixes.
#5609 arch: xtensa: esp32s2: Correctly enable the software interrupt.
#5698 arch: xtensa: esp32s2: Add support for Main System Watchdog Timers
#4703 arch: xtensa: esp32s2: Add RNG driver support and board profile example
ESP32S3
#5665 arch: xtensa: esp32s3: Add SPI-Flash support
#5699 arch: xtensa: esp32s3: Enable SMP support
#5723 arch: xtensa: esp32s3: Add support for RT-Timer based on Systimer peripheral
#5668 arch: xtensa: esp32s3: Add support for Tickless kernel using Systimer
#5671 arch: xtensa: esp32s3: Add support for Free-running Timer wrapper
#5686 arch: xtensa: esp32s3: Add SPI RAM/PSRAM Support
#5601 arch: xtensa: esp32s3: Add support for Main System Watchdog Timers
#5602 arch: xtensa: esp32s3: Add support for Timer Groups 0 and 1
#5604 arch: xtensa: esp32s3: Use the running CPU ID for enabling internal interrupts
#5608 arch: xtensa: esp32s3: Add support for Oneshot timer
#5722 arch: xtensa: esp32s3: Stall Timer ISR when core 1 is temporarily stalled
Z80
Driver Support
Drivers With Significant Improvements
#5256 drivers: Add usbdev serial use boardid
#5728 drivers: Merge the common driver initialization into one place
#5716 drivers: Move the common driver to misc folder
#5080 drivers: regulator/clk rpmsg: pending on wait IPC channel ready
#4864 drivers: audio: cxd56: various audio fixes
#4976 drivers: bch: support flush and aligned bch buffer
#4712 drivers: can: Fix can_poll() POLLOUT calculation
#2641 drivers: can: Cleanup usage of soft fifo semaphore
#4661 drivers: i2c: fix compile break when enable CONFIG_I2C_BITBANG_NO_DELAY
#5042 drivers: input: ads7843e: complement critical section operation
#5631 drivers: input: Remove the couple from uinput
#5624 drivers: input: joystick/buttons: Fix the event lose between the invocation of poll
#5625 drivers: input: joystick: Remove [a|d]joy_enable from [a|d]joy_sample
#5204 drivers: input: joystck/buttons: Always protect the open list by critical section
#4837 drivers: input: touchscreen: added time stamp for touchscreen event
#4800 drivers: input: touchscreen: separate the interface for user interaction
#4928 drivers: input: touchscreen: added touchscreen gesture
#5005 drivers: ioexpander: add ioe_rpmsg server and client
#5657 drivers: ioexpander: Fix invert option value usage
#5680 drivers: ioexpander: fix output inversion for ioe_dummy
#4697 drivers: ioexpander: gpio: Remove the hardcode 100 lim
#4774 drivers: ioexpander: gpio: Use generic /dev/gpioN
#5183 drivers: ioexpander: Select IOEXPANDER_INT_ENABLE instead depend on it
#5037 drivers: net: Replace self defined macros with NET_SOCK_[FAMILY|TYPE|PROTOCOL] itation
#5733 drivers: note: Add macro guard for instrumention switch
#4530 drivers: mmcsd: Add RPMB ioctl
#5215 drivers: mmcsd: sdio.c: Fix struct packing of sdio_resp_r5
#5155 drivers: mmcsd: sdio: Move sdio utils functions to drivers/mmcsd
#4472 drivers: mmcsd: sdio: Update the definition to the latest spec
#5294 drivers: mmcsd: add option to limit block count in multiple-block trans…
#5182 drivers: motor: Move simulated drivers from sim to common place
#4833 drivers: motor: add upperhalf structure
#5442 drivers: mtd: enlarge the limits of blocksize in struct m…
#5451 drivers: mtd: sst39vf.c: patch address map issue
#4924 drivers: mtd: Support multiple SST26 devices on the same spi bus
#4921 drivers: mtd: fix overflow checks in mtdpart
#4891 drivers: mtd: ramtron: Remove errant code and definitions
#4995 drivers: mtd/filemtd: improve write and erase access
#4964 drivers: note: noteram: when the buffer overflow happen and give the asan report
#4763 drivers: pipes: pipe close should notify block writing, and write will return …
#5425 drivers: pipes: Remove pipe from file system after open
#5475 drivers: pipes: Don’t use sched_[lock|unlock] to do protection
#5423 drivers: pipes: Add DEV_PIPE_VFS_PATH to specify the pipe location
#4729 drivers: power: battery: add baterr, batinfo, batwarn for debug log
#4708 drivers: power: charge: modify battery_gauge code
#4990 drivers: power: charger: fix crash when notify without pollwaiter
#4889 drivers: power: improve charger interface
#5701 drivers: power: govorner: add govorner to per domain.
#5591 drivers: power: PM: add domain inner update power state feature
#5050 drivers: power: set ioexpander direction in regulator gpio init.
#5689 drivers: segger/sysview: add syscall support
#5140 drivers: sensors: as5048b: fix lower half init issue
#5061 drivers: sensors: isl29023.c: fix compilation error and warnings
#4838 drivers: sensors: Add sensor type ots.
#4850 drivers: sensors: add set calibration interface
#4842 drivers: sensors: Optimized GPS sensor and add gps satellite sensor.
#5356 drivers: sensors: ppg of dual- and quad-channel sensor types
#5024 drivers: sensors: reset interval,latency and circbuf when sensor is closed
#5128 drivers: serial: uart16550: Support 64bit platform
#5573 drivers: serial: pty: Handle pty ioctl and fcntl to pipe ioctl
#5114 drivers: serial: add CONFIG_TTY_LAUNCH support
#5197 drivers: serial: merge serial check signo to one place
#5430 drivers: serial: fix cu crash caused by ioctl is NULL
#5395 drivers: serial: Consolidate the general termios in the common place
#5427 drivers: serial: Minor fix for ptmx driver
#5415 drivers: serial: pty: Sync the default value of iflag and oflag regardless CONFIG_SERIAL_TERMIOS
#5444 drivers: serial: pty: Decouple SUSv1 style from pseudo fs operation
#5227 drivers: serial: uart_16550: Allow uintptr_t as addr width
#4940 drivers: serial: Fix offset calculation in 16550
#5569 drivers: serial: pty: Move the post process after reading the buffer
#5551 drivers: serial: pty: Remove the unused code related to CONFIG_PSEUDOTERM_FULLBLOCKS
#5402 drivers: serial: pty: fix the lock handling
#5428 drivers: serial: pty: Close the internal pipe when reference count drop to zero
#5429 drivers: serial: pty: Don’t use shced_[lock|unlock] to protect pp_locked
#5433 drivers: serial: pty: Reorder the register driver to simplify the error handling
#5581 drivers: serial: pty: Remove the TODO comment for O_NONBLOCK
#5158 drivers: serial: uart_rpmsg: fix data loss
#4789 drivers: spi: Extend CONFIG_SPI_CS_DELAY_CONTROL to do inter frame delay and rename CONFIG_SPI_DELAY_CONTROL
#5408 drivers: syslog: syslog_device: fix flushing data when end of line is detected
#4873 drivers: syslog: change /dev/syslog & /dev/ramlog for unix standard
#5386 drivers: syslog: Refine Kconfig option
#5386 drivers: syslog: Implement RTT based log channel
#5735 drivers: syslog: correct the return value of default channel write
#5387 drivers: syslog: Include nuttx/syslog/syslog.h in include/nuttx/syslog/syslog_rpmsg.h
#5217 drivers: syslog: Fix in file channel initialization.
#5021 drivers: syslog/rpmsg: using up_putc to force flush syslog_rpmsg buffer
#5333 drivers: timers: Add weak_function for up_ function
#5265 drivers: timers: directly call rpmsg_rtc_server_xx() in server_ept_cb()
#5743 drivers: timers: timer: Add option for non-periodic notification
#5232 drivers: timers: rpmsg_rtc: resolve deadlock when the receive SYNC cmd
#5230 drivers: timers: Simplify the RTC rpmsg driver implementation
#4635 drivers: userled: Implement getall by checking actual pin state
#5594 drivers: video: vncserver: Allow fb operation while no connection
#5510 drivers: video: vncserver: Fix dead lock on re-connect
#5369 drivers: usbdev: cdcacm:support returning c_cflag & speed via termios
#5249 drivers: usbdev: Fix alignment issue: pktbuf needs to be 16bit aligned
#4766 drivers: Fix syslog_write failed
#4757 drivers: rptun: add ns_unbind_notify support
#4974 drivers: rptun: support can_recursive check for openamp
#5112 drivers: wireless: bcm43xxx: supported ARM CR4 core and bcm43455 chip in particular
#4690 drivers: wireless: bcm43xxx: supported high-speed timing mode with a clock rate up to 50MHz
#4778 drivers: wireless: bcm43xxx: corrected SDIO_CCCR_HIGHSPEED_SHS bit handling
#5497 drivers: wireless: Fix gs2200m_ioctl_accept()
New Driver Support
#5002 drivers: analog: add mcp48xx dac support
#5376 drivers: i2c: Add TCA9548A I2C Multiplexer
#4937 drivers: mtd: add MTD null driver support
#4943 drivers: power: add regulator framework
#5317 drivers: sensors: add support to MS5611 barometer
#4691 drivers: sensors: support new sensor type
#5499 drivers: timers: add EPSON RX8010SJ I2C RTC timer support
#4918 drivers: clk: add clk framework
#5258 drivers: input: add touchscreen uinput driver
#5327 drivers: segger: add Segger System View support
Board Support
New Board Support
Boards With Significant Improvements
#5553 boards: Add -fno-common to ARCHCFLAGS and ARCHCXXFLAGS
#5330 boards: Board.mk: Make romfs_img 4 byte aligned
#5712 boards: Kconfig: introduce ARCH_BOARD_COMMON option
#4744 boards: Rename FOC_VEL_ADC to FOC_SETPOINT_ADC
#5557 boards: Replace CONFIG_CYGWIN_WINTOOL with CONVERT_PATH
#5555 boards: Remove the unnecessary customize Make.defs
#5476 boards: Remove -fno-builtin
#5244 boards: Remove -fno-strength-reduce
#5349 boards: Remove unused NXFLAT flags from Make.defs
#5348 boards: Revert user space / kernel space isolation for pthread_exit
#5557 boards: Replace CONFIG_CYGWIN_WINTOOL with CONVERT_PATH
#5282 boards: Update board Make.defs
CXD56
IMX6
IMXRT
LC823450
#4947 boards: arm: lc823450: lc823450-xgevk: Update bt/defconfig for SMP
NRF52
#5023 boards: arm: nrf52: nrf52832-dk/nrf52840-dk: add procfs and sdc support
PHY62XX
#5669 boards: arm: phy62xx: phy6222: remove -nostartfiles -nodefaultlibs
SAMV7
#5406 boards: arm: samv7: disable systick no matter if ARMV7M_SYSTICK is enabled or not
#5710 boards: arm: samv7: rework linker script usage logic to allow custom linker scripts
#5281 boards: arm: samv7: move HSMCI interface to common
#4981 boards: arm: samv7: Introduce common folder and refactor MCUboot
#5320 boards: arm: samv7: common: add HSMCI0 boot mount configuration option
#5127 boards: arm: samv7: common: Improve SAMv7 common folder approach
#5318 boards: arm: samv7: same70-qmtech: enable slow crystal
#5410 boards: arm: samv7: same70-qmtech: add buttons interface
#4911 boards: arm: samv7: samv71-xult: Set console at usart1
#5676 boards: arm: samv7: default BOARD_SAMV7_COMMON to n
#5119 boards: arm: samv7: improve progmem common interface
#5276 boards: arm: samv7: fix build error when automount is enabled
#5277 boards: arm: same70-qmtech: switch console to UART0
#5312 boards: arm: same70-qmtech: clarify usage of CD signal on SD card connector
#4880 boards: arm: same70-xplained: MCUboot support for SAM E70 Xplained
#4912 boards: arm: same70-xplained: disable systick before loading MCUboot application
#4907 boards: arm: same70-xplained: scripts: fix memory region size for MCUboot app
#4906 boards: arm: same70-xplained: fix usage of SAMV71XULT instead of SAME70XPLAINED
#4915 boards: arm: same70-xplained: MCUboot related improvements
STM32
#5011 boards: arm: stm32: emw3162: enabled internal pull-up resistors on SDIO bus
#4750 boards: arm: stm32: Normalize FOC related project
#5612 boards: arm: stm32: Update adb configs
#5675 boards: arm: stm32: stm32f4discovery: Remove CONFIG_LIBC_EXECFUNCS from adb defconfig
#4775 boards: arm: stm32: b-g431b-esc1: add Hall and Qenco support
#5420 boards: arm: stm32: b-g431b-esc1/nucleo-g431rb: add SocketCAN examples
#5237 boards: arm: stm32: b-g431b-esc1/nucleo-g431rb: add CAN example for
#5238 boards: arm: stm32: nucleo-f302r8: nucleo-f446re: add SocketCAN example
#4785 boards: arm: stm32: nucleo-f302r8: disable NSH commands for FOC configs to save FLASH
#4938 boards: arm: stm32: nucleo-f302r8: add 3ph Hall sensor support
#5166 boards: arm: stm32: nucleo-f446re: add procfs support
#5614 boards: arm: stm32: nucleo-l152re: Added registering logic SPI on /dev.
#5439 boards: arm: stm32: nucleo-l152re: Test/i2c
#5009 boards: arm: stm32: nucleo-f4x1re: Correct issues with userled support on the Nucleo F4x1RE.
#5130 boards: arm: stm32: photon: added configuration to measure wlan performance
STM32H7
TIVA
RISC-V
#5134 boards: risc-v: hifive1-revb: Enable some nsh commands in nsh/defconfig
#4675 boards: risc-v: k210: Add initial gpio user space support
#4665 boards: risc-v: k210: Fix -march and -mabi
#5067 boards: risc-v: mpfs: update m100pfsevp board info
#5688 boards: risc-v: mpfs: MPFS USB driver
#5111 boards: risc-v: m100pfsevp: Decrease DDR lane termination values to 40 ohm and …
#5500 boards: risc-v: bl602: Remove -D__NuttX__ from Makefile
#5515 boards: risc-v: rv-virt: Supports FPU test and ostest in both rv32/rv64
SIM
#5544 boards: sim: Add missing options to sim:vncserver
#5559 boards: sim: Rename ARCHCPUFLAGS[XX] to ARCHC[XX]FLAGS
#5739 boards: sim: add support of custom optimization level
#5186 boards: sim: Turn on more rpmsg drivers in rpserver config
#5101 boards: sim: Remove sim_tsc_setup
#5561 boards: sim: defconfig for hello_rust
#5535 boards: sim: Enable Rust support for hello_rust application.
#5640 boards: sim: Remove CCLINKFLAGS, use CFLAGS/CXXFLAGS instead
#5501 boards: sim: Add adb config for test
#5121 boards: sim: recovered eth0 interface in sim:tcpblaster configuration
#5383 boards: sim: Make.defs: CELFFLAGS += -mcmodel=large
SPARC
#5644 boards: sparc: Remove HOSTCC related flags from Make.defs
XTENSA
#4719 boards: xtensa: esp32: Refactor SPI Flash File system mount options on menuconfig
#5596 boards: xtensa: esp32: Update esp-wireless-drivers-3rdparty
#5074 boards: xtensa: esp32: Add board support to SHT3X sensor
#5051 boards: xtensa: esp32: Enable canaries stack protection to ESP32 chips
#5617 boards: xtensa: esp32-devkitc: Fix boot failure on tickless defconfig
#5654 boards: xtensa: esp32-devkitc: Increase INIT_STACKSIZE to 3072 in smp/defconfig
#5075 boards: xtensa: esp32-devkitc: Change CONFIG_USER_ENTRYPOINT to CONFIG_INIT_ENTRYPOINT
File System
Bug Fixes
#4694 fs: littlefs: fix rmdir can remove a file
#4722 fs: mqueue: fix memory leak cause by lost inode_release
#5214 fs: partition: Fix compilation errors when CONFIG_FS_LARGEFIL…
#5279 fs: partition: Fix an overflow in blkcnt_t gpt_last_lba
#5653 fs: romfs: fix read file mismatch when the length of file name is 16
#5257 fs: smartfs: Fix file size corruption when opening with truncate mode
#4811 fs: procfs: fix ps can’t log out Group id
#5172 fs: procfs: fix readdir loss last character
#4968 fs: fat: Use uint16_t instead of wchar_t
Significant Improvements
#5108 fs: change fs strncpy to strlcpy to avoid losing’\0’
#5460 fs: epoll_fd: support dup file descriptor
#5345 fs: fs_automount: add options for signaling when volume is mounted and unmounted
#4934 fs: hosfs_rpmsg: merge hostfs_rpmsg to rpmsgfs
#4986 fs: hostfs: add lock to hostfs_rewinddir
#4718 fs: mount: Properly handle missing FS on the supported list
#4721 fs: mqueue: Change MAX_MQUEUE_PATH to 64
#4734 fs: partition: support mbr and gpt partition parsing
#4687 fs: partition: Make read_partition_block callable outside ptable
#5207 fs: procfs: Remove the unnecessary strcmp
#5554 fs: procfs: add newline /proc/*/loadavg snprintf format
#5157 fs: romfs: remove the error single list and using reference
#5461 fs: romfs: add FAR for all pointer and optimize some code
#5635 fs: romfs: optimize romfs_open speed and get path by cmd FIOC_FILEPATH
#5022 fs: tmpfs: support fsync always successful
#5014 fs: vfs: Add file descriptor based timers support
#5028 fs: vfs: eventfd: Remove the unused and private eventfd_get_minor
#5224 fs: vfs: Do not require write-access for fsync
#4767 fs: vfs: sanity check for parameter:length
Networking
Improvements
#5254 net: unify FAR keyword usage for all net buffer memory mapped buffers
#5049 net: Update IFF_RUNNING flag by netdev_carrier_on and netdev_carrier_off
#4895 net: arp: clean the arp table when netdev carrier off
#5168 net: can: add CAN error definitions
#4814 net: can: can_recvmsg.c : put can_readahead in critical section
#5467 net: can: remove psock reference from can connect
#5110 net: devif: allocate devif callback dynamically
#5181 net: devif: devif_callback_free() call is not needed anymore in devif_callback_alloc()
#5136 net: icmp: post the semaphore if multiple references
#5525 net: ioballoc: add support of alloc with timeout net_iobtimedalloc()
#5426 net: local: Rename NET_LOCAL_PATH_PREFIX to NET_LOCAL_VFS_PATH
#4987 net: local_socket: filename use “/var/socket/xx” instead of “/var/socketxx”
#5150 net: misc: add support for CONFIG_NET_ALLOC_CONNS
#5725 net: optimize network subsystem initialization
#4973 net: rpmsg: add ioctl & fix unblock connect crash
#4760 net: socket: rpmsg related bug fix & update
#5337 net: tcbinfo: Update tcbinfo struct, Fix the compile warning
#5526 net: tcp: add support for send timeout on buffer mode
#5373 net: tcp: add debug asserts and logging to investigate the rare (conn->dev == NULL) bug in callback handlers
#5462 net: tcp: monitor: do not migrate the state to close
#5405 net: tcp: netdev/mld: correct the netlock handling
#4660 net: tcp: Remove NET_TCP_SPLIT
#5469 net: tcp: support for FIN+ACK case in tcp send event handlers
#5341 net: tcp: transformed NET_TCP_FAST_RETRANSMIT_WATERMARK option to boolean.
#5434 net: tcp: udp: remove psock hook to avoid invalid reference
#5339 net: tcp/tcp_sendfile: optimized out sendfile_txnotify() function
#5252 net: tcp/tcp_send*: reliably obtain the TCP connection pointer in TCP event handlers
#5268 net: tcp/tcp_send*: added debug asserts for TCP_ACKDATA, TCP_REXMIT and TCP_DISCONN_EVENTS flags
#5262 net: tcp/sendfile: swapped the location of TCP_DISCONN_EVENTS and TCP_ACKDATA conditions
#5340 net: tcp/sendfile: notify the device driver of the availability of TX data on TCP retransmission
#5311 net: tcp/sendfile: fast retransmit on duplicate acknowledgments (RFC 5681)
#5242 net: tcp/sendfile: TCP retransmission could not start because of incorrect snd_ackcb callback handling
#5104 net: tcp/udp: allocate tcp/udp connect dynamically
#5156 net: usrsock: add support for CONFIG_NET_ALLOC_CONNS
#5045 net: usrsock: increase the sendto() length limit to UINT32_MAX
Bug Fixes
#5480 net: can: can_setsockopt.c: fix assertion, value can be NULL
#5141 net: can: SocketCAN: minor fixes
#4575 net: devif: Fix the memory leak in case of netdev isn’t alive
#5437 net: devif: remove invalid NET_IPv4_REASSEMBLY definition
#5090 net: fix unaligned memory access when creating ICMP Port Unreachable messages
#5245 net: icmp: fix build break if enable NET_ALLOC_CONNS
#4761 net: local: socket bug fix & update
#5436 net: netdev: lladdrsize: remove invalid duplicate case
#5466 net: rpmsg: fix the NULL pointer reference on nonblock accept
#5531 net: socket: fix shadow variable
#5006 net: tcp: fix send deadlock if disconnect
#5296 net: tcp: fixed warning: ISO C90 forbids mixed declarations and code
#4639 net: tcp_timer: eliminated false decrements of conn->timer in case of multiple network adapters.
#4659 net: tcp(unbuffered): retransmit only one the earliest not acknowledged segment
#4656 net: tcp(unbuffered): fixed an issue with unackseq calculation.
#5138 net: tcp(unbuffered): advance sndseq by +1 because SYN and FIN occupy one sequence number
#5137 net: tcp(unbuffered): fast retransmit on duplicate acknowledgments
#5078 net: tcp(unbuffered): tx_unacked overflow occurred if NET_TCP_WINDOW_SCALE option was enabled.
#5102 net: tcp(unbuffered): removed excessive overwrites of conn->sndseq
#5297 net: tcp/sendfile: removed excessive overwrites of conn->sndseq
#5239 net: tcp/sendfile: NET_TCP_WRITE_BUFFERS and NET_SENDFILE were inconsistent with each other
#5293 net: tcp/sendfile: fixed an issue with unackseq calculation.
#5272 net: tcp/sendfile: retransmit only one the earliest not acknowledged segment
#5013 net: udp: fix the invalid udp destination address
#4890 net: udp/icmp: correct the unreadchable handling
#5154 net: usrsock: replace xid type to uint64_t to avoid limitation of connections
Security Issues Fixed In This Release
Compatibility Concerns Renamed Kconfigs
PR-5065 has renamed the following Kconfigs:
CONFIG_USER_ENTRYPOINT -> CONFIG_INIT_ENTRYPOINT CONFIG_USERMAIN_STACKSIZE -> CONFIG_INIT_STACKSIZE
These are the non-“CONFIG_”-prefixed names:
USER_ENTRYPOINT -> INIT_ENTRYPOINT USERMAIN_STACKSIZE -> INIT_STACKSIZE
All in-tree boards have been updated.
NuttX users developing their own out-of-tree boards need to update all references to the above names as well.
See PR-5065, git commits 4bc7b8c802cd42bd2c3d98f4fd11207d2dd50de4, 632716dc7ad04f7cad48c5787f5c0b500cbee296, and 036d98a06ba873318061380b876b838f7ffa64fb.
Changes to Build System
PR-5496 has refactored the separate Unix and Windows handling of the build variable ARCHSCRIPT so that each board’s Make.defs will not need logic like this:
ifeq ($(CONFIG_CYGWIN_WINTOOL),y) ARCHSCRIPT = -T “${shell cygpath -w $(BOARD_DIR)$(DELIM)scripts$(DELIM)tfm-ns.ld}” else ARCHSCRIPT = -T$(BOARD_DIR)$(DELIM)scripts$(DELIM)tfm-ns.ld endif
And can instead append the variable just one, like this:
ARCHSCRIPT += $(BOARD_DIR)$(DELIM)scripts$(DELIM)tfm-ns.ld
Note the assignment is changed to append (from “=” to “+=”) and removal of “-T”.
All boards in the NuttX tree have been updated.
NuttX users developing their own custom boards will need to update their board’s scripts/Make.defs file as shown above.
See PR-5496, git commit 855534deef50e1e9c957eb32a7b15497d1bfd34a.
PR-5712 has refactored board common logic. BOARD_SAMV7_COMMON and BOARD_STM32_COMMON options are removed and a new ARCH_BOARD_COMMON is introduced.
All in-tree boards have been updated.
NuttX users developing their own out-of-tree boards need to replace “CONFIG_BOARD_SAMV7_COMMON=y” and “CONFIG_BOARD_STM32_COMMON=y” to “CONFIG_ARCH_BOARD_COMMON=y” in defconfig files. Also for some out-of-tree boards the compilation may fail with next error messages:
make[2]: *** No rule to make target ‘libboard.a’. Stop. Makefile:139: recipe for target ‘board/libboard.a’ failed make[1]: *** [board/libboard.a] Error 2 tools/Unix.mk:509: recipe for target ‘nuttx’ failed
In this case the out-of-tree board actually relies on in-tree boards common folder structure. To overcome the build error there are two possible options:
Add “CONFIG_ARCH_BOARD_COMMON=y” to defconfig file (this will restore parity with previous NuttX release) Rename “src/Make.defs” → “src/Makefile” in out-of-tree board directory and append “include $(TOPDIR)/boards/Board.mk” to “src/Makefile”. Refactored Arch Headers
PR-5720 has refactored architectural headers affecting all ARM platforms: arm_arch.h has been removed and its contents merged into arm_internal.h. Previously, most low-level modules in arch/arm/* and boards/arm/* needed to include both headers. Following the refactor, only arm_internal.h is needed.
All boards in the NuttX tree have been updated.
NuttX users developing their own custom boards will need to remove any #include “arm_arch.h” and (if necessary), #include “arm_internal.h” instead.
See PR-5720, git commit 54e630e14d7e32d6f81ae79d4e5df3d2fa787ef0.