Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Markdown
# What's New In This Release

## Highlights
* Feature 1
* Feature 2
* Feature 3

## Major Changes to Core OS

### New Features

### Bug Fixes

## Major Changes to the Build System

### #4013New Features

### Bug Fixes

## Architectural Support

### New Architecture

### Architectures with significant improvements

#### ARM* [](https://github.com/apache/incubator-nuttx/pull/) sched/signal: Correct kill with cancellation #4615 
 * [#4522](https://github.com/apache/incubator-nuttx/pull/#4522) arch/armsched: Add ARCH_CORTEXM55 Kconfig for cortex-m55 Fix CPU affinity issues in SMP #4619 
 * [#3759](https://github.com/apache/incubator-nuttx/pull/#3759) arm/v7-a/fpulibc: addMove VFP-v3pthread D32stuff supportto  userspace #3626 
 * [#4536](https://github.com/apache/incubator-nuttx/pull/#4536) archinclude/armspawn.h: correct the function name from arm_getsp() to up_getsp() Add POSIX_SPAWN_SETSID definition #3672 
 * [#4410](https://github.com/apache/incubator-nuttx/pull/#4410) archlibc/arm/assertpty: enhance the assert dump Make ptsname[_r] support PSEUDOTERM_BSD config too #3673 
 * [#4409](https://github.com/apache/incubator-nuttx/pull/#4409) arch/arm/cortex-m: add up_backtrace support libc/termios: Implement TCSADRAIN and TCSAFLUSH for tcsetattr #3674 
 * [#4405](https://github.com/apache/incubator-nuttx/pull/#4405) archlibc/armv7misc: add uplib_backtrace support based on frame pointer  glob #4595 
 * [#4385](https://github.com/apache/incubator-nuttx/pull/#4385) archlibc/armv8-mstring: add Updatelib_strchrnul per the latest architecture reference manual  
 * [#4354#4594 


## Major Changes to the Build System

### New Features

### Bug Fixes

## Architectural Support

### New Architecture

### Architectures with significant improvements

#### ARM
 * [#4522](https://github.com/apache/incubator-nuttx/pull/#4354#4522) arch/arm: correctAdd theARCH_CORTEXM55 frameKconfig pointerfor registercortex-m55 declare 
 * [#4205#3759](https://github.com/apache/incubator-nuttx/pull/#4205#3759) arm/v7-a/fpu: add up_secure_irqVFP-v3 D32 support    
 * [#4176#4536](https://github.com/apache/incubator-nuttx/pull/#4176#4536) ARM: fix CPSR corruption after exception handlingarch/arm: correct the function name from arm_getsp() to up_getsp()  
 * [#4094#4410](https://github.com/apache/incubator-nuttx/pull/#4094#4410) arch/arm/armv7-aassert: Removeenhance the specialassert SMPdump SGI process  
 * [#4451#4409](https://github.com/apache/incubator-nuttx/pull/#4451#4409) arch/arm/cortex-m: Replace ar, nm and ld with gcc-ar, gcc-nm and gcc  add up_backtrace support  
 * [#4343#4405](https://github.com/apache/incubator-nuttx/pull/#4343#4405) arch/armv8-marmv7: Addadd SAUup_backtrace support based on frame pointer  
 * [#4341#4385](https://github.com/apache/incubator-nuttx/pull/#4341#4385) arch/armarmv8-m: Add NVIC_FPCCR_XXX macro to avoid the hard code valueUpdate per the latest architecture reference manual  
 * [#4279#4354](https://github.com/apache/incubator-nuttx/pull/#4279#4354) arch/cortex-marm: correct replacethe arm_switchcontextframe topointer c-styleregister declare 
 * [#4106#4205](https://github.com/apache/incubator-nuttx/pull/#4106#4205) arm/setjmp.h: add c++up_secure_irq support  
 * [#4013#4176](https://github.com/apache/incubator-nuttx/pull/#4013#4176) armARM: fix enableCPSR interruptcorruption tooafter earlier caused system crashexception handling  
 * [#4483#4094](https://github.com/apache/incubator-nuttx/pull/#4483) Fix compilation of arm protected build#4094) arch/armv7-a: Remove the special SMP SGI process  
 * [#3879#4451](https://github.com/apache/incubator-nuttx/pull/#3879#4451) arch: Rename xxx_getsp to up_getsp  

#### CXD56XX Replace ar, nm and ld with gcc-ar, gcc-nm and gcc  
 * [#4557#4343](https://github.com/apache/incubator-nuttx/pull/#4557#4343) arch/armv8-m: cxd56xx:Add Replace the critical section with spinlock in cxd56_serial.cSAU support  
 * [#3743#4341](https://github.com/apache/incubator-nuttx/pull/#3743#4341) arch: /arm: cxd56xx: Update cxd56xx driversAdd NVIC_FPCCR_XXX macro to avoid the hard code value  
 * [#3845#4279](https://github.com/apache/incubator-nuttx/pull/#3845#4279) Fix spresense with elf  

#### LPC17XX_40XXarch/cortex-m: replace arm_switchcontext to c-style  
 * [#4072#4106](https://github.com/apache/incubator-nuttx/pull/#4072#4106) lpc17xxarm/setjmp.h:add Added WDT driver.c++ support  
 * [#4316#4013](https://github.com/apache/incubator-nuttx/pull/#4316#4013) lpc17_40arm: Fixed I2C port sanity check. fix enable interrupt too earlier caused system crash  
 * [#4148#4483](https://github.com/apache/incubator-nuttx/pull/#4148#4483) lpc17_40: style fix in WDT definitions.Fix compilation of arm protected build  
 * [#4107#3879](https://github.com/apache/incubator-nuttx/pull/#4107#3879) lpc17_40arch: Rename Fixedxxx_getsp progmem driver.to up_getsp  

#### STM32CXD56XX
 * [#3761#4557](https://github.com/apache/incubator-nuttx/pull/#3761#4557) ET-STM32 Stamp: An STM32F103RET6 target for NuttXarch: cxd56xx: Replace the critical section with spinlock in cxd56_serial.c 
 * [#4350#3743](https://github.com/apache/incubator-nuttx/pull/#4350#3743) arch/arm/src/stm32l4/Kconfig: arm: addcxd56xx: newUpdate STM32L4+ chip typescxd56xx drivers  
 * [#4310#3845](https://github.com/apache/incubator-nuttx/pull/#4310#3845) arch/stm32: improvements for qencoder   Fix spresense with elf  

#### LPC17XX_40XX
 * [#3752#4072](https://github.com/apache/incubator-nuttx/pull/#3752#4072) Uselpc17xx: inttypesAdded stm32fxWDT i2cdriver.  
 * [#4090#4316](https://github.com/apache/incubator-nuttx/pull/#4090#4316) STM32G43XX Analog Comparatorlpc17_40: Fixed I2C port sanity check.  
 * [#3942#4148](https://github.com/apache/incubator-nuttx/pull/#3942#4148) Changed the STM32 Analog Comparator driver. lpc17_40: style fix in WDT definitions.  
 * [#3729#4107](https://github.com/apache/incubator-nuttx/pull/#3729#4107) stm32 timerslpc17_40: PreferFixed GTIM macros and make this use more uniformprogmem driver.  

#### STM32L4STM32
 * [#3668#3761](https://github.com/apache/incubator-nuttx/pull/#3668) arch/arm/src/stm32l4/hardware/stm32l4xrxx: pinmap alternative function for SPI2  #3761) ET-STM32 Stamp: An STM32F103RET6 target for NuttX 
 * [#4468#4350](https://github.com/apache/incubator-nuttx/pull/#4468#4350) arch/arm/src/stm32l4/Kconfig: fixadd new STM32L4+ optionchip bytestypes memory address  
 * [#4501#4310](https://github.com/apache/incubator-nuttx/pull/#4501#4310) arch/arm/src/stm32l4stm32: add controlimprovements for Vddio2qencoder independent I/Os supply valid  
 * [#4469#3752](https://github.com/apache/incubator-nuttx/pull/#4469#3752) arch/arm/src/stm32l4/stm32l4_flash.c: fix FLASH_CONFIG_I to use dual-bank access  

#### STM32L5

#### S32K1XX
 * [#3850Use inttypes stm32fx i2c  
 * [#4090](https://github.com/apache/incubator-nuttx/pull/#3850#4090) UCANS32K146STM32G43XX add support for B revision  Analog Comparator  
 * [#4493#3942](https://github.com/apache/incubator-nuttx/pull/#4493#3942) Changed Fixthe STM32 errorAnalog inComparator s32k118_pinmuxdriver.h  
 * [#3795#3729](https://github.com/apache/incubator-nuttx/pull/#3795#3729) stm32 timers: S32K1XXPrefer LSPIGTIM Doublemacros wordand upmake tothis 64use bitsmore supportuniform.  

#### IMX6 STM32L4
 * [#3777#3668](https://github.com/apache/incubator-nuttx/pull/#3777#3668) arch/arm/src/stm32l4/hardware/stm32l4xrxx: imx6:pinmap Addalternative termiosfunction supportfor to imx6  

#### IMXRT SPI2  
 * [#3988#4468](https://github.com/apache/incubator-nuttx/pull/#3988#4468) arch/arm/src/imxrt/imxrt_flexpwm.c: fix mistake in submodulesstm32l4: fix STM32L4+ option bytes memory address offset  
 * [#4431#4501](https://github.com/apache/incubator-nuttx/pull/#4431#4501) i.MX RTarch/arm/src/stm32l4: Changesadd tocontrol FlexCANfor driverVddio2 andindependent Teensy 4.x CAN configurationI/Os supply valid  
 * [#4285#4469](https://github.com/apache/incubator-nuttx/pull/#4285#4469) arch/arm/src/imxrtstm32l4/imxrtstm32l4_flexpwmflash.c: Set LDOK bits after all channels are set  fix FLASH_CONFIG_I to use dual-bank access  

#### STM32L5

#### S32K1XX
 * [#4138#3850](https://github.com/apache/incubator-nuttx/pull/#4138#3850) i.MX RT: addedUCANS32K146 add support for Tickless OS  

#### RP2040B revision  
 * [#4049#4493](https://github.com/apache/incubator-nuttx/pull/#4049#4493) RaspipicoFix smperror 
 * [#4251in s32k118_pinmux.h  
 * [#3795](https://github.com/apache/incubator-nuttx/pull/#4251#3795) raspberrypi-pico: add support for lcd_dev S32K1XX LSPI Double word up to 64 bits support  

#### RTL8720CIMX6 
 * [#4076#3777](https://github.com/apache/incubator-nuttx/pull/#4076#3777) arch: AmebaZ2imx6: Add termios socsupport to srcimx6 code 

#### NRF52

#### STM32H7/STM32F7IMXRT 
 * [#4331#3988](https://github.com/apache/incubator-nuttx/pull/#4331#3988) arch/arm/stm32h7: dma and serial: add TRBUFF flag.src/imxrt/imxrt_flexpwm.c: fix mistake in submodules address offset  
 * [#4441#4431](https://github.com/apache/incubator-nuttx/pull/#4441#4431) arch/arm/stm32f7/stm32_irq: Fix format strings  
 * [#4098](i.MX RT: Changes to FlexCAN driver and Teensy 4.x CAN configuration  
 * [#4285](https://github.com/apache/incubator-nuttx/pull/#4098#4285) stm32h7 Ethernet add yield and timeout to not hog CPUarch/arm/src/imxrt/imxrt_flexpwm.c: Set LDOK bits after all channels are set  
 * [#3730#4138](https://github.com/apache/incubator-nuttx/pull/#3730#4138) stm32h7i.MX rccRT: Syncadded h7x7xxsupport andfor h7x3xx.Tickless ChangesOS are relevant to both 

#### RP2040 
 * [#3892#4049](https://github.com/apache/incubator-nuttx/pull/#3892#4049) arch/arm/src/stm32h7: qspi use indirect write instead of indirect read Raspipico smp 
 * [#3728#4251](https://github.com/apache/incubator-nuttx/pull/#3728#4251) stm32f7raspberrypi-pico: Removeadd referencessupport tofor BOARD_ENABLE_USBOTG_HSULPI.lcd_dev  

#### RTL8720C
 * [#3731#4076](https://github.com/apache/incubator-nuttx/pull/#3731#4076) stm32/stm32f7 ticklessAmebaZ2: Fix up_timer_getmask to be correct for the width of the timer. Add soc src code 

#### NRF52

#### STM32H7/STM32F7
 * [#3976#4331](https://github.com/apache/incubator-nuttx/pull/#3976) STM32F7 SDMMC fixes #4331) arch/arm/stm32h7: dma and serial: add TRBUFF flag. 
 * [#3924#4441](https://github.com/apache/incubator-nuttx/pull/#3924#4441) stm32h7 fix for adc to handle overrun and the DR's fifo  

#### Renesas arch/arm/stm32f7/stm32_irq: Fix format strings  
 * [#4230#4098](https://github.com/apache/incubator-nuttx/pull/#4230#4098) renesas/rx65n: stm32h7 Ethernet add longyield typeand fortimeout allto PRI*PTRnot hog 

#### RX65N

#### Risc-VCPU  
 * [#3770#3730](https://github.com/apache/incubator-nuttx/pull/#3770) Add support for PolarFire SoC and icicle board#3730) stm32h7 rcc: Sync h7x7xx and h7x3xx. Changes are relevant to both  
 * [#3997#3892](https://github.com/apache/incubator-nuttx/pull/#3997#3892) risc-v/bl602: update wifi firmware version arch/arm/src/stm32h7: qspi use indirect write instead of indirect read 
 * [#4381#3728](https://github.com/apache/incubator-nuttx/pull/#4381#3728) arch/riscv/assertstm32f7: enhanceRemove thereferences assert dumpto BOARD_ENABLE_USBOTG_HSULPI.  
 * [#4367#3731](https://github.com/apache/incubator-nuttx/pull/#4367#3731) riscvstm32/backtracestm32f7 tickless: addFix up_timer_backtracegetmask to supportbe correct 
for * [#4365the width of the timer. 
 * [#3976](https://github.com/apache/incubator-nuttx/pull/#4365#3976) riscv/common: add CURRENT_REGS declare in RV32STM32F7 SDMMC fixes  
 * [#4342#3924](https://github.com/apache/incubator-nuttx/pull/#4342#3924) riscv/bl602: Fix that AP cannot be start when STA have been started.  stm32h7 fix for adc to handle overrun and the DR's fifo  

#### Renesas 
 * [#4335#4230](https://github.com/apache/incubator-nuttx/pull/#4335#4230) arch/bl602:Add bl602 os adapter layer  renesas/rx65n: add long type for all PRI*PTR  

#### RX65N

#### Risc-V
 * [#4145#3770](https://github.com/apache/incubator-nuttx/pull/#4145#3770) risc-v/bl602: update wifi firmware Add support for PolarFire SoC and some fixup.  icicle board
 * [#3849#3997](https://github.com/apache/incubator-nuttx/pull/#3849#3997) risc-v/mpfsbl602: irqupdate fixes,wifi more register defines and up_systemreset()firmware version  
 * [#3984#4381](https://github.com/apache/incubator-nuttx/pull/#3984#4381) risc-v/bl602arch/riscv/assert: Supportenhance APthe andassert STAdump as independent network interface device  
 * [#3913#4367](https://github.com/apache/incubator-nuttx/pull/#3913#4367) archriscv/backtrace: k210: Fix stack coloring for the idle thread stack  add up_backtrace support  
 * [#3757#4365](https://github.com/apache/incubator-nuttx/pull/#3757#4365) riscv/common: Addadd inlineCURRENT_REGS IRQdeclare processin functionsRV32  
 * [#4041#4342](https://github.com/apache/incubator-nuttx/pull/#4041#4342) risc-vriscv/bl602: addFix efusethat driverAP cannot 

#### RV64

#### ESP32C3be start when STA have been started.  
 * [#3853#4335](https://github.com/apache/incubator-nuttx/pull/#3853#4335) arch/risc-v/esp32c3: add esp32c3_modtext to allow ELF loading  
 
#### BL602 
 * [#3784bl602:Add bl602 os adapter layer  
 * [#4145](https://github.com/apache/incubator-nuttx/pull/#3784#4145) risc-v/bl602: update Addwifi firmware RTCand driversome fixup. 

#### Xtensa
 * [#4280#3849](https://github.com/apache/incubator-nuttx/pull/#4280#3849) arch:xtensa: add new GNU toolchain for xtensa.risc-v/mpfs: irq fixes, more register defines and up_systemreset()  
 * [#4478#3984](https://github.com/apache/incubator-nuttx/pull/#4478#3984) arch: xtensa: add xtensa cache support risc-v/bl602: Support AP and STA as independent network interface device  
 * [#4547#3913](https://github.com/apache/incubator-nuttx/pull/#4547#3913) arch:xtensa k210: add full bactrace supportFix stack coloring for the idle thread stack  
 * [#4407#3757](https://github.com/apache/incubator-nuttx/pull/#4407#3757) arch/xtensa/src/commonriscv: UseAdd irq_spininline APIsIRQ inprocess modifyregXXfunctions  
 * [#4403#4041](https://github.com/apache/incubator-nuttx/pull/#4403#4041) Use driver-specific spinlock for ESP32 serial driver.  risc-v/bl602: add efuse driver  

#### RV64

#### ESP32C3
 * [#4458#3853](https://github.com/apache/incubator-nuttx/pull/#4458#3853) arch:xtensa/risc-v/esp32c3: add xtensa mpu support esp32c3_modtext to allow ELF loading  
 
#### BL602 
 * [#3762#3784](https://github.com/apache/incubator-nuttx/pull/#3762#3784) xtensarisc-v/bl602: #ifdefAdd SYMBOLRTC isdriver always true
 if SYMBOL defined as 0* [#4607](https://github.com/apache/incubator-nuttx/pull/#4607) Open ble controller adaptation code  

#### ESP32Xtensa
 * [#4638#4280](https://github.com/apache/incubator-nuttx/pull/#4638#4280) esp32xx_rom.ldarch:xtensa: Stronglyadd declarenew someGNU oftoolchain thefor libgcc.a functions that are ROM residentxtensa.  
 * [#4417#4478](https://github.com/apache/incubator-nuttx/pull/#4417#4478) arch/esp32: xtensa: Properlyadd handlextensa GPIOcache interruptsupport in SMP. 
 * [#4234#4547](https://github.com/apache/incubator-nuttx/pull/#4234#4547) espressif/esp32/esp32s2/esp32c3arch:xtensa: Disableadd wdtfull on initialization.  

### Minor changes

## Simulatorbactrace support 
 * [#3921#4407](https://github.com/apache/incubator-nuttx/pull/#3921#4407) sim:arch/xtensa/src/common: Use ccirq_spin asAPIs linker,in whichmodifyregXX usually aliases to either GCC or Clang  
 * [#4108#4403](https://github.com/apache/incubator-nuttx/pull/#4108#4403) boards/sim: enable nxlooper for alsa configUse driver-specific spinlock for ESP32 serial driver.  
 * [#4222#4458](https://github.com/apache/incubator-nuttx/pull/#4222#4458) sim/cmdline: save boot cmdlinearch:xtensa: add xtensa mpu support  
 * [#4209#3762](https://github.com/apache/incubator-nuttx/pull/#4209#3762) Fix sim smp  
 * [#4207xtensa: #ifdef SYMBOL is always true if SYMBOL defined as 0  

#### ESP32
 * [#4638](https://github.com/apache/incubator-nuttx/pull/#4207#4638) archesp32xx_rom.ld: sim:Strongly Workarounddeclare tosome makeof the IPIlibgcc.a workfunctions onthat macOSare ROM resident  
 * [#4167#4417](https://github.com/apache/incubator-nuttx/pull/#4167#4417) arch/simesp32: TheProperly secondhandle CPUGPIO shouldn'tinterrupt call up_irqinitialize in SMP. 
 * [#3904#4234](https://github.com/apache/incubator-nuttx/pull/#3904#4234) boardsespressif/simesp32/simesp32s2/simesp32c3: correctDisable LDLINKFLAGSwdt afteron migratinginitialization. from ld

### to gcc Minor changes

## Simulator 
 * [#4056#3921](https://github.com/apache/incubator-nuttx/pull/#4056#3921) arch/sim: Fix bt and audio simulation stop work in SMP modeUse cc as linker, which usually aliases to either GCC or Clang  
 * [#4045#4108](https://github.com/apache/incubator-nuttx/pull/#4045#4108) boards/sim/smp: fixenable smpnxlooper can't start, caused by signal too busyfor alsa config  
 * [#4015#4222](https://github.com/apache/incubator-nuttx/pull/#4015#4222) modify sim clock to PC abs time/cmdline: save boot cmdline  
 * [#4209](https://github.com/apache/incubator-nuttx/pull/#4209) Fix sim smp  
 * [#3983#4207](https://github.com/apache/incubator-nuttx/pull/#3983#4207) arch/: sim: ImplementWorkaround mm_mallinfoto andmake malloc_sizethe forIPI thework customon heapmacOS  
 * [#4459#4167](https://github.com/apache/incubator-nuttx/pull/#4459#4167) arch/sim: InhibitThe stacksecond protectorCPU onshouldn't stack coloration functioncall up_irqinitialize  
 * [#3721#3904](https://github.com/apache/incubator-nuttx/pull/#3721#3904) boards/sim/sim/rptunsim: correct support multi(>2) core interactive by share memoryLDLINKFLAGS after migrating from ld to gcc  
 * [#4306#4056](https://github.com/apache/incubator-nuttx/pull/#4306#4056) boardsarch/sim: AddFix smartfsbt profileand exampleaudio simulation 

###stop New Features

### Bug Fixes

## Documentation

### New Featureswork in SMP mode  
 * [#3970#4045](https://github.com/apache/incubator-nuttx/pull/#3970#4045) libcsim/smp: fix Implementsmp fesetround & fegetround for arm 

### Improvements

### Driver Supportcan't start, caused by signal too busy  
 * [#3842#4015](https://github.com/apache/incubator-nuttx/pull/#3842#4015) Addedmodify automaticsim logclock rotation,to whenPC logabs filetime is opened.
 * [#3837#3983](https://github.com/apache/incubator-nuttx/pull/#3837#3983) SYSLOG channel add functions return handle to the channel. arch/sim: Implement mm_mallinfo and malloc_size for the custom heap  
 * [#3848#4459](https://github.com/apache/incubator-nuttx/pull/#3848#4459) Syslogsim: file rotations number is configurable.Inhibit stack protector on stack coloration function  
 * [#3808#3721](https://github.com/apache/incubator-nuttx/pull/#3808#3721) Ramlogsim/rptun: recover last crash log from ram buffer.support multi(>2) core interactive by share memory  
 * [#4641#4306](https://github.com/apache/incubator-nuttx/pull/#4641#4306) drivers/mtd/m25px.cboards/sim: addAdd supportsmartfs forprofile MT25Q256example SPI NOR

### New Features

### Bug Fixes

## Documentation

### New DriverFeatures Support 
 * [#3727#3970](https://github.com/apache/incubator-nuttx/pull/#3727#3970) Add basic support for MCP23017 I/O Expander  libc: Implement fesetround & fegetround for arm 

### Improvements

### Driver Support
 * [#3859#3842](https://github.com/apache/incubator-nuttx/pull/#3859#3842) Added Addautomatic Holteklog HT16K33 14-segment display driver  

## Board Support

### New Board Support

### Boards With Significant Improvements

#### ARM 
 
#### CXD56
 * [#3833rotation, when log file is opened.
 * [#3837](https://github.com/apache/incubator-nuttx/pull/#3833#3837) Spresense new memorymapSYSLOG channel add functions return handle to the channel.
 * [#4526#3848](https://github.com/apache/incubator-nuttx/pull/#4526#3848) Rearch video  Syslog file rotations number is configurable.
 * [#3973#3808](https://github.com/apache/incubator-nuttx/pull/#3973#3808) boardsRamlog: spresense:recover Updatelast rndiscrash andlog rndis_smpfrom forram workaroundbuffer.  
 * [#3744#4614](https://github.com/apache/incubator-nuttx/pull/#3744#4614) boardsinput/touch: add cxd56xx:io Updatecommand driversfor ontouch spresensefirmware boardversion  

####### IMX6Bug Fixes

### New Driver Support 
 * [#3733#3727](https://github.com/apache/incubator-nuttx/pull/#3733#3727) imx6Add elfbasic support #3733for  

#### IMXRT MCP23017 I/O Expander 
 * [#3982#3859](https://github.com/apache/incubator-nuttx/pull/#3982#3859) boards/arm/imxrt/teensy-4.x: added board level support for GPIO driverAdd Holtek HT16K33 14-segment display driver  
 * [#3929#4641](https://github.com/apache/incubator-nuttx/pull/#3929#4641) Added encoderdrivers/mtd/m25px.c: add support for Teensy 4.x MT25Q256 SPI NOR  
 * [#3980#4606](https://github.com/apache/incubator-nuttx/pull/#3980#4606) FlexPWMAdd support for iMXRTMT25Q1G MCUSPI NOR  
 * [#4581](https://github.com/apache/incubator-nuttx/pull/#4581) Fixed imxrt flexcan driver compilation error (incorrect variable scope)  

#### LPC17XX_40XX

#### NRF52

#### RP2040 

## Board Support

### New Board Support

### Boards With Significant Improvements

#### ARM 
 
#### CXD56
 * [#3917#3833](https://github.com/apache/incubator-nuttx/pull/#3917#3833) arm/rp2040:USB device controller support   Spresense new memorymap
 * [#3857#4526](https://github.com/apache/incubator-nuttx/pull/#3857#4526) boards: rp2040: Add user gpio driverRearch video  
 * [#3996#3973](https://github.com/apache/incubator-nuttx/pull/#3996#3973) Support for Waveshare Pico-LCD-1.x module
  
#### S32K1XXboards: spresense: Update rndis and rndis_smp for workaround  
 * [#4643#3744](https://github.com/apache/incubator-nuttx/pull/#4643#3744) S32K1xxboards: archcxd56xx: AddUpdate (optional)drivers supporton for SPI native/hardware chip select spresense board  

#### IMX6 
 * [#4634#3733](https://github.com/apache/incubator-nuttx/pull/#4634#3733) S32K1XXimx6 arch:elf gpioreadsupport may#3733 also be used for output pins  

#### IMXRT  
 * [#4592#3982](https://github.com/apache/incubator-nuttx/pull/#4592#3982) S32K1XXboards/arm/imxrt/teensy-4.x: Addadded LPI2Cboard slavelevel support for GPIO driver
 * [#4541#3929](https://github.com/apache/incubator-nuttx/pull/#4541#3929) S32K1XXAdded EVBencoder boardssupport cleanupfor & update  Teensy 4.x
 * [#4578#3980](https://github.com/apache/incubator-nuttx/pull/#4578#3980) S32K1XXEVBFlexPWM boards:support Fixfor RGB LED output and add commentsiMXRT MCU   
 * [#4533#4581](https://github.com/apache/incubator-nuttx/pull/#4533#4581) S32k1xx: added PM support  
 * [#4596Fixed imxrt flexcan driver compilation error (incorrect variable scope)  

#### LPC17XX_40XX

#### NRF52

#### RP2040 
 * [#3917](https://github.com/apache/incubator-nuttx/pull/#4596#3917) S32K1XXarm/rp2040:USB Adddevice FlexIOcontroller registerssupport   
 * [#4508#3857](https://github.com/apache/incubator-nuttx/pull/#4508#3857) s32k1xxboards: addedrp2040: wayAdd touser get the reset cause in a proc fs  

#### SAM34gpio driver 
 * [#3732#3996](https://github.com/apache/incubator-nuttx/pull/#3732#3996) board:Support Addfor support for Adafruit Circuit Express  Waveshare Pico-LCD-1.x module
  
#### S32K1XX
 * [#3840#4643](https://github.com/apache/incubator-nuttx/pull/#3840#4643) AddS32K1xx ST7789arch: LCDAdd controller(optional) support for SAMV71SPI XPlainednative/hardware Ultra board

#### STM32chip select  
 * [#3944#4634](https://github.com/apache/incubator-nuttx/pull/#3944#4634) boards/arm/stm32/nucleo-f446re: added support for DAC driver S32K1XX arch: gpioread may also be used for output pins   
 * [#3880#4592](https://github.com/apache/incubator-nuttx/pull/#3880#4592) boards/arm/stm32/nucleo-f446reS32K1XX: addedAdd LPI2C slave support for GPIO driver
 * [#3909#4541](https://github.com/apache/incubator-nuttx/pull/#3909#4541) S32K1XX EVB Addedboards basiccleanup support& forupdate nucleo-g431kb board.
 * [#3922#4578](https://github.com/apache/incubator-nuttx/pull/#3922#4578) Adds PWM example to nucleo-g431kb board. S32K1XXEVB boards: Fix RGB LED output and add comments  
 * [#3914#4533](https://github.com/apache/incubator-nuttx/pull/#3914#4533) boardsS32k1xx: added PM support for EMW3162 Wi-Fi board
 * [#3878#4596](https://github.com/apache/incubator-nuttx/pull/#3878#4596) S32K1XX: Add FOCFlexIO supportregisters for B-G431-ESC1 board   
 * [#3637
 * [#4508](https://github.com/apache/incubator-nuttx/pull/#3637#4508) boards/arm/stm32/nucleo-f446res32k1xx: added support for PWM way to get the reset cause in a proc fs  

#### SAM34
 * [#3660#3732](https://github.com/apache/incubator-nuttx/pull/#3660#3732) stm32_pwmboard: Add improvementssupport for Adafruit PULSECOUNTCircuit supportExpress  
 * [#4505#3840](https://github.com/apache/incubator-nuttx/pull/#4505#3840) STM32Add F4,ST7789 F7,LCD H7controller USBsupport OTGfor DeviceSAMV71 EnsureXPlained EP initialized to proper state on usb reset and configure  Ultra board

#### STM32  
 * [#4589#3944](https://github.com/apache/incubator-nuttx/pull/#4589#3944) Fix stm32xx GPIO glitches from configuration bad order of operations  boards/arm/stm32/nucleo-f446re: added support for DAC driver
 * [#4085#3880](https://github.com/apache/incubator-nuttx/pull/#4085#3880) stm32,stm32f7,stm32h7boards/arm/stm32/nucleo-f446re: supportedadded ETHsupport MACfor promiscuousGPIO mode  driver
 * [#4255#3909](https://github.com/apache/incubator-nuttx/pull/#4255#3909) STM32Added DAC Driver - Add basic support tofor DAC3  nucleo-g431kb board.
 * [#3796#3922](https://github.com/apache/incubator-nuttx/pull/#3796) boards/arm/stm32/nucleo-f412zg/scripts/Make.defs: Replace EXTRADEFINES by EXTRAFLAGS#3922) Adds PWM example to nucleo-g431kb board.  
 * [#4284#3914](https://github.com/apache/incubator-nuttx/pull/#4284#3914) stm32_pmwboards: fix pwm_stop() function to enable multiple PWM start and stop  
 * [#4353added support for EMW3162 Wi-Fi board
 * [#3878](https://github.com/apache/incubator-nuttx/pull/#4353#3878) stm32/stm32_serial.c fix issue Add FOC support for B-G431-ESC1 board   
 * [#4244#3637](https://github.com/apache/incubator-nuttx/pull/#4244#3637) STM32G4boards/arm/stm32/nucleo-f446re: addadded support for CORDIC math acceleratorPWM  
 * [#4437#3660](https://github.com/apache/incubator-nuttx/pull/#4437#3660) stm32_serial.cpwm: Don'timprovements fakefor a TX interrupt when interrupts are not suppressedPULSECOUNT support  
 * [#3863#4505](https://github.com/apache/incubator-nuttx/pull/#3863#4505) boards/arm/stm32/nucleo-f446re: fixed wrong qetimer config name  

#### STM32L4  
 * [#4534] STM32 F4, F7, H7 USB OTG Device Ensure EP initialized to proper state on usb reset and configure  
 * [#4589](https://github.com/apache/incubator-nuttx/pull/#4534#4589) Fix stm32xx STM32L4GPIO LPUARTglitches supportfrom configuration 

#### STM32F4

#### STM32F7 / STM32H7 
 bad order of operations  
 * [#3646#4085](https://github.com/apache/incubator-nuttx/pull/#3646#4085) boards/stm32,stm32f7,stm32h7: Addsupported i2cETH andMAC mpu60x0promiscuous supportmode to nucleo-144 and fix bitmask bug in mpu60x0  
 * [#3650#4255](https://github.com/apache/incubator-nuttx/pull/#3650#4255) stm32{H7|F7} Disables/Enabled the use of GPIO_OTG_ID pin STM32 DAC Driver - Add support to DAC3  
 * [#3669#3796](https://github.com/apache/incubator-nuttx/pull/#3669) STM32 {F7|H7} Use 250 Ms Data path timeout, regardless of Card Clock frequency#3796) boards/arm/stm32/nucleo-f412zg/scripts/Make.defs: Replace EXTRADEFINES by EXTRAFLAGS  
 * [#3651#4284](https://github.com/apache/incubator-nuttx/pull/#3651) Use inttypes in stm32{f7|h7}, Kinetis, s32k drivers.#4284) stm32_pmw: fix pwm_stop() function to enable multiple PWM start and stop  
 * [#4524#4353](https://github.com/apache/incubator-nuttx/pull/#4524#4353) stm32*7/stm32_serial.c: Don't fake a TX interrupt when interrupts are not suppressed fix issue  
 * [#4598#4244](https://github.com/apache/incubator-nuttx/pull/#4598#4244) stm32h7:DMA_TRBUFF is DMA_SCR_TRBUFF  

#### KINETISSTM32G4: add support for CORDIC math accelerator  
 * [#4190#4437](https://github.com/apache/incubator-nuttx/pull/#4190#4437) kinetis lpserial add RX DMA  

#### RISC-V stm32_serial.c: Don't fake a TX interrupt when interrupts are not suppressed
 * [#3846#3863](https://github.com/apache/incubator-nuttx/pull/#3846#3863) risc-v/rv32m1: Basic port to rv32m1 ri5cyboards/arm/stm32/nucleo-f446re: fixed wrong qetimer config name  

#### STM32L4  
 * [#4146#4534](https://github.com/apache/incubator-nuttx/pull/#4146#4534) risc-v/bl602: add boardctl support
 * [#3911 STM32L4 LPUART support  

#### STM32F4

#### STM32F7 / STM32H7 
 * [#3646](https://github.com/apache/incubator-nuttx/pull/#3911#3646) boards/stm32f7: Add i2c and mpu60x0 driversupport to PolarFire SoCnucleo-144 and Iciclefix board
bitmask * [#3905bug in mpu60x0  
 * [#3650](https://github.com/apache/incubator-nuttx/pull/#3905#3650) Add SPI driver to PolarFire SoC and Icicle boardstm32{H7|F7} Disables/Enabled the use of GPIO_OTG_ID pin  
 * [#3933#3669](https://github.com/apache/incubator-nuttx/pull/#3933#3669) riscv/mpfs: add i2c reset handler STM32 {F7|H7} Use 250 Ms Data path timeout, regardless of Card Clock frequency 
 * [#3920#3651](https://github.com/apache/incubator-nuttx/pull/#3920#3651) add dma support for PolarFire SoC

#### BL602Use inttypes in stm32{f7|h7}, Kinetis, s32k drivers.  
 * [#4010#4524](https://github.com/apache/incubator-nuttx/pull/#4010#4524) boards/bl602: Fix uart_nx.c:419: undefined reference to `uart_bth4_register  

#### C906

#### ESP32C3stm32*7/stm32_serial.c: Don't fake a TX interrupt when interrupts are not suppressed 
 * [#3794#4598](https://github.com/apache/incubator-nuttx/pull/#3794#4598) risc-v/esp32c3: Support ESP32-C3 RTC driver  stm32h7:DMA_TRBUFF is DMA_SCR_TRBUFF  

#### KINETIS
 * [#3883#4190](https://github.com/apache/incubator-nuttx/pull/#3883#4190) risc-v/esp32c3: Support ESP32-C3 RSA accelerator  kinetis lpserial add RX DMA  

#### RISC-V 
 * [#3881#3846](https://github.com/apache/incubator-nuttx/pull/#3881#3846) risc-v/esp32c3rv32m1: SupportBasic ESP32-C3port efuseto rv32m1  ri5cy
 * [#3935#4146](https://github.com/apache/incubator-nuttx/pull/#3935#4146) risc-v/esp32c3bl602: Supportadd ESP32-C3 SHA acceleratorboardctl support
 * [#3882#3911](https://github.com/apache/incubator-nuttx/pull/#3882#3911) riscv/esp32c3: Use the RTC memory as another heap.Add i2c driver to PolarFire SoC and Icicle board
 * [#3945#3905](https://github.com/apache/incubator-nuttx/pull/#3945) boards/esp32c3: Add romfs configuration#3905) Add SPI driver to PolarFire SoC and Icicle board
 * [#3925#3933](https://github.com/apache/incubator-nuttx/pull/#3925#3933) risc-v/esp32-c3riscv/mpfs: Addsadd I2Ci2c polledreset supporthandler
 * [#3823#3920](https://github.com/apache/incubator-nuttx/pull/#3823#3920) risc-v/esp32-c3: Addadd dma support for HW flow control. PolarFire SoC

#### BL602
 * [#3822#4010](https://github.com/apache/incubator-nuttx/pull/#3822) ESP32-C3: Add DMA support for SPI Slave
 * [#3543#4010) boards/bl602: Fix uart_nx.c:419: undefined reference to `uart_bth4_register  

#### C906

#### ESP32C3
 * [#3794](https://github.com/apache/incubator-nuttx/pull/#3543#3794) feat(esp32c3)risc-v/esp32c3: Support esp32c3 ble functionESP32-C3 RTC driver  
 * [#3667#3883](https://github.com/apache/incubator-nuttx/pull/#3667#3883) risc-v/esp32c3: AddSupport ESP32-C3 (G)DMA driver and testing  RSA accelerator  
 * [#4605#3881](https://github.com/apache/incubator-nuttx/pull/#4605#3881) risc-v/esp32-c3esp32c3: improvementsSupport andESP32-C3 fixefuse to esp32c3_rt_timer.c  
 * [#4611#3935](https://github.com/apache/incubator-nuttx/pull/#4611#3935) ESP32risc-C3v/esp32c3: AddSupport supportESP32-C3 for booting NuttX from MCUboot  SHA accelerator
 * [#3656#3882](https://github.com/apache/incubator-nuttx/pull/#3656#3882) risc-v/esp32-c3: Adds freerun wrapper riscv/esp32c3: Use the RTC memory as another heap.
 * [#4574#3945](https://github.com/apache/incubator-nuttx/pull/#4574#3945) boards/esp32c3-devkit: Add board profile to use LVGL on GC9A01 display  romfs configuration
 * [#3810#3925](https://github.com/apache/incubator-nuttx/pull/#3810#3925) risc-v/esp32c3esp32-c3: FixAdds overwritingI2C of registered-but-disabled interrupts  polled support
 * [#3797#3823](https://github.com/apache/incubator-nuttx/pull/#3797#3823) ESP32-C3risc-v/esp32-c3: Add SPIsupport Slavefor peripheralHW driverflow control. 
 * [#4568#3822](https://github.com/apache/incubator-nuttx/pull/#4568#3822) boards/esp32c3ESP32-C3: addAdd ESP32C3DMA LCDsupport driversfor SPI Slave
 * [#4553#3543](https://github.com/apache/incubator-nuttx/pull/#4553#3543) risc-v/esp32c3feat(esp32c3): fixSupport pwmesp32c3 driverble bug function 
 * [#4500#3667](https://github.com/apache/incubator-nuttx/pull/#4500#3667) risc-v/esp32-c3esp32c3: refactorAdd the Wi-Fi board logic. ESP32-C3 (G)DMA driver and testing  
 * [#3679#4605](https://github.com/apache/incubator-nuttx/pull/#3679#4605) risc-v/esp32c3esp32-c3: Supportimprovements ESP32-C3and PMfix standby and sleepto esp32c3_rt_timer.c  
 * [#3766#4611](https://github.com/apache/incubator-nuttx/pull/#3766#4611) riscv/esp32c3ESP32-C3: Add ESP32-C3 AES driversupport for booting NuttX from MCUboot  
 * [#3750#3656](https://github.com/apache/incubator-nuttx/pull/#3750#3656) riscv/esp32c3risc-v/esp32-c3: SupportAdds SPIfreerun Flash encryption read/write  wrapper 
 * [#3735#4574](https://github.com/apache/incubator-nuttx/pull/#3735#4574) riscv/esp32c3-devkit: Add ESP32-C3 ADC driverboard profile to use LVGL on GC9A01 display  
 * [#3715#3810](https://github.com/apache/incubator-nuttx/pull/#3715#3810) risc-v/esp32c3: Fix overwriting Supportof ESP32registered-but-C3disabled auto-sleepinterrupts  
 * [#4239#3797](https://github.com/apache/incubator-nuttx/pull/#4239#3797) risc-v/esp32-c3: Adds systimer support and make rt_timer rely on it  ESP32-C3: Add SPI Slave peripheral driver  
 * [#3694#4568](https://github.com/apache/incubator-nuttx/pull/#3694#4568) risc-vboards/esp32c3: Addadd supportESP32C3 forLCD DMAdrivers transfers on SPI driver  
 * [#3697#4553](https://github.com/apache/incubator-nuttx/pull/#3697#4553) riscvrisc-v/esp32c3: Fixfix RTpwm timerdriver issuesbug  
 * [#3906#4500](https://github.com/apache/incubator-nuttx/pull/#3906#4500) risc-v/esp32c3_wifi_adapter.cesp32-c3: Removerefactor athe config that's only used in Xtensa chipsWi-Fi board logic.   
 * [#3701#3679](https://github.com/apache/incubator-nuttx/pull/#3701#3679) riscvrisc-v/esp32c3: Add ESP32C3 LEDC(PWM) driver Support ESP32-C3 PM standby and sleep  
 * [#3854#3766](https://github.com/apache/incubator-nuttx/pull/#3854#3766) ESP32-C3riscv/esp32c3: SmallAdd cleanESP32-C3 upAES on IRQdriver functions  
 * [#4006#3750](https://github.com/apache/incubator-nuttx/pull/#4006#3750) risc-vriscv/esp32c3: NotifiesSupport networkingSPI layerFlash whetherencryption the carrier is available  read/write  
 * [#3788#3735](https://github.com/apache/incubator-nuttx/pull/#3788#3735) riscv/esp32c3: Add ESP32-C3: Fix configuration of TX Burst support for GDMA  ADC driver  
 * [#4040#3715](https://github.com/apache/incubator-nuttx/pull/#4040#3715) risc-v/esp32c3: Fix someSupport ESP32-C3 BLE driver issuesauto-sleep  
 * [#4082#4239](https://github.com/apache/incubator-nuttx/pull/#4082#4239) boardsrisc-v/esp32c3esp32-devkitc3: Support mounting SPI Flash MTD to littleFSAdds systimer support and make rt_timer rely on it  
 * [#4075#3694](https://github.com/apache/incubator-nuttx/pull/#4075#3694) risc-v/esp32c3: Add board_ioctlsupport and board_uniqueidfor DMA transfers on SPI driver  
 * [#4092#3697](https://github.com/apache/incubator-nuttx/pull/#4092#3697) risc-vriscv/esp32c3: UseFix onexitRT to free thread private semaphoretimer issues  
 * [#3971#3906](https://github.com/apache/incubator-nuttx/pull/#3971#3906) boards/riscvrisc-v/esp32c3_wifi_adapter.c: RenameRemove the iram_0_2 segment to irom_0_0 to avoid confusions.a config that's only used in Xtensa chips.   
 * [#4141#3701](https://github.com/apache/incubator-nuttx/pull/#4141#3701) risc-v/esp32-c3riscv/esp32c3: UseAdd systimer 0 to RTOS TICKESP32C3 LEDC(PWM) driver  
 * [#3793#3854](https://github.com/apache/incubator-nuttx/pull/#3793#3854) esp32&esp32c3/wifiESP32-C3: SupportSmall specificclean channelup andon bssidIRQ scanfunctions  
 * [#4162#4006](https://github.com/apache/incubator-nuttx/pull/#4162#4006) risc-v/esp32c3: Fix some ESP32-C3 Wi-Fi driver issuesNotifies networking layer whether the carrier is available  
 * [#4169#3788](https://github.com/apache/incubator-nuttx/pull/#4169#3788) risc-v/esp32-c3ESP32-C3: MakesFix configuration outputof readableTX andBurst rmvsupport unnecessaryfor var.GDMA  
 * [#4314#4040](https://github.com/apache/incubator-nuttx/pull/#4314#4040) risc-v/esp32-c3esp32c3: CompleteFix thesome supportESP32-C3 forBLE RWDTdriver issues 

#### XTENSA 
 * [#4590#4082](https://github.com/apache/incubator-nuttx/pull/#4590#4082) [Xtensaboards/RISCesp32c3-V]devkit: RemoveSupport FARmounting andSPI CODEFlash qualifiersMTD from arch-specific filesto littleFS  
 * [#4187#4075](https://github.com/apache/incubator-nuttx/pull/#4187) Fix xtensa_btdump() to look at the exception frame  #4075) risc-v/esp32c3: Add board_ioctl and board_uniqueid  
 * [#4556#4092](https://github.com/apache/incubator-nuttx/pull/#4556#4092) xtensa:backtrace: flushrisc-v/esp32c3: Use onexit to stackfree whenthread inprivate interruptsemaphore  
 * [#3939#3971](https://github.com/apache/incubator-nuttx/pull/#3939) Fix xtensa#3971) boards/riscv/esp32c3: Rename the iram_0_2 segment to irom_0_0 to avoid confusions.  
 * [#4531#4141](https://github.com/apache/incubator-nuttx/pull/#4531#4141) xtensa/irq.hrisc-v/esp32-c3: FixesUse thesystimer routine0 thatto clearsRTOS theTICK processor interrupt  
 * [#4278#3793](https://github.com/apache/incubator-nuttx/pull/#4278#3793) xtensaesp32&esp32c3/commonwifi: saveSupport spspecific beforechannel overwritingand in level2/3/4 handler and typo fix  
 bssid scan  
 * [#4311#4162](https://github.com/apache/incubator-nuttx/pull/#4311#4162) xtensa:coprocrisc-v/esp32c3: fix XTENSA_CP_ALLSET error in some case Fix some ESP32-C3 Wi-Fi driver issues 
 * [#3768#4169](https://github.com/apache/incubator-nuttx/pull/#3768#4169) xtensarisc-v/esp32-c3: FixesMakes namesoutput ofreadable architectureand serialrmv functionsunnecessary var. 

#### ESP32
 * [#3940#4314](https://github.com/apache/incubator-nuttx/pull/#3940#4314) xtensarisc-v/esp32-c3: Support ESP32 RTC driver Complete the support for RWDT  

#### XTENSA 
 * [#4003#4590](https://github.com/apache/incubator-nuttx/pull/#4003#4590) xtensa/esp32: Adds support for SERIAL_TXDMA.
 * [#3912[Xtensa/RISC-V] Remove FAR and CODE qualifiers from arch-specific files  
 * [#4187](https://github.com/apache/incubator-nuttx/pull/#3912#4187) Fix xtensa/esp32: Adds I2C polled support._btdump() to look at the exception frame  
 * [#3803#4556](https://github.com/apache/incubator-nuttx/pull/#3803#4556) Add supportxtensa:backtrace: flush to ESP32-S2 and ESP32S2-SAOLA-1 Boardstack when in interrupt  
 * [#3824#3939](https://github.com/apache/incubator-nuttx/pull/#3824#3939) xtensa/esp32-s2: Add support for serial HW flow control.Fix xtensa  
 * [#4604#4531](https://github.com/apache/incubator-nuttx/pull/#4604#4531) xtensa/esp32irq.h: EnableFixes buildthe systemroutine tothat downloadclears orthe build binaries from sourceprocessor interrupt  
 * [#3642#4278](https://github.com/apache/incubator-nuttx/pull/#3642#4278) xtensa/esp32common: severalsave uartsp fixes
before * [#3648](https://github.com/apache/incubator-nuttx/pull/#3648) tools/esp32/mk_qemu_img.sh: Refactor the dd commands.overwriting in level2/3/4 handler and typo fix  
 * [#4625#4311](https://github.com/apache/incubator-nuttx/pull/#4625#4311) esp32-c3/esp32-s2xtensa:coproc: Fix the sequence of commands to set the alarm value on rt timer.  fix XTENSA_CP_ALLSET error in some case  
 * [#4610#3768](https://github.com/apache/incubator-nuttx/pull/#4610#3768) ESP32-S2xtensa: AddFixes supportnames forof bootingarchitecture NuttXserial fromfunctions MCUboot 

#### ESP32
 * [#3678#3940](https://github.com/apache/incubator-nuttx/pull/#3678#3940) xtensa/esp32: Support auto-sleepESP32 RTC driver
 * [#4532#4003](https://github.com/apache/incubator-nuttx/pull/#4532#4003) boards/esp32s2-saola-1xtensa/esp32: AddAdds implementationsupport for BOARDIOC_RESET interface  SERIAL_TXDMA.
 * [#4275#3912](https://github.com/apache/incubator-nuttx/pull/#4275#3912) xtensa/esp32: KeepAdds trackI2C of the CPU where the interrupt was attached.  polled support.
 * [#4295#3803](https://github.com/apache/incubator-nuttx/pull/#4295#3803) xtensa/esp32: Enable boot from Espressif's port of MCUboot  Add support to ESP32-S2 and ESP32S2-SAOLA-1 Board
 * [#4315#3824](https://github.com/apache/incubator-nuttx/pull/#4315#3824) xtensa/esp32-s2: Add Fixsupport issuesfor onserial RWDTHW flow control.
 * [#4366#4604](https://github.com/apache/incubator-nuttx/pull/#4366#4604) xtensa/esp32: Enable Usebuild IRQsystem to enable/disable interrupts download or build binaries from source  
 * [#4427#3642](https://github.com/apache/incubator-nuttx/pull/#4427#3642) esp32/ttgo_lora_esp32: Add support to SSD1306 OLED display  xtensa/esp32: several uart fixes
 * [#4388#3648](https://github.com/apache/incubator-nuttx/pull/#4388#3648) tools/esp32/mk_qemu_img.sh: Re-organizeRefactor the interrupt handling process to correctly handle the SMP case  dd commands.  
 * [#4401#4625](https://github.com/apache/incubator-nuttx/pull/#4401#4625) xtensaesp32-c3/esp32-s2: Adds supportFix the sequence of commands to set the alarm value on rt timer driver.  
 * [#4545#4610](https://github.com/apache/incubator-nuttx/pull/#4545#4610) esp32ESP32-wroverS2: Add support tofor LCD1602booting withNuttX I2Cfrom BackpackMCUboot  
 * [#4587#3678](https://github.com/apache/incubator-nuttx/pull/#4587#3678) xtensa/esp32-s2: Adds freerun timer wrapperSupport auto-sleep  
 * [#4139#4532](https://github.com/apache/incubator-nuttx/pull/#4139#4532) xtensa/esp32: Fixes termios issue.boards/esp32s2-saola-1: Add implementation for BOARDIOC_RESET interface  
 * [#4586#4275](https://github.com/apache/incubator-nuttx/pull/#4586#4275) xtensa/esp32-s2: Adds oneshot device driver support: Keep track of the CPU where the interrupt was attached.  
 * [#4570#4295](https://github.com/apache/incubator-nuttx/pull/#4570#4295) xtensa/esp32_spiflash.c: Enable Correctlyboot disablefrom APPEspressif's port of CPUMCUboot cache. 
 * [#4509#4315](https://github.com/apache/incubator-nuttx/pull/#4509#4315) xtensa/esp32: AddFix initialissues supporton to Bluetooth Low Energy RWDT  
 * [#4411#4366](https://github.com/apache/incubator-nuttx/pull/#4411#4366) xtensa/esp32/softap: Enable the WPA2 by defaultUse IRQ to ask user password enable/disable interrupts 
 * [#4412#4427](https://github.com/apache/incubator-nuttx/pull/#4412#4427) boardsesp32/ttgo_lora_esp32: Add basic support to TTGO-LoRa-SX1276-ESP32 SSD1306 OLED display  
 * [#4585#4388](https://github.com/apache/incubator-nuttx/pull/#4585#4388) xtensa/esp32-s2: Adds support: Re-organize the interrupt handling process to rt_timercorrectly andhandle systimerthe to ESP32-S2.SMP case  
 * [#4170#4401](https://github.com/apache/incubator-nuttx/pull/#4170#4401) xtensa/esp32-s2: MakeAdds outputsupport readableto andthe rmv unnecessary var.timer driver  
 * [#4195#4545](https://github.com/apache/incubator-nuttx/pull/#4195#4545) esp32_allocateheap.c-wrover: Remove the amount reservedAdd support to himemLCD1602 fromwith theI2C heap.Backpack  
 * [#4232#4587](https://github.com/apache/incubator-nuttx/pull/#4232#4587) xtensa/esp32-s2: EnableAdds configurationfreerun of GPIO pad's drive strengthtimer wrapper  
 * [#4240#4139](https://github.com/apache/incubator-nuttx/pull/#4240#4139) xtensa/esp32: exposeFixes SPI2 as a char drivertermios issue.  
 * [#4253#4586](https://github.com/apache/incubator-nuttx/pull/#4253#4586) xtensa/esp32-s2: EnableAdds theoneshot allocationdevice ofdriver multiplesupport SPI Flash partitions  
 * [#4338#4570](https://github.com/apache/incubator-nuttx/pull/#4338#4570) tools/esp32/Config_spiflash.mkc: AllowCorrectly ESPTOOL_BINDIR to be omitted when flashing the board disable APP's CPU cache. 
 * [#3938#4509](https://github.com/apache/incubator-nuttx/pull/#3938#4509) esp32&esp32c3/wifi: FixAdd theinitial issuessupport ofto Wi-FiBluetooth configurationLow being overwrittenEnergy  
 * [#3969#4411](https://github.com/apache/incubator-nuttx/pull/#3969#4411) boardsesp32/esp32softap: RefactorEnable the differentWPA2 linkerby scriptsdefault andto deleteask old OpenOCD config files.user password  
 * [#3975#4412](https://github.com/apache/incubator-nuttx/pull/#3975#4412) xtensaboards/esp32: FixAdd RTCbasic WDTsupport deinitialization on start routine to TTGO-LoRa-SX1276-ESP32  
 * [#3987#4585](https://github.com/apache/incubator-nuttx/pull/#3987#4585) toolsxtensa/esp32/backtrace.gdbscript: don't modify registers-s2: Adds support to rt_timer and systimer to ESP32-S2.  
 * [#4001#4170](https://github.com/apache/incubator-nuttx/pull/#4001#4170) xtensa/esp32: SupportMake tooutput selectreadable differentand clockrmv source for RTC controller and close TODOsunnecessary var.  
 * [#4073#4195](https://github.com/apache/incubator-nuttx/pull/#4073#4195) xtensa/esp32_allocateheap.c: Fix uart 2 issue Remove the amount reserved to himem from the heap.  
 * [#3800#4232](https://github.com/apache/incubator-nuttx/pull/#3800#4232) arch/xtensa/esp32_emac.c: Call phy_enable_interrupt correctly.: Enable configuration of GPIO pad's drive strength  
 * [#4157#4240](https://github.com/apache/incubator-nuttx/pull/#4157#4240) boardsxtensa/esp32: Refactorexpose theSPI2 linkeras scriptsa intochar thedriver common directory.  
 * [#4249#4253](https://github.com/apache/incubator-nuttx/pull/#4249#4253) xtensa/esp32-s2: Enable the Addsallocation GPIOof boardmultiple logicSPI to esp32s2-saola-1.Flash partitions  
 * [#4471#4338](https://github.com/apache/incubator-nuttx/pull/#4471#4338) xtensatools/esp32/Config.mk: Wi-Fi board logic refactoring.  Allow ESPTOOL_BINDIR to be omitted when flashing the board 
 * [#4497#3938](https://github.com/apache/incubator-nuttx/pull/#4497#3938) esp32_serial.c&esp32c3/wifi: Don'tFix fakethe anissues interruptof whenWi-Fi interruptsconfiguration are not suppressed.being overwritten  
 * [#3829#3969](https://github.com/apache/incubator-nuttx/pull/#3829#3969) xtensaboards/esp32: FixesRefactor supportthe fordifferent UARTlinker HW flow controlscripts and delete old OpenOCD config files.  
 * [#3943#3975](https://github.com/apache/incubator-nuttx/pull/#3943#3975) xtensa/esp32: Adds I2C Bit banging resetFix RTC WDT deinitialization on start routine  
 * [#3960#3987](https://github.com/apache/incubator-nuttx/pull/#3960#3987) xtensatools/esp32/backtrace.gdbscript: Refactor the text heap and add RTC memory to it  

#### TIVA

### **Minor Board Changes**

#### ARM  

#### CXD56  

#### Xtensa

## File System

### Bug Fixes

### Significant Improvements

## Networking

### Improvements

### Bug Fixes
don't modify registers  
 * [#4001](https://github.com/apache/incubator-nuttx/pull/#4001) xtensa/esp32: Support to select different clock source for RTC controller and close TODOs.  
 * [#4073](https://github.com/apache/incubator-nuttx/pull/#4073) xtensa/esp32: Fix uart 2 issue.  
 * [#3800](https://github.com/apache/incubator-nuttx/pull/#3800) arch/xtensa/esp32_emac.c: Call phy_enable_interrupt correctly.  
 * [#4157](https://github.com/apache/incubator-nuttx/pull/#4157) boards/esp32: Refactor the linker scripts into the common directory.  
 * [#4249](https://github.com/apache/incubator-nuttx/pull/#4249) xtensa/esp32-s2: Adds GPIO board logic to esp32s2-saola-1.  
 * [#4471](https://github.com/apache/incubator-nuttx/pull/#4471) xtensa/esp32: Wi-Fi board logic refactoring.  
 * [#4497](https://github.com/apache/incubator-nuttx/pull/#4497) esp32_serial.c: Don't fake an interrupt when interrupts are not suppressed.  
 * [#3829](https://github.com/apache/incubator-nuttx/pull/#3829) xtensa/esp32: Fixes support for UART HW flow control  
 * [#3943](https://github.com/apache/incubator-nuttx/pull/#3943) xtensa/esp32: Adds I2C Bit banging reset  
 * [#3960](https://github.com/apache/incubator-nuttx/pull/#3960) xtensa/esp32: Refactor the text heap and add RTC memory to it  

#### TIVA

### **Minor Board Changes**

#### ARM  

#### CXD56  

#### Xtensa

## File System

### Bug Fixes

### Significant Improvements

## Networking

### Improvements 
 * [#4538](https://github.com/apache/incubator-nuttx/pull/#4538) sys/socket/scm: add more socket message control helper 
 * [#4080](https://github.com/apache/incubator-nuttx/pull/#4080) net/socket: add SO_SNDBUF support 
 * [#4116](https://github.com/apache/incubator-nuttx/pull/#4116) net: Add file_socket function 
 * [#4135](https://github.com/apache/incubator-nuttx/pull/#4135) net/rpmsg: add multi-iov support  
 * [#4179](https://github.com/apache/incubator-nuttx/pull/#4179) Update socket rpmsg  
 * [#4355](https://github.com/apache/incubator-nuttx/pull/#4355) net/rpmsg: add nonblock connect(2) support  
 * [#4356](https://github.com/apache/incubator-nuttx/pull/#4356) net/local: add nonblock connect(2) support  
 * [#4357](https://github.com/apache/incubator-nuttx/pull/#4357) net/tcp: add nonblock connect(2) support  
 * [#4070](https://github.com/apache/incubator-nuttx/pull/#4070) net/tcp: add window scale support  
 * [#3926](https://github.com/apache/incubator-nuttx/pull/#3926) net/inet: add support of FIONREAD  
 * [#3896](https://github.com/apache/incubator-nuttx/pull/#3896) net/local: add local_nextconn() helper  
 * [#3961](https://github.com/apache/incubator-nuttx/pull/#3961) net: Add if_nameindex and if_freenameindex API  
 * [#4069](https://github.com/apache/incubator-nuttx/pull/#4069) net/socket: add SO_RCVBUF support  
 * [#4071](https://github.com/apache/incubator-nuttx/pull/#4071) net/local: add AF_[UNIX|LOCAL] socketpair support  
 * [#4540](https://github.com/apache/incubator-nuttx/pull/#4540) net/local: add FIONSPACE support  
 * [#4593](https://github.com/apache/incubator-nuttx/pull/#4593) net/local: add socket message control support  

### Bug Fixes
 * [#4602](https://github.com/apache/incubator-nuttx/pull/#4602) net/dup: only start tcp monitor on INET domain  
 * [#4649](https://github.com/apache/incubator-nuttx/pull/#4649) net: always compile listen.c and accept.c when enable CONFIG_NET  
 * [#4603](https://github.com/apache/incubator-nuttx/pull/#4603) [SECURITY]net/tcp: sanity check for the listen address  
 * [#4579](https://github.com/apache/incubator-nuttx/pull/#4579) net/devif/devif_callback.c: made the connection event list doubly linked  
 * [#4433](https://github.com/apache/incubator-nuttx/pull/#4433) net/devif/devif_callback.c: corrected the connection event list to work as FIFO instead of LIFO  
 * [#3776](https://github.com/apache/incubator-nuttx/pull/#3776) net/dev: link the net device as order of registration  
 * [#3758](https://github.com/apache/incubator-nuttx/pull/#3758) net/tcp/retransmit: recounter the ack counter during obtain newdata  
 * [#3723](https://github.com/apache/incubator-nuttx/pull/#3723) net: Forward socket option only when the socket type is usrsock  
 * [#4480](https://github.com/apache/incubator-nuttx/pull/#4480) net: utils: Remove critical section for SMP in net_lock.c  
 * [#3707](https://github.com/apache/incubator-nuttx/pull/#3707) Fix NFS over TCP  
 * [#3818](https://github.com/apache/incubator-nuttx/pull/#3818) tcp: recv window update improvement  
 * [#3655](https://github.com/apache/incubator-nuttx/pull/#3655) Attempt to fix race condition reported in issue #3647  
 * [#3865](https://github.com/apache/incubator-nuttx/pull/#3865) Fix tcp seq wrap around issues  
 * [#3889](https://github.com/apache/incubator-nuttx/pull/#3889) net/dns:fix unaligned access in dns query  
 * [#3894](https://github.com/apache/incubator-nuttx/pull/#3894) net/telnet: fix a potential busyloop if rxbuffer writes faster than read  
 * [#3934](https://github.com/apache/incubator-nuttx/pull/#3934) net/local: Remove all HAVE_LOCAL_POLL reference  
 * [#3755](https://github.com/apache/incubator-nuttx/pull/#3755) net/icmp: icmp bug fix and enhancement  
 * [#3993](https://github.com/apache/incubator-nuttx/pull/#3993) tcp_reset: Don't copy the peer window  
 * [#3994](https://github.com/apache/incubator-nuttx/pull/#3994) tcp: always responds to keep-alive segments  
 * [#3995](https://github.com/apache/incubator-nuttx/pull/#3995) fix active close for CONFIG_NET_TCP_WRITE_BUFFERS  
 * [#3999](https://github.com/apache/incubator-nuttx/pull/#3999) some follow-up patches for the recent tcp readahead  
 * [#4017](https://github.com/apache/incubator-nuttx/pull/#4017) rpmsg_socket: fix rpmsg_socket_device_destroy() multi-access  
 * [#4022](https://github.com/apache/incubator-nuttx/pull/#4022) tcp_close: Fix a race with passive close  
 * [#3966](https://github.com/apache/incubator-nuttx/pull/#3966) net: Fix: left shift of 1 by 31 places cannot be represented in type long int  
 * [#3948](https://github.com/apache/incubator-nuttx/pull/#3948) TCP: simplify readahead  
 * [#3114](https://github.com/apache/incubator-nuttx/pull/#3114) usrsock/recv: guarantee all data is received before close  
 * [#3756](https://github.com/apache/incubator-nuttx/pull/#3756) net/tcp: set/get TCP_KEEPINTVL/IDLE value as BSD style  
 * [#3895](https://github.com/apache/incubator-nuttx/pull/#3895) net/accept: alloc the accept fd after accept success  
 * [#3937](https://github.com/apache/incubator-nuttx/pull/#3937) dns_recv_response: Fix IPv6 address in an ninfo()  
 * [#4408](https://github.com/apache/incubator-nuttx/pull/#4408) Fix up that local socket will be endless loop when write data size more than the fifo size.  
 * [#4517](https://github.com/apache/incubator-nuttx/pull/#4517) rpmsg_socket: add prefix "rpmsg-socket" for the name of rpmsg endpoint  
 * [#4537](https://github.com/apache/incubator-nuttx/pull/#4537) net/udp: fix buffer release handling on failed buffer alloc  
 * [#4120](https://github.com/apache/incubator-nuttx/pull/#4120) net/tcp: tcp_sendfile need restore the file location at the end  
 * [#4134](https://github.com/apache/incubator-nuttx/pull/#4134) net/tcp: only print the error when disable the TCP_NODELAY  
 * [#4142](https://github.com/apache/incubator-nuttx/pull/#4142) tcp_send_buffered: throttle IOB allocations for send  
 * [#4159](https://github.com/apache/incubator-nuttx/pull/#4159) tcp_send_buffered.c: Fix broken retransmit  
 * [#4126](https://github.com/apache/incubator-nuttx/pull/#4126) include/netinet: Add missing IP_TTL definition  
 * [#4197](https://github.com/apache/incubator-nuttx/pull/#4197) local/stream: remove preamble header in stream mode  
 * [#4273](https://github.com/apache/incubator-nuttx/pull/#4273) tcp: some fixes in snd_wnd processing  
 * [#4293](https://github.com/apache/incubator-nuttx/pull/#4293) tcp: make our sequence number a bit more monotonic  
         
# Security Issues Fixed In This Release

# Compatibility Concerns

## Changes to Kconfig

The names of some Kconfig settings have been changed to improve the naming consistency. Here is the list:

| Old                | New                 |
|:------------------:| -----------------:  |
|LIB_BOARDCTL        |BOARDCTL             |
|LIB_CRC64_FAST      |LIBC_CRC64_FAST      |
|LIB_ENVPATH         |LIBC_ENVPATH         |
|LIB_HEX2BIN         |LIBC_HEX2BIN         |
|LIB_HOMEDIR         |LIBC_HOMEDIR         |
|LIB_HOSTNAME        |LIBC_HOSTNAME        |
|LIB_KBDCODEC        |LIBC_KBDCODEC        |
|LIB_RAND_ORDER      |LIBC_RAND_ORDER      |
|LIB_SLCDCODEC       |LIBC_SLCDCODEC       |
|LIB_USRWORK         |LIBC_USRWORK         |
|LIB_USRWORKPRIORITY |LIBC_USRWORKPRIORITY |
|LIB_USRWORKSTACKSIZE|LIBC_USRWORKSTACKSIZE|
|LIB_ZONEINFO        |LIBC_ZONEINFO        |
|LIB_ZONEINFO_ROMFS  |LIBC_ZONEINFO_ROMFS  |

When they appear in code, these identifiers begin with a `CONFIG_*` prefix (e.g., `CONFIG_LIB_BOARDCTL` is renamed to `CONFIG_BOARDCTL`).

All in-tree boards have been updated, but users who maintain their own out-of-tree boards will have to update all instances of these identifiers.

See PR-4266 https://github.com/apache/incubator-nuttx/pull/4266 and PR-4267 https://github.com/apache/incubator-nuttx/pull/4267 in the main NuttX repository.

See also PR-820 https://github.com/apache/incubator-nuttx-apps/pull/820 and PR-821 https://github.com/apache/incubator-nuttx-apps/pull/821 in the NuttX apps repository.

## Changes to MTD subsystem

MTDIOC_XIPBASE, MTDIOC_FLUSH and MTDIOC_PARTINFO is removed and replace with BIOC_XIPBASE, BIOC_FLUSH and BIOC_PARTINFO:

* Simplify the general driver(e.g. partition, flt) implementation
* Reduce the confusion with the same IOCTL in the different layer

See PR-4325 https://github.com/apache/incubator-nuttx/pull/4325

## Changes to Build System

### LD Now Called Through GCC

When building NuttX with GCC toolchains, the linker is now called through $(CROSSDEV)gcc rather than $(CROSSDEV)ld. This requires all linker options to be prefixed with `-Wl,` (dash, capital W, lower-case L, comma). All boards in the NuttX tree have been updated, but any custom out-of-tree boards will need to apply this change in the relevant parts of their build scripts.

The reason for this change is that GNU Binutils 2.36.x has added new error checking on command line arguments. This has had the effect that the NuttX build suddenly broke on host OS distributions that updated to the 2.36.x release line. Reports included Arch, Manjaro, and Ubuntu. Other host OSes are likely to be affected as well.

#### Symptoms

Your toolchain and board are affected if you see errors from LD like:

```
arm-none-eabi-ld: Error: unable to disambiguate: -nostartfiles (did you mean --nostartfiles ?)
```

or (following this change in NuttX) errors from GCC like:

```
arm-none-eabi-gcc: error: unrecognized command line option '--gc-sections'; did you mean '--data-sections'?
```

#### What to change

The most common change expected to affect most boards:

Change:

```
NXFLATLDFLAGS1 = -r -d -warn-common
NXFLATLDFLAGS2 = $(NXFLATLDFLAGS1) -T$(TOPDIR)/binfmt/libnxflat/gnu-nxflat-pcrel.ld -no-check-sections
```

to:

```
NXFLATLDFLAGS1 = -r -Wl,-d -Wl,-warn-common
NXFLATLDFLAGS2 = $(NXFLATLDFLAGS1) -T$(TOPDIR)/binfmt/libnxflat/gnu-nxflat-pcrel.ld -Wl,-no-check-sections
```

If doing a kernel build, you may need changes in your board's `kernel/Makefile` like:

Change:

```
USER_LDFLAGS = --undefined=$(ENTRYPT) --entry=$(ENTRYPT) $(USER_LDSCRIPT)
```

to:

```
USER_LDFLAGS = -Wl,--undefined=$(ENTRYPT) -Wl,--entry=$(ENTRYPT) $(USER_LDSCRIPT) -nostartfiles -nodefaultlibs
```

Change:
 
```
$(Q) $(LD) -o $@ $(USER_LDFLAGS) $(USER_LIBPATHS) $(OBJS) --start-group $(USER_LDLIBS) --end-group $(USER_LIBGCC)
```

to:

```
$(Q) $(LD) -o $@ $(USER_LDFLAGS) $(USER_LIBPATHS) $(OBJS) -Wl,--start-group $(USER_LDLIBS) -Wl,--end-group $(USER_LIBGCC)
```

Depending on your board's customized build scripts, you may need to look out for other `make` variables in your board's `Makefile` or `Make.defs`.

Some variables to look for:

- `ARCHSCRIPT`
- `ARCH_LIBS`
- `CCLINKFLAGS`
- `EXTRALINKCMDS`
- `LDELFFLAGS`
- `LDENDGROUP`
- `LDFLAGS`
- `LDLINKFLAGS`
- `LDMODULEFLAGS`
- `LDSTARTGROUP`
- `NXFLATLDFLAGS1`
- `NXFLATLDFLAGS2`
- `USER_LDFLAGS`

Anything that executes LD, such as:

```
$(Q) $(LD) --entry=__start $(LDFLAGS) $(LIBPATHS) $(EXTRA_LIBPATHS) \
```

Anything that processes LD flags, such as:

```
$(LIBPATHS) "-(" $(LDLIBS) "-)" $(LDFLAGS) -Map="$(TOPDIR)$(DELIM)nuttx.map"
```

In general, any command line options destined for LD must be prefixed with `-Wl,` (dash, capital W, lower-case L, comma) since they are now being passed through GCC.

#### Examples

Change:

```
EXTRALINKCMDS += @$(TOPDIR)/syscall/syscall_wraps.ldcmd
```

to:

```
EXTRALINKCMDS += -Wl,@$(TOPDIR)/syscall/syscall_wraps.ldcmd
```

Change:

```
LDFLAGS += -gc-sections
```

to:

```
LDFLAGS += -Wl,-gc-sections
```

Change:

```
$(LIBPATHS) "-(" $(LDLIBS) "-)" $(LDFLAGS) -Map="$(TOPDIR)$(DELIM)nuttx.map"
```

to:

```
$(LIBPATHS) "-(" $(LDLIBS) "-)" $(LDFLAGS) -Wl,-Map="$(TOPDIR)$(DELIM)nuttx.map"
```

Change:

```
NXFLATLDFLAGS1 = -r -d -warn-common
```

to:

```
NXFLATLDFLAGS1 = -r -Wl,-d -Wl,-warn-common
```

Change:

```
ifeq ($(CONFIG_CYGWIN_WINTOOL),y)
  LDFLAGS += -Map="${shell cygpath -w $(TOPDIR)/nuttx.map}" --cref
else
  LDFLAGS += -Map=$(TOPDIR)/nuttx.map --cref
endif
```

to:

```
ifeq ($(CONFIG_CYGWIN_WINTOOL),y)
  LDFLAGS += -Wl,-Map="${shell cygpath -w $(TOPDIR)/nuttx.map}" -Wl,--cref
else
  LDFLAGS += -Wl,-Map=$(TOPDIR)/nuttx.map -Wl,--cref
endif
```

Also, if you have assigned the LD variable, it would need to change as well:

Change:

```
LD = $(CROSSDEV)ld
```

to:

```
LD = $(CROSSDEV)gcc
```

#### References

* Git commit # 45672c269db13f59bdaa417e564837e8bbb6c8c1 in the NuttX main repository:
  - https://github.com/apache/incubator-nuttx/commit/45672c269db13f59bdaa417e564837e8bbb6c8c1
* PR-3836 in the NuttX main repository:
  - https://github.com/apache/incubator-nuttx/pull/3836
* Issues 3209 and 3826 in the NuttX issue tracker:
  - https://github.com/apache/incubator-nuttx/issues/3209
  - https://github.com/apache/incubator-nuttx/issues/3826
* Description of the change on Binutils mailing list:
  - https://sourceware.org/pipermail/binutils/2021-June/116826.html
* Description of -Wl,option in the GCC manual:
  - https://gcc.gnu.org/onlinedocs/gcc/Link-Options.html


...