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

### New Features

### Bug Fixes

## Architectural Support

### New Architecture

### Architectures with significant improvements

#### ARM
 * [#4522](https://github.com/apache/incubator-nuttx/pull/#4522) arch/arm: Add ARCH_CORTEXM55 Kconfig for cortex-m55  
 * [#3759](https://github.com/apache/incubator-nuttx/pull/#3759) arm/v7-a/fpu: add VFP-v3 D32 support    
 * [#4536](https://github.com/apache/incubator-nuttx/pull/#4536) arch/arm: correct the function name from arm_getsp() to up_getsp()  

#### CXD56XX
  * [#4557](https://github.com/apache/incubator-nuttx/pull/#4557) arch: cxd56xx: Replace the critical section with spinlock in cxd56_serial.c 

#### STM32
 * [#3761](https://github.com/apache/incubator-nuttx/pull/#3761) ET-STM32 Stamp: An STM32F103RET6 target for NuttX 
 * [#4350](https://github.com/apache/incubator-nuttx/pull/#4350) arch/arm/src/stm32l4/Kconfig: add new STM32L4+ chip types  
 * [#4310](https://github.com/apache/incubator-nuttx/pull/#4310) arch/stm32: improvements for qencoder   

#### STM32L4
 * [#3668](https://github.com/apache/incubator-nuttx/pull/#3668) arch/arm/src/stm32l4/hardware/stm32l4xrxx: pinmap alternative function for SPI2 

#### STM32L5

#### S32K1XX
 * [#3850](https://github.com/apache/incubator-nuttx/pull/#3850) UCANS32K146 add support for B revision  

#### IMX6

#### IMXRT

#### RP2040 
 * [#4049](https://github.com/apache/incubator-nuttx/pull/#4049) Raspipico smp

 
#### RTL8720C
 * [#4076](https://github.com/apache/incubator-nuttx/pull/#4076) AmebaZ2: Add soc src code 

#### NRF52

#### STM32H7/STM32F7
 * [#4331](https://github.com/apache/incubator-nuttx/pull/#4331) arch/arm/stm32h7: dma and serial: add TRBUFF flag. 

#### Renesas

#### RX65N

#### Risc-V
 * [#3770](https://github.com/apache/incubator-nuttx/pull/#3770) Add support for PolarFire SoC and icicle board

#### RV64

#### ESP32C3
 * [#3853](https://github.com/apache/incubator-nuttx/pull/#3853) arch/risc-v/esp32c3: add esp32c3_modtext to allow ELF loading  
 
#### BL602

#### Xtensa
 * [#4280](https://github.com/apache/incubator-nuttx/pull/#4280) arch:xtensa: add new GNU toolchain for xtensa.  
 * [#4478](https://github.com/apache/incubator-nuttx/pull/#4478) arch: xtensa: add xtensa cache support   
 * [#4547](https://github.com/apache/incubator-nuttx/pull/#4547) arch:xtensa: add full bactrace support 
 * [#4407](https://github.com/apache/incubator-nuttx/pull/#4407) arch/xtensa/src/common: Use irq_spin APIs in modifyregXX  

#### ESP32
 * [#4638](https://github.com/apache/incubator-nuttx/pull/#4638) esp32xx_rom.ld: Strongly declare some of the libgcc.a functions that are ROM resident  
 * [#4417](https://github.com/apache/incubator-nuttx/pull/#4417) arch/esp32: Properly handle GPIO interrupt in SMP.  
 
### Minor changes

## Simulator

### New Features

### Bug Fixes

## Documentation

### New Features  
 * [#3970](https://github.com/apache/incubator-nuttx/pull/#3970) libc: Implement fesetround & fegetround for arm 

### Improvements

### Driver Support
 * [#3842](https://github.com/apache/incubator-nuttx/pull/#3842) Added automatic log rotation, when log file is opened.
 * [#3837](https://github.com/apache/incubator-nuttx/pull/#3837) SYSLOG channel add functions return handle to the channel.
 * [#3848](https://github.com/apache/incubator-nuttx/pull/#3848) Syslog file rotations number is configurable.
 * [#3808](https://github.com/apache/incubator-nuttx/pull/#3808) Ramlog: recover last crash log from ram buffer.  
 * [#4641](https://github.com/apache/incubator-nuttx/pull/#4641) drivers/mtd/m25px.c: add support for MT25Q256 SPI NOR  

### Bug Fixes

### New Driver Support 
 * [#3727](https://github.com/apache/incubator-nuttx/pull/#3727) Add basic support for MCP23017 I/O Expander 
 * [#3859](https://github.com/apache/incubator-nuttx/pull/#3859) Add Holtek HT16K33 14-segment display driver  

## Board Support

### New Board Support

### Boards With Significant Improvements

#### ARM 
 
#### CXD56
 * [#3833](https://github.com/apache/incubator-nuttx/pull/#3833) Spresense new memorymap
 * [#4526](https://github.com/apache/incubator-nuttx/pull/#4526) Rearch video  

#### IMX6

#### IMXRT  
 * [#3982](https://github.com/apache/incubator-nuttx/pull/#3982) boards/arm/imxrt/teensy-4.x: added board level support for GPIO driver
 * [#3929](https://github.com/apache/incubator-nuttx/pull/#3929) Added encoder support for Teensy 4.x
 * [#3980](https://github.com/apache/incubator-nuttx/pull/#3980) FlexPWM support for iMXRT MCU   
 * [#4581](https://github.com/apache/incubator-nuttx/pull/#4581) Fixed imxrt flexcan driver compilation error (incorrect variable scope)  

#### LPC17XX_40XX

#### NRF52

#### RP2040 
  * [#3917](https://github.com/apache/incubator-nuttx/pull/#3917) arm/rp2040:USB device controller support   
  * [#3857](https://github.com/apache/incubator-nuttx/pull/#3857) boards: rp2040: Add user gpio driver 
  * [#3996](https://github.com/apache/incubator-nuttx/pull/#3996) Support for Waveshare Pico-LCD-1.x module
  
#### S32K1XX
 * [#4643](https://github.com/apache/incubator-nuttx/pull/#4643) S32K1xx arch: Add (optional) support for SPI native/hardware chip select  
 * [#4634](https://github.com/apache/incubator-nuttx/pull/#4634) S32K1XX arch: gpioread may also be used for output pins   
 * [#4592](https://github.com/apache/incubator-nuttx/pull/#4592) S32K1XX: Add LPI2C slave support  
 * [#4541](https://github.com/apache/incubator-nuttx/pull/#4541) S32K1XX EVB boards cleanup & update  
 * [#4578](https://github.com/apache/incubator-nuttx/pull/#4578) S32K1XXEVB boards: Fix RGB LED output and add comments  
 * [#4533](https://github.com/apache/incubator-nuttx/pull/#4533) S32k1xx: added PM support  
 * [#4596](https://github.com/apache/incubator-nuttx/pull/#4596) S32K1XX: Add FlexIO registers  
 * [#4508](https://github.com/apache/incubator-nuttx/pull/#4508) s32k1xx: added way to get the reset cause in a proc fs  

#### SAM34
 * [#3732](https://github.com/apache/incubator-nuttx/pull/#3732) board: Add support for Adafruit Circuit Express  
 * [#3840](https://github.com/apache/incubator-nuttx/pull/#3840) Add ST7789 LCD controller support for SAMV71 XPlained Ultra board

#### STM32  
 * [#3944](https://github.com/apache/incubator-nuttx/pull/#3944) boards/arm/stm32/nucleo-f446re: added support for DAC driver
 * [#3880](https://github.com/apache/incubator-nuttx/pull/#3880) boards/arm/stm32/nucleo-f446re: added support for GPIO driver
 * [#3909](https://github.com/apache/incubator-nuttx/pull/#3909) Added basic support for nucleo-g431kb board.
 * [#3922](https://github.com/apache/incubator-nuttx/pull/#3922) Adds PWM example to nucleo-g431kb board.  
 * [#3914](https://github.com/apache/incubator-nuttx/pull/#3914) boards: added support for EMW3162 Wi-Fi board
 * [#3878](https://github.com/apache/incubator-nuttx/pull/#3878) Add FOC support for B-G431-ESC1 board   
 * [#3637](https://github.com/apache/incubator-nuttx/pull/#3637) boards/arm/stm32/nucleo-f446re: added support for PWM  
 * [#3660](https://github.com/apache/incubator-nuttx/pull/#3660) stm32_pwm: improvements for PULSECOUNT support  
 * [#4505](https://github.com/apache/incubator-nuttx/pull/#4505) 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/#4589) Fix stm32xx GPIO glitches from configuration bad order of operations  
 * [#4085](https://github.com/apache/incubator-nuttx/pull/#4085) stm32,stm32f7,stm32h7: supported ETH MAC promiscuous mode  
 * [#4255](https://github.com/apache/incubator-nuttx/pull/#4255) STM32 DAC Driver - Add support to DAC3  
 * [#3796](https://github.com/apache/incubator-nuttx/pull/#3796) boards/arm/stm32/nucleo-f412zg/scripts/Make.defs: Replace EXTRADEFINES by EXTRAFLAGS  
 * [#4284](https://github.com/apache/incubator-nuttx/pull/#4284) stm32_pmw: fix pwm_stop() function to enable multiple PWM start and stop  
 * [#4353](https://github.com/apache/incubator-nuttx/pull/#4353) stm32/stm32_serial.c fix issue  
 * [#4244](https://github.com/apache/incubator-nuttx/pull/#4244) STM32G4: add support for CORDIC math accelerator  
 * [#4437](https://github.com/apache/incubator-nuttx/pull/#4437) stm32_serial.c: Don't fake a TX interrupt when interrupts are not suppressed  

#### STM32L4  
  * [#4534](https://github.com/apache/incubator-nuttx/pull/#4534) STM32L4 LPUART support  

#### STM32F4

#### STM32F7/STM32H7
  * [#3646](https://github.com/apache/incubator-nuttx/pull/#3646) boards/stm32f7: Add i2c and mpu60x0 support to nucleo-144 and fix bitmask bug in mpu60x0  
  * [#3650](https://github.com/apache/incubator-nuttx/pull/#3650) stm32{H7|F7} Disables/Enabled the use of GPIO_OTG_ID pin  
  * [#3669](https://github.com/apache/incubator-nuttx/pull/#3669) STM32 {F7|H7} Use 250 Ms Data path timeout, regardless of Card Clock frequency 
  * [#3651](https://github.com/apache/incubator-nuttx/pull/#3651) Use inttypes in stm32{f7|h7}, Kinetis, s32k drivers.  
  * [#4524](https://github.com/apache/incubator-nuttx/pull/#4524) stm32*7/stm32_serial.c: Don't fake a TX interrupt when interrupts are not suppressed 
  * [#4598](https://github.com/apache/incubator-nuttx/pull/#4598) stm32h7:DMA_TRBUFF is DMA_SCR_TRBUFF  

#### KINETIS

#### RISC-V 
 * [#3846](https://github.com/apache/incubator-nuttx/pull/#3846) risc-v/rv32m1: Basic port to rv32m1 ri5cy
 * [#4146](https://github.com/apache/incubator-nuttx/pull/#4146) risc-v/bl602: add boardctl support
 * [#3911](https://github.com/apache/incubator-nuttx/pull/#3911) Add i2c driver to PolarFire SoC and Icicle board
 * [#3905](https://github.com/apache/incubator-nuttx/pull/#3905) Add SPI driver to PolarFire SoC and Icicle board
 * [#3933](https://github.com/apache/incubator-nuttx/pull/#3933) riscv/mpfs: add i2c reset handler
 * [#3920](https://github.com/apache/incubator-nuttx/pull/#3920) add dma support for PolarFire SoC

#### BL602

#### C906

#### ESP32C3
 * [#3794](https://github.com/apache/incubator-nuttx/pull/#3794) risc-v/esp32c3: Support ESP32-C3 RTC driver  
 * [#3883](https://github.com/apache/incubator-nuttx/pull/#3883) risc-v/esp32c3: Support ESP32-C3 RSA accelerator  
 * [#3881](https://github.com/apache/incubator-nuttx/pull/#3881) risc-v/esp32c3: Support ESP32-C3 efuse   
 * [#3935](https://github.com/apache/incubator-nuttx/pull/#3935) risc-v/esp32c3: Support ESP32-C3 SHA accelerator
 * [#3882](https://github.com/apache/incubator-nuttx/pull/#3882) riscv/esp32c3: Use the RTC memory as another heap.
 * [#3945](https://github.com/apache/incubator-nuttx/pull/#3945) boards/esp32c3: Add romfs configuration
 * [#3925](https://github.com/apache/incubator-nuttx/pull/#3925) risc-v/esp32-c3: Adds I2C polled support
 * [#3823](https://github.com/apache/incubator-nuttx/pull/#3823) risc-v/esp32-c3: Add support for HW flow control. 
 * [#3822](https://github.com/apache/incubator-nuttx/pull/#3822) ESP32-C3: Add DMA support for SPI Slave
 * [#3543](https://github.com/apache/incubator-nuttx/pull/#3543) feat(esp32c3): Support esp32c3 ble function 
 * [#3667](https://github.com/apache/incubator-nuttx/pull/#3667) risc-v/esp32c3: Add ESP32-C3 (G)DMA driver and testing  
 * [#4605](https://github.com/apache/incubator-nuttx/pull/#4605) risc-v/esp32-c3: improvements and fix to esp32c3_rt_timer.c  
 * [#4611](https://github.com/apache/incubator-nuttx/pull/#4611) ESP32-C3: Add support for booting NuttX from MCUboot  
 * [#3656](https://github.com/apache/incubator-nuttx/pull/#3656) risc-v/esp32-c3: Adds freerun wrapper 
 * [#4574](https://github.com/apache/incubator-nuttx/pull/#4574) esp32c3-devkit: Add board profile to use LVGL on GC9A01 display  
 * [#3810](https://github.com/apache/incubator-nuttx/pull/#3810) risc-v/esp32c3: Fix overwriting of registered-but-disabled interrupts  
 * [#3797](https://github.com/apache/incubator-nuttx/pull/#3797) ESP32-C3: Add SPI Slave peripheral driver  
 * [#4568](https://github.com/apache/incubator-nuttx/pull/#4568) boards/esp32c3: add ESP32C3 LCD drivers  
 * [#4553](https://github.com/apache/incubator-nuttx/pull/#4553) risc-v/esp32c3: fix pwm driver bug  
 * [#4500](https://github.com/apache/incubator-nuttx/pull/#4500) risc-v/esp32-c3: refactor the Wi-Fi board logic.   
 * [#3679](https://github.com/apache/incubator-nuttx/pull/#3679) risc-v/esp32c3: Support ESP32-C3 PM standby and sleep  
 * [#3766](https://github.com/apache/incubator-nuttx/pull/#3766) riscv/esp32c3: Add ESP32-C3 AES driver  
 * [#3750](https://github.com/apache/incubator-nuttx/pull/#3750) riscv/esp32c3: Support SPI Flash encryption read/write  
 * [#3735](https://github.com/apache/incubator-nuttx/pull/#3735) riscv/esp32c3: Add ESP32-C3 ADC driver  
 * [#3715](https://github.com/apache/incubator-nuttx/pull/#3715) risc-v/esp32c3: Support ESP32-C3 auto-sleep  
 * [#4239](https://github.com/apache/incubator-nuttx/pull/#4239) risc-v/esp32-c3: Adds systimer support and make rt_timer rely on it  
 * [#3694](https://github.com/apache/incubator-nuttx/pull/#3694) risc-v/esp32c3: Add support for DMA transfers on SPI driver  
 * [#3697](https://github.com/apache/incubator-nuttx/pull/#3697) riscv/esp32c3: Fix RT timer issues  
 * [#3906](https://github.com/apache/incubator-nuttx/pull/#3906) risc-v/esp32c3_wifi_adapter.c: Remove a config that's only used in Xtensa chips.   
 * [#3701](https://github.com/apache/incubator-nuttx/pull/#3701) riscv/esp32c3: Add ESP32C3 LEDC(PWM) driver  
 * [#3854](https://github.com/apache/incubator-nuttx/pull/#3854) ESP32-C3: Small clean up on IRQ functions  
 * [#4006](https://github.com/apache/incubator-nuttx/pull/#4006) risc-v/esp32c3: Notifies networking layer whether the carrier is available  
 * [#3788](https://github.com/apache/incubator-nuttx/pull/#3788) ESP32-C3: Fix configuration of TX Burst support for GDMA  
 * [#4040](https://github.com/apache/incubator-nuttx/pull/#4040) risc-v/esp32c3: Fix some ESP32-C3 BLE driver issues 
 * [#4082](https://github.com/apache/incubator-nuttx/pull/#4082) boards/esp32c3-devkit: Support mounting SPI Flash MTD to littleFS  
 * [#4075](https://github.com/apache/incubator-nuttx/pull/#4075) risc-v/esp32c3: Add board_ioctl and board_uniqueid  
 * [#4092](https://github.com/apache/incubator-nuttx/pull/#4092) risc-v/esp32c3: Use onexit to free thread private semaphore  
 * [#3971](https://github.com/apache/incubator-nuttx/pull/#3971) boards/riscv/esp32c3: Rename the iram_0_2 segment to irom_0_0 to avoid confusions.  
 * [#4141](https://github.com/apache/incubator-nuttx/pull/#4141) risc-v/esp32-c3: Use systimer 0 to RTOS TICK  
 * [#3793](https://github.com/apache/incubator-nuttx/pull/#3793) esp32&esp32c3/wifi: Support specific channel and bssid scan  
 * [#4162](https://github.com/apache/incubator-nuttx/pull/#4162) risc-v/esp32c3: Fix some ESP32-C3 Wi-Fi driver issues 
 * [#4169](https://github.com/apache/incubator-nuttx/pull/#4169) risc-v/esp32-c3: Makes output readable and rmv unnecessary var.  
 * [#4314](https://github.com/apache/incubator-nuttx/pull/#4314) risc-v/esp32-c3: Complete the support for RWDT  

  ######## XTENSA 
 * [#4590](https://github.com/apache/incubator-nuttx/pull/#4590) [Xtensa/RISC-V] Remove FAR and CODE qualifiers from arch-specific files  
 * [#4187](https://github.com/apache/incubator-nuttx/pull/#4187) Fix xtensa_btdump() to look at the exception frame  
 * [#4556](https://github.com/apache/incubator-nuttx/pull/#4556) xtensa:backtrace: flush to stack when in interrupt  
 * [#3939](https://github.com/apache/incubator-nuttx/pull/#3939) Fix xtensa  
 * [#4531](https://github.com/apache/incubator-nuttx/pull/#4531) xtensa/irq.h: Fixes the routine that clears the processor interrupt  
 * [#4278](https://github.com/apache/incubator-nuttx/pull/#4278) xtensa/common: save sp before overwriting in level2/3/4 handler and typo fix  
 * [#4311](https://github.com/apache/incubator-nuttx/pull/#4311) xtensa:coproc: fix XTENSA_CP_ALLSET error in some case  
 * [#3768](https://github.com/apache/incubator-nuttx/pull/#3768) xtensa: Fixes names of architecture serial functions  


#### ESP32
 * [#3940](https://github.com/apache/incubator-nuttx/pull/#3940) xtensa/esp32: Support ESP32 RTC driver
 * [#4003](https://github.com/apache/incubator-nuttx/pull/#4003) xtensa/esp32: Adds support for SERIAL_TXDMA.
 * [#3912](https://github.com/apache/incubator-nuttx/pull/#3912) xtensa/esp32: Adds I2C polled support.
 * [#3803](https://github.com/apache/incubator-nuttx/pull/#3803) Add support to ESP32-S2 and ESP32S2-SAOLA-1 Board
 * [#3824](https://github.com/apache/incubator-nuttx/pull/#3824) xtensa/esp32-s2: Add support for serial HW flow control.
 * [#4604](https://github.com/apache/incubator-nuttx/pull/#4604) xtensa/esp32: Enable build system to download or build binaries from source  
 * [#3642](https://github.com/apache/incubator-nuttx/pull/#3642) xtensa/esp32: several uart fixes
 * [#3648](https://github.com/apache/incubator-nuttx/pull/#3648) tools/esp32/mk_qemu_img.sh: Refactor the dd commands.  
 * [#4625](https://github.com/apache/incubator-nuttx/pull/#4625) esp32-c3/esp32-s2: Fix the sequence of commands to set the alarm value on rt timer.  
 * [#4610](https://github.com/apache/incubator-nuttx/pull/#4610) ESP32-S2: Add support for booting NuttX from MCUboot  
 * [#3678](https://github.com/apache/incubator-nuttx/pull/#3678) xtensa/esp32: Support auto-sleep  
 * [#4532](https://github.com/apache/incubator-nuttx/pull/#4532) boards/esp32s2-saola-1: Add implementation for BOARDIOC_RESET interface  
 * [#4275](https://github.com/apache/incubator-nuttx/pull/#4275) xtensa/esp32: Keep track of the CPU where the interrupt was attached.  
 * [#4295](https://github.com/apache/incubator-nuttx/pull/#4295) xtensa/esp32: Enable boot from Espressif's port of MCUboot  
 * [#4315](https://github.com/apache/incubator-nuttx/pull/#4315) xtensa/esp32: Fix issues on RWDT  
 * [#4366](https://github.com/apache/incubator-nuttx/pull/#4366) xtensa/esp32: Use IRQ to enable/disable interrupts 
 * [#4427](https://github.com/apache/incubator-nuttx/pull/#4427) esp32/ttgo_lora_esp32: Add support to SSD1306 OLED display  
 * [#4388](https://github.com/apache/incubator-nuttx/pull/#4388) esp32: Re-organize the interrupt handling process to correctly handle the SMP case  
 * [#4401](https://github.com/apache/incubator-nuttx/pull/#4401) xtensa/esp32-s2: Adds support to the timer driver  
 * [#4545](https://github.com/apache/incubator-nuttx/pull/#4545) esp32-wrover: Add support to LCD1602 with I2C Backpack  
 * [#4587](https://github.com/apache/incubator-nuttx/pull/#4587) xtensa/esp32-s2: Adds freerun timer wrapper  
 * [#4139](https://github.com/apache/incubator-nuttx/pull/#4139) xtensa/esp32: Fixes termios issue.  
 * [#4586](https://github.com/apache/incubator-nuttx/pull/#4586) xtensa/esp32-s2: Adds oneshot device driver support  
 * [#4570](https://github.com/apache/incubator-nuttx/pull/#4570) esp32_spiflash.c: Correctly disable APP's CPU cache. 
 * [#4509](https://github.com/apache/incubator-nuttx/pull/#4509) esp32: Add initial support to Bluetooth Low Energy  
 * [#4411](https://github.com/apache/incubator-nuttx/pull/#4411) esp32/softap: Enable the WPA2 by default to ask user password  
 * [#4412](https://github.com/apache/incubator-nuttx/pull/#4412) boards/esp32: Add basic support to TTGO-LoRa-SX1276-ESP32  
 * [#4585](https://github.com/apache/incubator-nuttx/pull/#4585) xtensa/esp32-s2: Adds support to rt_timer and systimer to ESP32-S2.  
 * [#4170](https://github.com/apache/incubator-nuttx/pull/#4170) xtensa/esp32: Make output readable and rmv unnecessary var.  
 * [#4195](https://github.com/apache/incubator-nuttx/pull/#4195) esp32_allocateheap.c: Remove the amount reserved to himem from the heap.  
 * [#4232](https://github.com/apache/incubator-nuttx/pull/#4232) xtensa/esp32: Enable configuration of GPIO pad's drive strength  
 * [#4240](https://github.com/apache/incubator-nuttx/pull/#4240) xtensa/esp32: expose SPI2 as a char driver  
 * [#4253](https://github.com/apache/incubator-nuttx/pull/#4253) xtensa/esp32: Enable the allocation of multiple SPI Flash partitions  
 * [#4338](https://github.com/apache/incubator-nuttx/pull/#4338) tools/esp32/Config.mk: Allow ESPTOOL_BINDIR to be omitted when flashing the board 
 * [#3938](https://github.com/apache/incubator-nuttx/pull/#3938) esp32&esp32c3/wifi: Fix the issues of Wi-Fi configuration being overwritten  
 * [#3969](https://github.com/apache/incubator-nuttx/pull/#3969) boards/esp32: Refactor the different linker scripts and delete old OpenOCD config files.  
 * [#3975](https://github.com/apache/incubator-nuttx/pull/#3975) xtensa/esp32: Fix RTC WDT deinitialization on start routine  
 * [#3987](https://github.com/apache/incubator-nuttx/pull/#3987) tools/esp32/backtrace.gdbscript: 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

### Bug Fixes

# 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


...