layout: page released: true apache: true title: 12.6.0 date: 2024-07-29 summary: > Release v12.6.0
artifact-root: “https://www.apache.org/dyn/closer.lua/nuttx/12.6.0” checksum-root: “https://downloads.apache.org/nuttx/12.6.0” key-file: “https://downloads.apache.org/nuttx/KEYS”
source-os-dist: - “apache-nuttx-12.6.0.tar.gz” source-app-dist: - “apache-nuttx-apps-12.6.0.tar.gz”
{% include JB/setup %}
What's New In This Release Major Changes to Core OS Sched
#12404 nuttx/arch.h: Update parameter type to match definition.
#12464 Revert “sched: replace some global variables to macro”
#12175 sched: Move dump.c to sched_dumponexit.c
#12376 sched: remove g_cpu_schedlock g_cpu_irqsetlock g_cpu_locksetlock
#12377 sched: remove redundant variables “switched”
#12031 sched: SMP: Fix issues of return values of nxsched_add_readytorun()
#12140 sched_lock: we can remove these sched_lock,
#12009 sched/environ: Improve performance of set/unset environment
#12114 sched/irq: irq_cpu_locked can be remove
#12115 sched/irq: remove scheduling check in csection
#11973 sched/irq: spinlock should not depends on SMP
#12427 sched/kconfig: add PID_INITIAL_LENGTH
#12179 sched/Kconfig: make disable idle loop configurable
#12434 sched/Kconfig: waitpid() depends on SCHED_HAVE_PARENT if BUILD_KERNEL
#12316 sched/misc: dump stack as platform bit width
#12319 sched/mqueue: add support of tick based send() and receive()
#12126 sched/mqueue: correct list parameter
#12001 sched/mqueue: merge System-V message queue initialize into posix
#12402 sched/mqueue: reclaim unsent message
#12315 sched/posixspawn: disable tedious logging
#12106 sched/pthread: detached thread should destroy the join info
#12314 sched/pthread: pthread_join null pointer
#12388 sched/pthread: rename pthread_initialize.c
#12462 sched/pthread: simplify pthread_create() branch logic
#12282 sched/sched: CONFIG_SCHED_RESUMESCHEDULER macro define error
#12284 sched/sched: Simplify the scheduling logic in nxsched_add_readytorun() for SMP
#12141 sched/sched: There is no need to use sched_[un]lock
#11997 sched/signal: add sanity check for siginfo
#12380 sched/signal: fix deadlock when sigdeliver call enter_critical_section
#12432 sched/signal: move signal structures pool to bss
#12406 sched/signal: reclaim sigaction
#12302 sched/task: minor revision on task_init.c
#12320 sched/tcb: use shared group for kthreads
#12285 sched/tee: In tee, we need to disable the IRQ interrupt to make the A core policy consistent with the M core.
#12412 sched/tls: fix build error under CONFIG_PTHREAD_ATFORK enabled
#12113 sched/timer: use spin_lock_irqsave protect g_alloctimers
#12142 sched/wqueue: There is no need to use sched_[un]lock
#12079 stack: update up_get_intstackbase API to support cpu id mm
#12449 mm: check double free before adding to delaylist
#12467 mm: fix mm_curused calculate err
#12541 mm: seperate mm_pool and mm_pool init
#12041 mm/arch: user-space device mapping support
#12445 mm/gran: Fix GRAN_ALIGNED() macro
#12095 mm/gran: remove size limitation
#12224 mm/iob: Support alloc IOB via malloc
#12124 mm/map: minor reformating vm_region.c
#12040 mm/map.h: polish field defs/comments libc
#12230 Basic locale support for C++ (libstdc++)
#12422 Fixes for symbol definition in libc.csv and syscall.csv
#12158 libc: add support for reallocarray
#12168 libc.csv: Fix macro guard for TLS related symbols
#12297 libc/lib_bzero:Add bzero prototype.
#12112 libs/libc/fdcheck: update fdcheck impl
#12263 libc/string: replace __builtin_ffsl with inline function
#12451 libc/sem_open: return error code, sem returned by parameter
#12426 libs/libc/gdbstub:fix get thread rsp command crash
#12211 libs/libc/inttypes: add support for imaxdiv tools
#12087 Adjust the apps/benchmarks directory and add some new Profile tools
#12231 tools: Extend default appdir list.
#12137 tools/configure.sh: list confs by board
#12195 tools/configure.sh: revise help message
#12363 tools/minidump: 64-bit dump support
#12010 tools/minidump: support multiple ELF files
#12469 tools/minidumpserver: fix 32bit crash log parsing
#12153 tools/uncrustify: disable leading space removal for block comment various
#12439 Kconfig: move LTO options to Build Setup menu
#12045 all: Fix accessing uninitialized local variables
#12492 compiler: fix build break on niche platform
#12354 include: Add missing c symbols to std namespace
#12303 include: When defining NDEBUG, assert will implement alignment standards
#12075 include/nuttx/timers/pwm.h: add dcpol attribute to pwm_chan_s
#12343 include/sys/socket.h: add the definition of SCM_TIMESTAMP
#12529 include/unistd.h: Adds some posix supported definitions Changes to the Build System
#12171 boards/stm32: Add ds1307 to CMake build
#12270 cmake: bugfix KERNEL should not be defined with FLAT mode in libc, mm etc.
#12423 cmake:bugfix CMake compilation options settings should not use strings
#12237 cmake: bugfix generate config.h contain ; characters will be handled incorrectly
#12173 cmake: fix a few bugs during use CMake build
#12035 cmake: implement ALLSYMS feat of CMake version
#12011 cmake: init protected-mode for CMake build
#12201 cmake/export: fix kernel mode app building
#12312 cmake/romfs: separate c flags to avoid compile fail
#12016 openamp/cmake: sync with libmetal.defs
#12017 risc-v/cmake: revision for kernel mode
#12023 virtio/cmake: sync with makefile system Architectural Support New Architecture Support
#12441 arch/arm/cxd32xx: Add cxd32xx SoC support
#12350 arch/arm/stm32h7: add stm32h755II chip
#12394 arch/arm/stm32h7: add stm32h755II chip Architecture improvements
#12281 arch: smp optmization
#12457 arch: add LDC2 (dlang) support
#12378 types: on some arch, execution speed can be accelerated
#12136 arch/kconfig: minor revision for ARCH_KMAP_NPAGES
#12154 arch/kconfig: revise kernel mapping configs
#12494 arch/arm: Fix SHMODULEFLAGS so that we link dynamically correctly
#12401 arch/arm: Rename CONFIG_MPU_RESET -> CONFIG_ARM_MPU_RESET so the the MPU reset so it is compiled
#12047 arch/arm/am335x: Fix incorrect signedness of variable
#12442 arch/arm/armv7-m/arm_vectors.c : Add the address alignment.
#12379 arch/arm/armv6/7/8-m: use ISB instruction immediately after the MSR instruction
#12366 arch/arm/imxrt: 1170 MPU config ensure no lockups can occur
#12268 arch/arm/imxrt:Add DMA preflight Support
#12318 arch/arm/imxrt: lpuart singlewire transfer support
#12091 arch/arm/kasan: Implementing global variable out of bounds detection
#12227 arch/arm/lpc17_40 i2c: Fix I2C driver state desynchronization.
#12239 arch/arm/nrf91: enable FPU
#12046 arch/arm/s32k3xx: Fix incorrect check for invalid port or pin number
#12235 arch/arm/mx8mp: add rptun/rpmsg client support
#12018 arch/arm/qemu/armv7a: add Symmetric Multi-Processing (SMP) support
#12138 arch/arm/qemu/trustzone: add secure memory config
#12417 arch/arm/samv7: add support for user signature area in embedded flash
#12255 arch/arm/samv7: build sam_qencoder.c only if at least one timer counter is enabled
#12131 arch/arm/sama5: Improvements relating to SAMA5 TSD driver
#12382 arch/arm/samv7: enforce compilation error for incompatible configuration options
#12392 arch/arm/samv7: fix U(S)ART clock enable for 1-wire
#12393 arch/arm/samv7: remove duplicated prototypes
#12077 arch/arm/samv7/sam_pwm.c: adjust arch driver to DCPOL options
#12306 arch/arm/samv7/sam_pwm.c: option to make channels synchronous
#12081 arch/arm/samv7/sam_qencoder.c: add support for GETINDEX ioctl call
#12247 arch/arm/samv7/sam_pwm.c: option to enable only the L PWM outputs
#12538 arch/arm/stm32h7: allow Ethernet MAC without PHY
#11933 arch/arm/stm32f7: Add support to I2S Audio inteface using I2S/SPI peripheral
#11990 arch/arm/stm32h7: Serial Fix Logic error in up_dma_txavailable
#12145 arch/arm/stm32h7/linum-stm32h753bi: Add support to littlefs and nxffs
#11996 arch/arm/stm32h7/linum-stm32h753bi: Add FDCAN support
#12014 arch/arm/stm32h7/linum-stm32h753bi: add support to leds
#12083 arch/arm/stm32h7/fdcan: fixed kconfig and debug register
#12093 arch/arm/stm32h7/stm32_i2c: fix sending large data over i2c
#12105 arch/arm/stm32f76xx77xx_rcc: Fix PLLI2S factor divisors
#12470 arch/arm/xmc4 uart driver fix
#12425 arch/arm/xmc4 vadc driver - background request source partial support
#12482 arch/arm/xmc4 vadc driver - background request source partial support (linked to #12425)
#12352 arch/arm/mxc4/XMC4800 improve EtherCAT support
#12049 arch/arm64: Add -mcpu=cortex-a55
#12146 arch/arm64: Add atomic modifyregXX
#12524 arch/arm64: add DSB ISB where necessary
#12523 arch/arm64: add poweroff
#12525 arch/arm64: align stack pointer and misc update
#12521 arch/arm64: Change the ARM configuration name to ARM64
#12353 arch/arm64: EL3 runtime support
#12327 arch/arm64: optimise for arm64_switchcontext
#12526 arch/arm64: use serr for error log
#12160 arch/arm64/imx9: Add a more capable uart driver
#12228 arch/arm64/imx9: Add DMA memory allocator
#12183 arch/arm64/imx9: Add eDMA driver
#12273 arch/arm64/Imx9: Add ethernet driver
#12034 arch/arm64/imx9: Add GPIO and IOMUX drivers
#12149 arch/arm64/imx9: Add LPI2C driver
#12164 arch/arm64/imx9: Add LPSPI driver
#12213 arch/arm64/imx9: Add PSCI (system reset) support
#12292 arch/arm64/imx9: Add uSDHC driver
#12054 arch/arm64/Imx9: lptpm pwm
#12048 arch/arm64/Imx9: flexio pwm
#12051 arch/arm64/Imx9: usbdev driver
#12170 arch/arm64/imx9/imx9_boot.c: Add initialization of pin interrupts
#12229 arch/arm64/imx9/imx9_clockconfig: Add way to change and ask for PLL frequency
#12059 arch/arm64/imx9/imx9_flexio_pwm.c: Fix wrong input scale
#12161 arch/arm64/imx9/imx9_iomux.h: Fix issues with the header file
#12182 arch/arm64/imx9/imx9_usbdev.c: Fix the descriptor alignments and …
#12428 arch/arm64/imx9/Imx93 base addr
#12148 arch/arm64/imx9/imx93_gpioirq: Fix the GPIO interrupt source names
#12305 sim: add sqlite configuration
#12431 sim: Allow the sim to set the MTU of netdevice and support the jumbo frame.
#12167 sim: Modify the existing implementation of the simwifi script
#12088 sim/kconfig: select ARCH_TOOLCHAIN_GNU
#12172 arch/risc-v: add LLVM clang support
#12176 arch/risc-v: add llvm experimental extensions into command line
#12118 arch/risc-v: Add more debug related CSR definitions
#12488 arch/risc-v: Add support for S-mode flat build
#12506 arch/risc-v: Add support for SOPHGO SG2000 SoC (T-Head C906)
#12184 arch/risc-v: add support of save/restore vector registers
#12125 arch/risc-v: add T-HEAD CSR mapping
#12174 arch/risc-v: Add Vector CSRs to csr.h
#12265 arch/risc-v: assign idlestack array statically
#12398 arch/risc-v: Check that the size is valid for NAPOT
#12261 arch/risc-v: correct minor issues regarding comments
#12220 arch/risc-v: decouple Per-CPU scratch with ARCH_USE_S_MODE
#12296 arch/risc-v: esp32_c3/pm: Fix assert issue in PM mode
#12396 arch/risc-v: Feature/esp rtc io
#12236 arch/risc-v: fix break on kernel mode
#12326 arch/risc-v: fix idle stack assign order
#12132 arch/risc-v: fix RV32 addrenv destroy issue
#12117 arch/risc-v: force using encoding macro for CSR access
#12389 arch/risc-v: guard tcb->name usage
#12250 arch/risc-v: implement SBI ipi extension
#12527 arch/risc-v: Improve the SBI function handle
#12288 arch/risc-v: Make bl602 allocate idle stack after ebss
#12295 arch/risc-v: Make esp32 SoCs allocate idle stack after ebss
#12543 arch/risc-v: move PRIxREG to inttypes.h
#12534 arch/risc-v: New CSRs about CLIC support for RISCV
#12207 arch/risc-v: remove the hard code array of cpu idle stack
#12200 arch/risc-v: rename local variable name to avoid shadowed declaration
#12232 arch/risc-v: replace atomic operations to AMO
#12522 arch/risc-v: revise mtimer for rv64ilp32
#12504 arch/risc-v: revise MMIO for rv64ilp32
#12475 arch/risc-v: support rv64ilp32 ABI
#12542 arch/risc-v/bl808: Add courier system driver
#12036 arch/risc-v/espressif: Fix empty cpuint number
#12486 arch/risc-v/esp: Make the legacy bootloader (IDF bootloader) option visible
#12450 arch/risc-v/esp32[c3]: Add XTWDT support
#12337 arch/risc-v/esp32[c3|c6]: Add support for Wi-Fi
#11992 arch/risc-v/esp32[c3|c6|h2]: Fix filesystem test support
#12044 arch/risc-v/esp32[c3|c6|h2]: Fix RTC data placement
#12163 arch/risc-v/esp32[c3|c6|h2]: Fix simple boot map_rom_segments
#12485 arch/risc-v/esp32[c3|c6|h2]: Add gspi master support
#12495 arch/risc-v/esp32[c3|c6|h2]: Add SPI Slave support
#12104 arch/risc-v/esp32[c3|h2|c6]: Bugfixes for filesystem errors
#12254 arch/risc-v/esp32[c3|h2|c6]: Add support to TWAI/CANBus controller
#12429 arch/risc-v/fork.S: Fix clobbering of s0 in fork()
#12512 arch/risc-v/include/elf.f: Support coredump for rv32 and rv64 targets.
#12430 arch/risc-v/litex/litex_arch_alarm: Support tickless schedular with arch alarm.
#12544 arch/risc-v/nuttsbi: add MTVAL argument
#12453 arch/risc-v/mpfs: Add error handling for PMP conf
#12359 arch/risc-v/mpfs: Change linker symbols _ssbi_ddr and _esbi_ddr into _ssbi…
#12276 arch/risc-v/pgmap: Fix bug in kernel page directory init
#12279 arch/risc-v/qemu: fix kernel build issue 12275
#12290 arch/risc-v/qemu: graceful shutdown via SBI
#12178 arch/risc-v/qemu-rv: Add S-mode support
#12433 arch/risc-v/riscv_mtimer: Update the mtimecmp value once per interrup…
#12535 arch/risc-v/rv64ilp32: revise fpucmp
#12435 arch/risc-v/syscall: Optimize user service call performance
#12301 arch/risc-v/virt: graceful shutdown in M-mode
#12267 arch/xtensa: Fix esp32s3 build warnings
#12530 arch/xtensa: Modified ESP32S3 chip names and added “ARCH_CHIP_ESP32S3CUSTOM” chip module
#12323 arch/xtensa: Zero-Cross driver to ESP32
#12030 arch/xtensa/esp32: Use the Espressifs common RMT driver.
#12328 arch/xtensa/esp32[|s2|s3]: Fix D_I_BUS_OFFSET
#12003 arch/xtensa/esp32[|s2|s3]: Update libc stubs to properly acquire/release locks
#12399 arch/xtensa/esp32[|s2|s3]: textheap: do not require RTC heap
#12006 arch/xtensa/esp32s3: Add 16-byte-align SPI-Flash encryption write
#12355 arch/xtensa/esp32s3: Add a few optional text heap APIs to support esp32s3
#12269 arch/xtensa/esp32s3: add a variation with 32MB flash
#12289 arch/xtensa/esp32s3: Add ESP32-S3 ADC driver
#12007 arch/xtensa/esp32s3: Add ESP32-S3 AES driver
#12217 arch/xtensa/esp32s3: Add missing entries to iram.text from legacy_sections.ld
#12165 arch/xtensa/esp32s3: add simple boot support
#12447 arch/xtensa/esp32s2: add simple boot support
#12076 arch/xtensa/esp32S3: configuring gpio pin 19 or 20 ( USB_D+/- ) for purposes other than USB/JTAG Controller and I2S pin selection range fixed
#12264 arch/xtensa/esp32s3: give ESP32S3_APP_FORMAT_LEGACY a prompt
#12043 arch/xtensa/esp32s3: Fix duplicate definition warnings
#12008 arch/xtensa/esp32s3: Fix one page program span over 2 pages
#12334 arch/xtensa/esp32s3: make textheap return i-bus address consistently
#12332 arch/xtensa/esp32s3: pending interrupt should be clear while disable GPIO IRQ
#12222 arch/xtensa/esp32s3: Support ESP32-S3 PM standby and sleep.
#12348 arch/xtensa/esp32s3: textheap.c: fix range checks
#12004 arch/xtensa/esp32s3: Update wireless drivers
#12505 arch/xtensa/esp32s3/Bootloader.mk: Correction for MCUBoot Version Config Variable
#12364 arch/espressif: Add option to disable the GIT_DEPTH to pull submodules
#12206 arch/x86_64: add simple ACPI parser
#12234 arch/x86_64: enable CUSTOMOPT
#12205 arch/x86_64/intel64: add cache support
#12204 arch/x86_64/intel64: various cosmetic changes
#12225 arch/x86_64/x86_64_acpi.c: avoid debug messages in acpi_init()
#12214 arch/x86_64/x86_64_acpi.c: cosmetic changes after review
#12210 arch/x86_64/x86_64_acpi.c: make sure that RSDP is mapped
Driver Support New Driver Support
Networking Improvements
CONFIG_NET_ARP_SEND by default