Apache NuttX-10.3.0 Release Notes
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 reanme CONFIG_USER_ENTRYPOINT to CONFIG_INIT_ENTRYPOINT
- #5399 Add CONFIG_NDEBUG Kconfig to control NDEBUG definition
- #5347 register_driver: fix driver modes accross 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 NAM…
- #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: semphore: release all semphores’ 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
- #5638 tools: add parsememdump.py to parse memdump info(by cmd: memdump all)
- #5622 tools: add rustfmt to checkpatch
- #4925 tools: Add size report script
- #5153 tools: mpfs: prepare OpenSBI image
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
- #4897 arch: arm: phy62xx: Phyplus release 1.2
- #5470 arch: arm: STM32U5 Architecture Support
- #5165 arch: ceva: add ceva platform xc5 xm6 support
- #5352 arch: xtensa: Add initial support for ESP32-S3
- #5241 arch: sparc: Port nuttx to sparc-v8
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
- #5633 arch: arm: imx6: Fix imx6
- #5639 arch: arm: imx6: Add the pgheap for imx6
IMXRT
- #4784 arch: arm: imxrt: fixes
- #4717 arch: arm: imxrt: rename imxrt_lowputc to arm_lowputc and drop CONFIG_DEBUG_FEATURES
LC823450
- #4951 arch: arm: lc823450: Replace the critical section with spinlock in lc823450_serial.c
NRF52
- #5025 arch: arm: nrf52: Fixes for NRF52 SoftDevice Controller
- #5032 arch: arm: nrf52: NRF52_SDC_LE_CODED_PHY not available for nrf52832
- #5031 arch: arm: nrf52: small improvements for softdevice
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
- #5520 arch: ceva: update the code to the latest mainline
- #5568 arch: ceva: Replace OUTDIR with TOPDIR
- #5727 arch: ceva: Move the idle stack initialization to up_initial_state
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 foward 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 sequnece 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: corrent dumpstate xcp size
- #5717 Revert “arch: risc-v: Correct FPU register save area in riscv_copystate”
SPARC
- #5394 arch: sparc: adaptive patch
- #5521 arch: sparc: Replace adj_stack_ptr with stack_base_ptr
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 & resotre
- #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 swith 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
-
#5726 arch: z[80 |
16]: Move up_getsp declaration to arch.h |
- #5344 arch: z80: fix garbage collector option to linker for ez80
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 defintion 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 writting, 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: dirctly 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 aligment 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
- #5363 boards: arm: phy62xx: add phyplus_rel_1.4
- #4916 boards: arm: samv7: add support for SAME70 QMTECH board
- #5195 boards: arm: rp2040: add support for Pimoroni Tiny 2040 board
- #4851 boards: risc-v: mpfs: Add support for Aries M100PFSMVP board
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
- #5440 boards: arm: cxd56xx: audio: Support I2S input
- #4996 boards: arm: cxd56xx: spresense: Adjust CONFIG_FAT_MAXFNAME and CONFIG_NAME_MAX
- #4969 boards: arm: cxd56xx: spresense: Update smp/defconfig
IMX6
- #5652 boards: arm: imx6: sabre-6quad: Add knsh
- #5485 boards: arm: imx6: sabre-6quad: Add -fno-common to Make.defs
- #5724 boards: arm: imx6: sabre-6quad: Add CONFIG_DEBUG_FULLOPT=y to knsh/defconfig
IMXRT
- #5670 boards: arm: imxrt: fix userled config in appinit
- #5682 boards: arm: imxrt: userleds: Teensy 4.x board LED is active high
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
-
#5697 boards: arm: stm32[f7 |
l4]: fix SPI chip select GPIO access |
- #4827 boards: arm: stm32h7: nucleo-h743zi: add board_reset function
TIVA
- #5664 boards: arm: tiva: ekk-lm3s9b96: Remove unused mmcsd option
- #5595 boards: arm: tiva: lm3s6965-ek: Add qemu-kostest
- #5597 boards: arm: tiva: lm3s6965-ek: Fix qemu-kostest
- #5597 boards: arm: tiva: lm3s6965-ek: Fix qemu-kostest
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 temination 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 suppport 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 invaild 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.