layout: page released: true apache: true title: 12.1.0 date: 2023-04-16 summary: > Release v12.1.0
artifact-root: “https://www.apache.org/dyn/closer.lua/nuttx/12.1.0” checksum-root: “https://downloads.apache.org/nuttx/12.1.0” key-file: “https://downloads.apache.org/nuttx/KEYS”
source-os-dist: - “apache-nuttx-12.1.0.tar.gz” source-app-dist: - “apache-nuttx-apps-12.1.0.tar.gz”
{% include JB/setup %}
What's New In This Release
Changes to Core OS Sched
#8286 sched: Add _NSIG, SIGFPE, SIGILL and SIGSEGV definition
#8686 sched: add critical section in nxsched_get_stateinfo
#8708 sched: build error fix in task_exithook
#4819 sched: Disable stdio api by default when DEFAULT_SMALL equals y
#8642 sched: fix kconfig warning
#8151 sched: fix task_delete crash in SMP case
#8311 sched: fix run ltp_interfaces_sched_setscheduler_17_1 fail
#8210 sched: Map both NZERO and PTHREAD_DEFAULT_PRIORITY to SCHED_PRIORITY_DEFAULT
#8330 sched: Map SCHED_OTHER to SCHED_FIFO or SCHED_RR
#7882 sched: remove unnecessary type cast
#8374 sched: Remove the unused TCB_FLAG_SCHED_OTHER
#7956 sched: assert: modify assert message
#7957 sched: assert: Do not call the user space “exit” function
#7952 sched: assert: Fix printing argv when address environments are in use
#8224 sched: assert: sched: Implement tkill/tgkill
#8556 sched: assert: sync ps/assert output
#8897 sched: clock_gettime: Remove output log
#8653 sched: env: add tg_envc in task_group_s to avoid some loops in code
#8394 sched: getpid: replace syscall getpid/tid/ppid() to kernel version
#8066 sched: group: fix task info heap-use-after-free
#7997 sched: group: Fix memory corruption in group_leave.c
#8282 sched: group: Implement group_drop()
#8169 sched: group/addrenv: An assorment of fixes to address environment handling (part1)
#7995 sched: misc: add linux-like reboot notifier list
#8035 sched: misc: assert: add a last type to call notifier
#8158 sched: misc: assert: fix build break
#8035 sched: misc: assert: add a last type to call notifier
#8144 sched: misc: crash dump message added
#7996 sched: misc: Rename panic.c to panic_notifier.c
#7893 sched: note: Change sched_note_[begin|end] to macro
#8521 sched: nxtask_sigchild: Set exit code when CONFIG_SCHED_CHILD_STATUS=y
#8486 sched: nxtask_sigchild: Set process exit code to group exit code
#8520 sched: pthread: change the wrong type cast
#8505 sched: pthread: check pthread group after find joininfo
#7923 sched: pthread: Delay pjoininfo allocation time
#8150 sched: pthread: fix pthread exit error when set DETACHED
#8170 sched: pthread: fixed pthread issue
#8205 sched: pthread: Implement more pthread API
#8209 sched: pthread: Implement pthread_gettid_np
#8236 sched: pthread: restore C89 compliance in pthread_create
#8336 sched: pthread: set default pthread name to parent's name
#7909 sched: pthread: show thread main entry when display thread name
#7877 sched: release_tcb: Do not release stack for user processes here
#8182 sched: semaphore: Add the holder for mutex
#7934 sched: semaphore: check sem flags before enable priority inheritance
#8175 sched: semaphore: increase sem count when holder task exit
#8074 sched: semaphore: Remove PRIOINHERIT_FLAGS_ENABLE and use SEM_PRIO_INHERIT instead
#8057 sched: semaphore: sem_unlink: return ENOENT when the named semaphore does not exist.
#8918 sched: semaphore: sem_waitirq: Fix semaphore wait interruption when MMU is in use
#8452 sched: sched_note: add SCHED_NOTE_CUSTOM_BEGIN/END interface
#8245 sched: sched_releasetcb: Revert 2 changes related to stack deallocation
#8914 sched: signal: add SIGSYS
#8312 sched: signal: Fix typo error in Kconfig(SIG_SEGA->SIG_SEGV)
#8885 sched: signal: Increase the number of real time signals. Two is not enough.
#8900 sched: signal: Remove configurable assignment of signal numbers
#8884 sched: signal: remove unused SIGCONDTIMEDOUT
#8740 sched: signal: sig_dispatch: Add signal action, if task is in system call
#8605 sched: signal: sig_dispatch: Fix case where signal action is sent twice
#8563 sched: signal: sig_dispatch: Signal action was not performed if TCB_FLAG_SYSC…
#8763 sched: signal: sig_dispatch: Revert changes that cause a regression
#7910 sched: task_setup: set sigprocmask directly to improve performance
#8560 sched: task: task_cancelpt: Kill the child if it is not in a cancel point
#8392 sched: waitpid: rename nx_waitpid() to nxsched_waitpid()
#8832 sched: wqueue: Do as much work as possible in work_thread
#8126 sched: wqueue: do work_cancel when worker is not null
#8321 sched: wqueue: semaphore count should be consistent with the number of work entries. mm
#8085 mm: Add common virtual region allocator
#8140 mm: Enable a dedicated kernel heap on BUILD_FLAT via MM_KERNEL_HEAP
#7953 mm: fix typos
#8094 mm: Integrate TLSF manager
#8139 mm: backtrace: add backtrace for mempool and memdup for tlsf
#8650 mm: circbuf: update buffer head according to real length of writing
#8668 mm: circbuf: fix minor issue about update buffer head
#8161 mm: heap: add heap args to mm_malloc_size
#8054 mm: heap: Minor fix
#8136 mm: heap: tlsf: add global multi-mempool for heap manager and tlsf
#7920 mm: iob: revert “modify iob to support header padding and alignment features”
#7914 mm: iob: add a helper function to get iob count in chain
#7892 mm: iob: iob members are initialized after allocate
#7870 mm: iob: add support of partial bytes clone
#8296 mm: kasan: bypass link-time optimizer
#8028 mm: map: Remove the unnessary map.h inclusion in various drivers
#8512 mm: mempool: fix bug for realloc when shortage of memory
#8511 mm: mempool: fix mempool bug,when use MM_BACKTRACE
#8116 mm: mempool: fix crash by kasan report and enhance mempool
#8167 mm: mempool: update about mempool.
#8188 mm: mm_extend: Increase total heap size accordingly
#8339 mm: mm_memalign: avoid two adjacent free nodes situation.
#8295 mm: mm_heap: do this check in mm_size2ndx
#8734 mm: mm_heap: double malloced memory default alignment (4 -> 8, 8 -> 16)
#8353 mm: mm_heap: reduce the memory node overhead size
#8721 mm: mm_heap: support custom the mm alignment and default to be 8
#8131 mm: mm_heap: tlsf: support global mempool to optimize small block performance
#8068 mm: shm: Clean up the System-V shm driver
#8133 mm: tlsf: fix compile error/warning on tlsf
#8736 mm: ubsan: Implement __ubsan_handle_invalid_builtin libs
#8042 libc: Add more libc function for arm and riscv
#8862 libc: add more syscall/libc symbols into csv file
#8118 libc: Add sys/endian.h to improve the compatiblity with bionic libc
#8294 libc: Add return check in posix_spawn_file_actions_adddup2
#7850 libc: Add scalbn[f|l]function to libc math
#8437 libc: Define _assert/__assert to avoid 3rd libary redefine them
#8065 libc: don't redefined __ARM_ARCH_XXX when __ARM_ARCH defined
#8624 libc: export exit() if configured in flat mode
#8608 libc: fix a bug of strtof
#8441 libc: fix a bug of strtold
#8106 libc: fix the some else bug of strtold
#8495 libc: fix some bug of strtold
#8117 libc: Fixbug strtold
#8206 libc: Implement quick_exit and at_quick_exit
#8289 libc: invalid dns cache entry after ttl expires
#8418 libc: Keep printf(“%pS”, p) behavior consistent
#8112 libc: Let _SC_PAGESIZE return 4096 when CONFIG_MM_PGSIZE isn't defined
#8112 libc: modify the strtof
#8584 libc: Move math library from libs/libc/math to libs/libm/libm
#8023 libc: Move tree.h from include/nuttx to include/sys
#8517 libc: Move memfd related stuff to sys/mman.h
#8585 libc: Remove dependence of LIBC_FLOATINGPOINT and LIBC_LONG_LONG from LIBC_NUMBERED_ARGS
#8292 libc: asctime_r: add param check to asctime_r()
#8546 libc: exit: Purge calls to userspace API exit() from kernel
#8087 libc: getaddrinfo: add AI_NUMERICHOST flag handle
#8606 libc: lib_abort.c: Change tall to user-space exit() into system call _exit()
#8651 libc: lib_bzero: Add bzero prototype.
#8522 libc: lib_memcpy.c:Add mempcpy method.
#8639 libc: lib_rawmemchr.c: Add rawmemchr methon.
#8756 libc: libvsprintf: use puts to replace the putc
#8063 libc: math: add simple implementation for sincos API
#8874 libc: math: rename libc/math.csv to libm/libm.csv
#8416 libc: misc: mutex: fix assertion if nxmutex_reset() before nxmutex_unlock()
#8291 libc: netdb: Add return check in rexec_af
#7998 libc: passwd: add pw_gecos field(userinfo)
#8861 libc: settimeofday: correct prototype of settimeofday()
#8356 libc: stdio: fix rounding errors for fractional values less than 1
#8696 libc: stdio: Implement lib_get_stream
#8641 libc: stdio: Implement simple buffered out stream for vdprintf
#8638 libc: stdio: Make gets/gets_s work without CONFIG_FILE_STREAM
#8628 libc: stdio: Remove CONFIG_EOL_IS_XXX
#5996 libc: stdlib: generate uniformly distributed pseudo-random numbers
#8503 libc: stdlib: Guard fflush in exit with CONFIG_FILE_STREAM
#8681 libc: stream: Exchange name of lib_rawsostream.c and lib_rawoutstream.c
#8352 libc: stream: fix syslogstream_addstring length error
#8685 libc: stream: Implement gets/puts for all streams
#8704 libc: stream: unify stream return behavior
#8809 libc: syslogstream: add length check
#8555 libc: unistd: lib_getrlimit: return a value for RLIMIT_NOFILE request.
#8115 libc: versionsort: support versionsort and strverscmp
#8596 libcxx: Workaround -Wmaybe-uninitialized warning with “GCC 12.2”
#8120 libxx: Add CXX_STANDARD to select -std=c++??
#8187 libxx: c++: Change the default value of CXX_STANDARD from c++17 to gnu++17
#8600 libxx: check GCC version before set special flags
#8611 libxx: Fix typo in shell expressions
#8349 netdb: add sanity check to avoid null pointer reference Misc
#8634 Add branch prediction for assert
#8280 Add more battery operation
#8003 Add new api for signal and string
#8000 Change FIOC_MMAP, FIOC_MUNMAP and FIOC_TRUNCATE into file operation c…
#8371 Change sec2tick macros to round up
#8618 change strcpy to strlcpy
#8285 Force sockaddr_storage to the desired alignment
#8201 Make 64-bit time_t unsigned
#8435 Move SEEK_xxx from unistd.h to sys/types.h
#8363 Remove executable permissions from source files
#7881 Remove FAR and apply formatting
#8401 Remove OK macro from the code base
#8417 Remove the remain MIN/MAX like macro
#8424 Remove the remain MIN/MAX like macro
#8240 Switch from semaphore to mutex for exclusive access
#8400 assert: add a Kconfig option to limit binfile size
#8213 assert: Log the assertion expression in case of fail
#6920 crypto: support /dev/crypto for nuttx
#8134 crypto: support crypto can handle streaming data
#8135 crypto: add read & write function aviod check flag failed
#8279 dns: packed dns_header_s and dns_question_s
#8274 feature: add audio AUDIOIOC_SETPARAMTER ioctl command
#8397 include: Add MIN/MAX definition to sys/param.h
#8414 include: Add nitems() definition to sys/param.h
#7859 include: compiler.h: Add malloc_likex and realloc_like macro
#8211 include: epoll.h: Add u64 field like Linux
#8523 include: limits.h: Map POSIX[S]SIZE_M[AX|IN] to [U]LONG_M[AX|IN]
#8183 include: limits.h: add PTRDIFF_MAX and PTRDIFF_MIN
#8623 include: signal.h:Expanding SIGNAL to be consistent with Linux
#8571 include: sys/resource.h:Added ru_maxrss type
#8535 include: sys/socket.h: Add SOCK_CTRL to socket type
#8326 include: sys/queue.h:remove CONFIG_ALLOW_MIT_COMPONENTS
#8196 include: time.h: Add CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID definition
#8277 include: timers/pwm: Add user provided argument in struct pwm_info_s
#8174 include: touchscreen.h: move the #ifdef CONFIG_INPUT position
#8407 misc/assert: remove const string from assert expression
#8281 motor: Add pattern control mode
#7943 nuttx: add some missing FAR
#7942 nuttx: unify MIN, MAX and ABS macro definition across the code
#8413 nuttx: Use MIN/MAX definitions from “sys/param.h”
#8859 openamp: fix libmetal compile error with arm64 arch
#8629 openamp: update openamp lib
#8284 spinlock: Move spinlock_init to public macros
#7999 sys: socket/scm: return NULL when cmsg_len is zero
#8073 syscall: Always add munmap into syscalls
#8275 touch: Add ioctl to enable/disable gesture
#8016 treewide: Remove the unnecessary NULL fields in global instance definition of file_operations
#8527 utsname: Expand the buffer for version information slightly
Changes to the Build System Improvements
Architectural Support New Architecture Support
#8816 risc-v: espressif: Add Espressif chip family support on top of esp-hal-3rdparty
#8420 risc-v: esp32c6: Add ESP32-C6 basic support
#8466 risc-v: hpm6750: add hpmicro chip Improvements
#8114 Revert "arch: Don‘t free the context if the reference doesn’t equal z…
#7982 arch: add volatile for regs in up_dump_register function
#8283 arch: addrenv: Change group_addrenv_t to arch_addrenv_t
#8355 arch: addrenv: Refactor address environment handling, by moving tg_addrenv out of the group structure
#8227 arch: ARCH_KERNEL_STACK: Fix signal handling with kernel stack
#8821 arch: arch_timer: fixed build issue when enable tickless
#8241 arch: assert: switch from ASSERT(0/false) to PANIC
#8192 arch: backtrace: use CURRENT_REGS when in interrupt context
#8037 arch: change tcbinfo regs num
#7915 arch: compiler.h: Add _ between format|printf|syslog|scanf|strftime and like
#8253 arch: EXTRA_LIBS: link all staging library
#8776 arch: fixed error in the calculation of nwords caused an out of bounds
#8467 arch: group_addrenv: Fix call to group_addrenv for targets that don't need it
#7895 arch: Make REG_[GET/SET]_FIELD thread safe for ESP SOCs
#7875 arch: move stack and task dump to common code
#8875 arch: Remove MIN macro definition
#7973 arch: Remove the unused arch color function variant
#8779 arch: Rename up_[early]serialinit to [arm64|riscv|x86_64][early]serialinit
#7899 arch: remove up_release_pending function
#8825 arch: remove unnecessary sem_setprotocol code
#7955 arch: save user context in assert common code
#8842 arch: Set the default value of ARCH for x86_64
#8712 arch/boards: Rename up_lowputc to [arm64|renesas]_lowputc
#8127 arm: Add missing kconfig for arm
#8627 arm: backtrace/unwind: skip unaligned instruction
#8730 arm: cache: add up_get_xcache_linesize() support
#8866 arm: chip/sdio/muxbus: remove all undefined symbols
#8746 arm: correct ARCH_HAVE_DSP to ARM_HAVE_DSP
#8125 arm: Fix error in cache ops
#7906 arm: fix typos in start files
#8249 arm: make DSP arch extension configurable
#8703 arm: armv7-a: fixed scu cpu tagram mask define issue
#8157 arm: armv7-a/r: fix kconfig error of l2 cache latency
#8036 arm: armv7-m/armv8-m: add faultmask register operation to
#8737 arm: armv8-m: add missing zig flags
#8717 arm: armv8-m: DSP extension is optional
#8238 arm: armv8-m: Fix pthread_start syscall
#7854 arm: armv8-m: support pmu api
#8747 arm: armv8-m/cortex-m85: add support of PACBTI(Authentication and Branch Target Identification Extension)
#8335 arm: itm_syslog: remove invaild select config
#8360 arm: unwinder: set default unwinder type to arm exidx/extab
#8678 arm: cxd56xx: Fix a freezing issue caused by power control
#8677 arm: cxd56xx: Fix gnss poll when an event has already occurred
#8877 arm: cxd56xx: Fix SPI transfer without DMA
#8676 arm: cxd56xx: Update miscellaneous cxd56xx drivers
#7884 arm: gd32f450: Add i2c driver for gd32f450 MCU
#8707 arm: imx6: Fix a compilation error with UBSan
#8603 arm: imxrt: d-cache write-back mode with networking
#8684 arm: imxrt: Feature imxrt1064 mcuboot
#8788 arm: imxrt: imxrt_flexpwm independent output B support added
#8499 arm: imxrt: PWM trigger source selection option and update for Teensy 4.1 configuration
#7929 arm: imxrt: serial: Fix selection of RTS to iflow
#7868 arm: imxrt: Serial: LPUART_STAT_PF s/b LPUART_STAT_NF
#7933 amr: lpc17xx_40xx: CAN driver SocketCAN enforce TX fifo behaviour
#8803 arm: nrf52: fix device shutdown
#8828 arm: nrf52: fix RTC tickless
#8817 arm: nrf52: improvements for GPIOTE and buttons example for boards
#8923 arm: nrf52: initial support for USBDEV
#8725 arm: nrf52: minor fixes for SoftDevice
#8702 arm: nrf52: use the lates SoftDevice release (v2.3.0)
#8793 arm: nrf52/nrf53: various fixes
#8804 arm: nrf53: add ADC support
#8909 arm: nrf53: add GPIOTE support (GPIO interrupts)
#8826 arm: nrf53: add PWM support
#8908 arm: nrf53: add RTC and tickless support
#8722 arm: nrf53: add SoftDevice support for the net core
#8806 arm: nrf53: add TIM support
#8805 arm: nrf53: add UID support
#8770 arm: nrf53: add more register definitions (ported from nrf52) and some cosmetics for nrf52
#8710 arm: nrf53: initial support for net core boot
#8765 arm: nrf53: initial support for rptun
#8807 arm: nrf53: initialize PM
#7869 arm: s32k1xx: Add DMA to the s32k1 serial
#7961 arm: s32k1xx: Add config option to enable UART invert setting.
#7866 arm: s32k1xx: automatically calculate size of periphclocks array
#8058 arm: s32k1xx: avoid buffer overflow when CAN time is used for non-FD CAN.
#7887 arm: s32k3xx: Clean up
#7931 arm: s32k3xx: EDMA fix get count
#7901 arm: s32k1xx: Fix S32K1XX PM which was broken by #7869
#7879 arm: s32k1xx: FlexCAN don't use a blocking wait in tx avail
#7888 arm: s32k1xx: LPSPI use DMA
#7921 arm: s32k3xx: MR-CANHUBK3 Add protected knsh support
#7958 arm: s32k3xx: PHY MII/MMD support and TJA1103 support
#7967 arm: s32k3xx: Progmem dataflash with littlefs support
#8005 arm: s32k3xx: Progmem fixes and size config
#7932 arm: s32k3xx: Serial add DMA
#8223 arm: s32k3xx: serial Do not use TC use TDRE & TIE Bug Fix
#7930 arm: s32k1xx: serial: Fix selection of RTS to iflow
#7907 arm: samv7: add ARCH_RAMVECTORS support
#7894 arm: sama5: Add Flexcom SPI support
#7940 arm: sama5: Add SAMA5D2 MCAN support
#8655 arm: samv7: add support for ADC conversion triggering with PWM
#8597 arm: samv7: add support for complementary PWM output
#8484 arm: sama5: add support for flexcom twi
#8689 arm: samv7: add support for PWM fault protection
#8480 arm: sama5: Changes to allow board-specific SAMA5 DRP/OTG support
#8724 arm: sam34: Copy I2C_M_NOSTART support from sam7v/sam_twihs.c driver
#8141 arm: sama5: Ensure SFR CKTRIM register correctly set, SAMA5D2/D3 only
#8488 arm: samv7: fix compilation error when only DAC1 is configured
#8104 arm: sama5: fix dma support for SAMA5 flexspi driver
#8237 arm: samv7: fix issue when AFEC1 driver failed to open second time
#8565 arm: samv7: fix MCAN build error
#8479 arm: sama5: Fix sam_udphs to allow RNDIS to work
#8490 arm: sama5: Fixes to PR that enables SAMA5 OTG/DRP support
#7904 arm: sama5: serial and flexcom serial corrections
#8714 arm: samv7: raise input flow control warning only for serial drivers
#8745 arm: samv7: switch from printing numbers as signed to unsigned in QSPI
#7941 arm: samv7: Update SAMV7 sam_mcan.c
#8570 arm: stm32: Add UART4 & UART5 to high density stm32f103 chips
#8880 arm: stm32: Fixed stm32 rcc and tim
#8882 arm: stm32: otgdev: remove invalid use of the priv field for EP
#8060 arm: stm32: protect TX buffer during CAN error frame generation.
#8040 arm: stm32: unified up_perf initialization
#8220 arm: stm32: foc: move the warning in the right place - should be in stm32f7
#8569 arm: stm32: stm32_eth: Fixed alignment of Ethernet descriptors & buffers.
#8566 arm: stm32: stm32_eth: Enabled store-end-forward.
#8548 arm: stm32: stm32_eth: Busy bit is cleared before accessing the MACMIIAR register.
#8502 arm: stm32: stm32_sdio: Fix in SDIO clocking configuration.
#8212 arm: stm32/stm32f7: add support for BEMF sensing
#8069 arm: stm32/stm32f7: CANv1: protect TX buffer during CAN error frame generation
#8547 arm: stm32f7: Remove CPU lock on HW fail
#8699 arm: stm32f7: stm32_i2c.c: Driver cleanup
#8303 arm: stm32f7: stm32_i2c.c: Round up stm32_i2c_toticks return v…
#8219 arm: stm32h7: add lower half timer driver
#8124 arm: stm32h7: add SMPS PWR option for STM32H7X7
#8536 arm: stm32h7: socketcan extended filter fixes
#8250 arm: stm32h7: Support socket CAN error handling.
#8055 arm: stm32wb: add i2c driver
#8304 arm: tiva: Added SocketCAN driver implementation to the tiva chip, modified the …
#8465 arm: tiva: Fix inability to control serial CTS/RTS via termios
#8362 arm: tiva: Remove dead store
#8475 arm: tiva: Serial TIOCxBRK BSD-compatible BREAK support
#8405 arm: tiva: Support termios for Tiva
#8406 arm: tiva: serial: Allow changing CTS/RTS with termios
#8322 arm: tlsr82: Minor fix for telink tls82 chip
#8252 arm: tlsr82: tc32 backtrace bug fix
#8716 arm64: add arm64_serialinit/arm64_earlyserialinit
#8665 arm64: ARMv8-r(Cortex-R82) support
#8687 arm64: ARMv8-r(Cortex-R82) support( add FVP platform)
#8009 arm64/a64: add driver for Allwinner A64 I2C bus
#7865 arm64/A64: Add irq definition of Allwinner A64 interrupts #7939 arm64/a64: Add driver for MIPI DSI
#8039 arm64/a64: Fix PIO Interrupt
#7944 arm64/a64: Add driver for Display Engine
#7962 arm64/a64: Add driver for Reduced Serial Bus
#7919 arm64/a64: Add driver for TCON0
#8476 mips: pic32mz: Serial support for termios
#8550 mips: pic32mz: Serial TIOCxBRK BSD-compatible BREAK support
#8540 mips: pic32mz: Fix PPS mappings for RPE5R register
#8539 mips: pic32mz: Fix PPS register mapping defines
#7970 qemu-rv: Fix qemu_rv_mtimer_interrupt() for BUILD_KERNEL
#8180 risc-v: addrenv: Do not free physical memory for SHM area
#7960 risc-v: addrenv: Test that satp contents make sense
#8168 risc-v: addrenv_shm: Add missing sanity check to up_shmdt()
#8226 risc-v: riscv_exception.c: Print the EPC value always
#8461 risc-v: esp32c3: Add RTC interrupt support
#8064 risc-v: esp32c3: correct receive buffer size
#8415 risc-v: esp32c3: fix cpuint issue
#7902 risc-v: esp32c3: Fix double initialization of SHA Accelerator
#8265 risc-v: esp32c3: Fix IRQ initialization, it was crashing on DEBUG_ASSERTIONS
#8671 risc-v: esp32c3: Fix missing irq timer
#8636 risc-v: esp32c3: Fix WDT incorrect interrupt enable/disable
#8014 risc-v: esp32c3: Modify the IRQ APIs to be compatible with ESP32/S2/S3
#8673 risc-v: esp32c3: Remove erroneous interrupt disable
#8934 risc-v: espressif: Add High Resolution Timer driver
#8932 risc-v: espressif: Add Hardware RNG support
#8931 risc-v: espressif: Add support for System Reset
#8769 risc-v: espressif: Fix unwanted flush in the SPI slave driver
#8222 risc-v: espressif: Stabilize MCUboot support on Espressif chips
#8912 risc-v: espressif: Update revision of esp-hal-3rdparty
#8529 risc-v: mpfs: add athena irq defines
#8701 risc-v: mpfs: clear i2c ints before the transfer starts
#8700 risc-v: mpfs: clear spi int before the transfer starts
#8191 risc-v: mpfs: Make selection of SBI boot or direct boot run-time configu…
#8368 risc-v: litex: Add GPIO driver.
#8233 risc-v: litex: Allow custom peripheral memory mapping and IRQ.
#8225 risc-v: litex: System clock frequency selectable from Kconfig.
#8393 risc-v: litex: watchdog: fix Kconfig typo
#7855 sim: add hostfs support for windows
#8354 sim: add toolchain library libm
#8143 sim: bug fix when open CONFIG_SIM_WALLTIME_SIGNAL
#8468 sim: Fix bugs on sim
#8519 sim: fix build break on visual studio
#8850 sim: Fix iic/spi bus open failed
#8031 sim: Fix make tool doesn't rebuild dependencies of the libboard target
#8489 sim: fix nuttx consumes much CPU time
#8255 sim: fix sim_x11events calls but sim_x11initialize() hasn't ready
#7936 sim: Fix small video bugs
#8497 sim: fix vfork report error
#8254 sim: init events field when send ack/dack
#7905 sim: Minor improvement for sim serial driver
#8076 sim: move some i2c,spi configs from board to arch
#8469 sim: realize sim timer tickless
#7911 sim: Refine arch/sim implementation
#7946 sim: remove unused variale in sim_saveusercontext()
#8849 sim: sim_linuxi2c: fix snprintf parameter
#8472 sim: sim_saveusercontext & sim_fullcontextrestore update
#7928 sim: take timer irq as real timer with WALL_SIGNAL
#8390 sim: alsa: add audio offload capture support.
#7927 sim: alsa: don't let switch out when do poweroff & alsa mixer open
#8251 sim: alsa: Minor improvement for sim alsa
#8377 sim: alsa: support streaming data when offload playback.
#7925 sim: fb: remove the lpwork in fb, merge to looper task
#8423 sim: hcisocket: correct teardown device index
#8078 sim: posix: sim_linuxspi.c: fix select not work and incorrect behaviour
#8348 sim: rpserver/rpproxy: remove colon from syslog prefix
#8470 sim: uart: add uart dma mode & use work instead of loop
#8408 sim: uart: do uart_xmitchars() when tty_txint enabled
#7926 sim: uart: fix printf error when use irq mode
#8834 sim: uart: return -ENOTTY for cmd which don't support
#8646 sim: Usb: add sim usb device and host driver
#7898 sim: video: call validate_buf when set_buf
#7786 xtensa: Add support for touch pad polling on ESP32
#8672 xtensa: Fix Xtensa interrupt stack context restore issue
#8372 xtensa: modify timer interrupt level large to XCHAL_IRQ_LEVEL level
#8711 xtensa: Perform some build system cleanups
#8121 xtensa: toolchain: add -Wno-atmoic-alignment flags
#7762 xtensa: esp32: Add esp32_himem_chardev.c
#8046 xtensa: esp32: Add option to enable ETH PHY reset pin
#8202 xtensa: esp32: Add support for RTC IRQs
#8248 xtensa: esp32: Add touch pad IRQ support
#8051 xtensa: esp32: Add Wi-Fi softap event
#8166 xtensa: esp32: Enable the allocation of Userspace heap exclusively in SPI RAM under Flat mode
#8048 xtensa: esp32: ESP32 SPI Flash encryption supports 16-bytes align writing
#8200 xtensa: esp32: fix lower half oneshot for usage with nxsched_oneshot_start
#8171 xtensa: esp32: Fix SPI bugs
#8050 xtensa: esp32: Optimize WLAN device buffer
#8132 xtensa: esp32: Partition device supports encryption mode
#8382 xtensa: esp32: Propagate RTC IRQ status register to lower levels
#8783 xtensa: esp32: Tasks use PSRAM as stack can do SPI flash read/write/erase/map/unmap
#8047 xtensa: esp32: SPI support to configure as R/W/RW mode
#8838 xtensa: esp32: Update bootloader patch to recent ESP-IDF version
#8096 xtensa: esp32s2: Add initial support for touch pad polling
#8445 xtensa: esp32s2: Add pwm support using LEDC peripheral
#8426 xtensa: esp32s2: Add support for RTC IRQs
#8428 xtensa: esp32s2: Add support for touch pad interrupts
#8198 xtensa: esp32s2: Add support to efuse
#8070 xtensa: esp32s3: Add initial support for touch pad polling
#8446 xtensa: esp32s3: Add pwm support using LEDC peripheral
#8458 xtensa: esp32s3: Add support for RTC IRQs
#8473 xtensa: esp32s3: Add support for touch pad interrupts
#8199 xtensa: esp32s3: Add support to efuse
#8264 xtensa: esp32s3: Add support to RNG (random number generator)
#8818 xtensa: esp32s3: add support to softAP (softAP and softAP + STA mode)
#8771 xtensa: esp32s3: Add Wi-Fi driver (STA mode) for ESP32-S3
#7873 xtensa: esp32s3: Enable booting from MCUboot bootloader
#8640 xtensa: esp32s3: Define syscall table to enable using ROM functions
#7987 xtensa: esp32xx: Clear the timer interrupt to avoid losing the next interrupt
Driver Support New Drivers
Board Support New Board Support
#8841 avr: atmega: Add support for Atmega mega1284p_xplained board
#8698 nrf53: initial support for nrf5340-dk
#7950 sama5: add Jupiter Nano support
#8228 stm32f7: add initial support to Meadow F7Micro board Improvements
#8231 boards/arch: Remove FAR decorator
#7268 boards: adapt LVGL v8 defconfig
#8459 boards: add nxscope configurations
#8364 boards: Enable assert for citest
#8246 boards: Update Administrator tea result to 8Tv+Hbmr3pLVb5HHZgd26D
#8235 boards: Pass the assertion expression to board_crashdump too
#8215 boards: Update all boards config after updating NSH_CMDPARMS
#8936 arm: gd32f4: add littlefs support for gd32f450zk-eval board
#8342 arm: imx6: sabre-6quad: Add netnsh_wb and fix imxrt1060-evk:netnsh
#8186 arm: imx6: sabre-6quad: Adjust TCP and UDP configurations
#7896 arm: imx6: sabre-6quad: Improve iperf performance
#8438 arm: imx6: sabre-6quad: Update with QEMU
#8492 arm: imxrt: imxrt1060-evk: Fix knsh
#8796 arm: nrf53: nrf5340-dk: add sdc net core examples
#8688 arm: nrf52: sdc examples
#8179 arm: rp2040: add waveshare rp2040 lcd 1.28
#8439 arm: rp2040: raspberrypi-pico-w: update submodule to avoid invaild firmware
#8844 arm: sama5: sama5d3-xplained: Add reboot support.
#8854 arm: sama5: sama5d3-xplained: Fix OHCI clock.
#8879 arm: sama5: sama5d3-xplained: Make hot plugging more reliable.
#7949 arm: sama5: sama5d2-xult: Update entry point
#8395 arm: sama5: jupiter-nano: correct config name
#8232 arm: sama5: jupiter-nano: Remove sam_ostest.c
#8577 arm: samv7: hsmci: add option to invert card detection pin
#7584 arm: spresense: add fs automount driver for SD Card
#8888 arm: spresense: add rndis composite support
#8543 arm: spresense: Enable broadcast flag in DHCP process
#8617 arm: spresense: Fix bugs in cxd56 imageproc
#8100 arm: spresense: fix sdcard operation
#8243 arm: spresense: remove BOARDIOC_SDCARD_SETNOTIFYCB ioctl
#8679 arm: spresense: Update miscellaneous spresense drivers
#8873 arm: stm32: photon: Use D0 Busy to detect Write Complete
#8214 arm: stm32f4disco: Add support to mount /tmp
#8457 arm: stm32f4disco: add timer driver support
#8733 arm: stm32f4disco: Update kostest/defconfig to avoid crash
#8152 arm: tiva: Tm4c1294-launchpad: can char dev
#8178 arm: tiva: tm4c1294-launchpad: Fix warning: defaults for choice values not supported
#8267 arm64: add support for nuttx arm64 Toolchain Selection
#7988 arm64/pinephone: Add driver for Frame Buffer
#7977 arm64/pinephone: Add driver for LCD Panel (Xingbangda XBD599)
#8123 arm64/pinephone: Add driver for PinePhone Touch Panel
#8006 arm64/pinephone: Fix missing pixels in Frame Buffer Driver
#8552 mips: pic32mz: chipkit-wifire: Avoid sudo for flash programming
#8463 mips: pic32mz: pic32mz-starterkit: Fix building with Sourcery toolchain
#7885 qemu-armv8a: Enable the ping command for netnsh and netnsh_smp
#8829 risc-v: espressif: Fix bootloader and app potential RAM overlap
#8128 risc-v: qemu-rv: rv-virt: Add knetnsh64 and knetnsh64_smp
#8643 risc-v: qemu-rv: SV32 MMU support for qemu-rv
#8567 risc-v: esp32c3-devkit: Remove -Werror to let compile ble stack
#8500 risc-v: esp32c6-devkit: Update defconfig
#8752 risc-v: hpm6750: add option to select hpmicro toolchain
#8350 risc-v: mpfs: icicle: Update some configs
#8695 sim: wamr: add example of WAMR(WebAssembly Micro Runtime)
#8709 sim: wamr: Adjust defconfigs for WAMR after dependency fix
#8761 sim: wamr: Remove LIBC_FLOATINGPOINT (now selected by the app)
#8572 sim: adb: Change telnetd port from 23 to 2323
#7876 sim: Add nxcamera config
#8431 sim: Enable CONFIG_ARCH_MATH_H for libcxxtest
#8481 sim: Enable CONFIG_SIM_M32 in nimble
#8268 sim: make iperf works on SIM platform
#8266 sim: Minor sim Makefile fix
#7945 sim/config: enable luamodule
#8455 sim/dynconns: enable more configs to catch compile warning
#7843 sim/lua: enable luv module by default
#8137 sim/windows: enable custom options
#8648 xtensa: esp32-lyrat: Add SD Card config
#8760 xtensa: esp32: Add CoreMark config to ESP boards
#8905 xtensa: esp32: Add support to Ai-Thinker Audio Kit board and ESP32-A1S module
#8184 xtensa: esp32: Clean ups and minor fixes to comments
#7880 xtensa: esp32: Fix PSRAM support when Stack Smash protection is enabled
#8554 xtensa: esp32: Fix WiFi default Algorithm
#8221 xtensa: esp32-devkitc: Add coremark config
#7872 xtensa: esp32-devkitc: Disable FPU test for knsh defconfig
#7917 xtensa: esp32s2: Add Franzinho Board
#8894 xtensa: esp32s2-kaluga-1: Add touch pad support
#8925 xtensa: esp32s3: Add esp32s3-meadow board
File System New FS
Networking Improvements
Compatibility Concerns
#8166 ESP32: Enable the allocation of Userspace heap exclusively in SPI RAM under Flat mode
Breaking change: ESP32_SPIRAM no longer auto selects XTENSA_IMEM_USE_SEPARATE_HEAP. XTENSA_IMEM_USE_SEPARATE_HEAP is now selected by ESP32_IMM_HEAP, which in turn is not enabled by default.
Drivers that previously relied on XTENSA_IMEM_USE_SEPARATE_HEAP now bring in ESP32_IMM_HEAP if ESP32_SPIRAM is also selected, with the notable exception from ESP32_WIFI.
ESP32_WIFI previously used XTENSA_IMEM_USE_SEPARATE_HEAP for allocating dynamic data into Internal RAM via a specific API. With this PR, there is now an alternative approach using MM_KERNEL_HEAP. So it is up to the user to either select ESP32_IMM_HEAP or MM_KERNEL_HEAP. In order to keep the current behavior, custom board users shall select ESP32_IMM_HEAP on Kconfig.
#7525 Improvements in TCP connections allocation.
This is an attempt to fix the issues reported in #6960:
Only a single connection is allocated, the one actually needed. In tcp_free() the connection is actually deallocated, instead of leaving it existing forever in the list.
This is only the first step, possibly with more to come (list of pre-allocated connections, maximum connections limit etc).
For the moment, this PR handles only TCP, till we determine all the details. Then the fix will be copied to all other connections that use similar logic.
#8691 drivers/serial: Echo input in driver layer
#8846 drivers/pty: Echo input by default
Align the pty behavior to linux/bsd, Also fix the ECHO issue with microadb after #8691. adb shell will echo normally with this patch.
#8235 board: Pass the assertion expression to board_crashdump too
#8717 arch/armv8-m: DSP extension is optional The DSP extension is optional for armv8-m cores, so it should be explicitly set by chip configuration. Otherwise this can lead to hard to debug hardfaults for cores that do not support DSP. Breaking change for out-of-tree armv8-m chips.
#8378 tools/makefile: silent all compile output In order to make compilation warnings and errors easier to be found out, this commit will disable the printing of the compilation process as much as possible, and also if you want to restore the log information of the compilation process, please enable verbose build on command line:
$ make V=0 OR $ make V=1
| V=0: Exit silent mode | V=1,2: Enable echo of commands | V=2: Enable bug/verbose options in tools and scripts
#8623 include/signal.h:Expanding SIGNAL to be consistent with Linux build breaks if CONFIG_SCHED_HAS_PARENT is not defined because SIGCHLD will collide with the new values.