You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by gi...@apache.org on 2026/10/21 01:05:26 UTC

(nuttx-website) branch asf-site updated: Publishing docs: 1738e6fdf1c7a72ff27541f7c0018f4a903746f1 (web: b3ba9359c605c5e92ad2feac6444e03d16143fd3)

This is an automated email from the ASF dual-hosted git repository.

github-actions[bot] pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/nuttx-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new d3aa6322b4 Publishing docs: 1738e6fdf1c7a72ff27541f7c0018f4a903746f1 (web: b3ba9359c605c5e92ad2feac6444e03d16143fd3)
d3aa6322b4 is described below

commit d3aa6322b4ab656ab2bb46129bc0e93f164c859a
Author: Swatantra Yadav <ma...@gmail.com>
AuthorDate: Wed Oct 21 01:05:19 2026 +0000

    Publishing docs: 1738e6fdf1c7a72ff27541f7c0018f4a903746f1 (web: b3ba9359c605c5e92ad2feac6444e03d16143fd3)
---
 .../applications/games/nxdoom/index.rst.txt        |  10 +
 .../guides/chip-specific/stm32_ports.rst.txt       |  81 ++++----
 .../docs/latest/_sources/os/binfmt/nxflat.rst.txt  |  19 ++
 .../arm/cxd56xx/boards/spresense/index.rst.txt     |  51 +++++
 .../arm/stm32h7/boards/stm32h7s8-dk/index.rst.txt  |  80 +++++++-
 .../docs/latest/_sources/testing/nuttx-ci.rst.txt  |  22 ++-
 .../latest/applications/games/nxdoom/index.html    |  10 +
 .../latest/guides/chip-specific/stm32_ports.html   | 220 ++++++++++++---------
 .../latest/guides/programs/fully_linked_elf.html   |   2 +-
 .../guides/programs/partially_linked_elf.html      |   2 +-
 content/docs/latest/objects.inv                    | Bin 257101 -> 257174 bytes
 content/docs/latest/os/binfmt/nxflat.html          |  16 ++
 .../arm/cxd56xx/boards/spresense/index.html        |  48 +++++
 .../arm/stm32c0/boards/nucleo-c092rc/index.html    |  60 ++++--
 .../arm/stm32c5/boards/nucleo-c562re/index.html    |  60 ++----
 .../arm/stm32h7/boards/stm32h7s8-dk/index.html     |  78 +++++++-
 content/docs/latest/searchindex.js                 |   2 +-
 content/docs/latest/testing/nuttx-ci.html          |  20 +-
 18 files changed, 580 insertions(+), 201 deletions(-)

diff --git a/content/docs/latest/_sources/applications/games/nxdoom/index.rst.txt b/content/docs/latest/_sources/applications/games/nxdoom/index.rst.txt
index cdd44f478b..4b37932f48 100644
--- a/content/docs/latest/_sources/applications/games/nxdoom/index.rst.txt
+++ b/content/docs/latest/_sources/applications/games/nxdoom/index.rst.txt
@@ -63,6 +63,16 @@ apply).
    leaves those three actions on keys the game cannot see, and they have to
    be rebound to play.
 
+.. note::
+
+   A board without a keyboard driver can read the keys from a serial
+   terminal instead by enabling ``CONFIG_GAMES_NXDOOM_UARTKBD`` and
+   pointing ``CONFIG_GAMES_NXDOOM_KBDPATH`` at the tty, for example
+   ``/dev/console``. A terminal reports a key press but never its
+   release, so each key is released again 250 ms after its last byte.
+   W, A, S, D and the arrow keys move, J fires, K runs, L strafes, E or
+   space uses and Q or Esc opens the menu.
+
 Minimum requirements
 --------------------
 
diff --git a/content/docs/latest/_sources/guides/chip-specific/stm32_ports.rst.txt b/content/docs/latest/_sources/guides/chip-specific/stm32_ports.rst.txt
index 6d5a6d8d1c..9495305322 100644
--- a/content/docs/latest/_sources/guides/chip-specific/stm32_ports.rst.txt
+++ b/content/docs/latest/_sources/guides/chip-specific/stm32_ports.rst.txt
@@ -250,14 +250,14 @@ AES/CRYP      v1            not supported
 CAN/FDCAN     FDCAN         arch/arm/src/common/stm32/stm32_fdcan_m0_v1.c    
 CRC           to be done    not supported                                    
 DAC           v1            not supported                                    
-DBGMCU        v1            not supported                                    
+DBGMCU        v3            not supported                                    
 DMA           v1            arch/arm/src/common/stm32/stm32_dma_m0_v1_7ch.c  
 DMAMUX        v1 7ch        arch/arm/src/common/stm32/stm32_dma_m0_v1_7ch.c  
 EXTI          v2            arch/arm/src/common/stm32/stm32_exti_gpio_m0_v1.c
 FLASH         G0/C0         arch/arm/src/common/stm32/stm32_flash_m0_g0c0.c  
 GPIO          v1            arch/arm/src/common/stm32/stm32_gpio_m0_v1.c     
 I2C           v1            arch/arm/src/common/stm32/stm32_i2c_m0_v1.c      
-IWDG          v1            arch/arm/src/common/stm32/stm32_iwdg_m0_v1.c     
+IWDG          v2            arch/arm/src/common/stm32/stm32_iwdg.c
 PWR           G0            arch/arm/src/common/stm32/stm32_pwr_m0_g0.c      
 RCC           to be done    arch/arm/src/stm32c0/stm32_rcc.c                 
 RTC           RTCC M0       not supported                                    
@@ -266,7 +266,7 @@ SYSCFG        to be done    not supported
 TIM           v1            arch/arm/src/common/stm32/stm32_tim.c            
 USART/LPUART  v4            arch/arm/src/common/stm32/stm32_serial_m0_v4.c   
 USB           device v2     arch/arm/src/common/stm32/stm32_usbdev_m0_v1.c
-WWDG          v1            arch/arm/src/common/stm32/stm32_wwdg_m0_v1.c     
+WWDG          v2            arch/arm/src/common/stm32/stm32_wwdg.c
 ============  ============  =================================================
 
 STM32C5
@@ -282,7 +282,7 @@ CORDIC        to be done    not supported
 CRC           to be done    not supported
 CRS           to be done    not supported
 DAC           to be done    not supported
-DBGMCU        to be done    not supported
+DBGMCU        v5            not supported
 EXTI          M33 v1        arch/arm/src/common/stm32/stm32_exti_gpio_m33_v1.c
 FDCAN         FDCAN         not supported
 FLASH         to be done    not supported
@@ -291,7 +291,7 @@ HASH          to be done    not supported
 I2C           to be done    not supported
 I3C           to be done    not supported
 ICACHE        to be done    not supported
-IWDG          to be done    not supported
+IWDG          v3            arch/arm/src/common/stm32/stm32_iwdg.c
 LPDMA         GPDMA         arch/arm/src/common/stm32/stm32_dma_gpdma.c
 LPTIM         to be done    not supported
 LPUART        M33 v3        arch/arm/src/common/stm32/stm32_serial_m33_v3.c
@@ -306,7 +306,7 @@ TAMP          to be done    not supported
 TIM           v3            arch/arm/src/common/stm32/stm32_tim.c
 USART/UART    M33 v3        arch/arm/src/common/stm32/stm32_serial_m33_v3.c
 USB_FS        FS            not supported
-WWDG          to be done    not supported
+WWDG          v3            arch/arm/src/common/stm32/stm32_wwdg.c
 ============  ============  ==============================================================
 
 STM32F0
@@ -325,7 +325,7 @@ FLASH         M0 v1         not supported
 GPIO          v1            arch/arm/src/common/stm32/stm32_gpio_m0_v1.c     
 HDMI-CEC      to be done    not supported                                    
 I2C           v1            arch/arm/src/common/stm32/stm32_i2c_m0_v1.c      
-IWDG          v1            arch/arm/src/common/stm32/stm32_iwdg_m0_v1.c     
+IWDG          v1            arch/arm/src/common/stm32/stm32_iwdg.c
 PWR           v1            arch/arm/src/common/stm32/stm32_pwr_m0_v1.c      
 RCC           to be done    arch/arm/src/stm32f0/stm32_rcc.c                 
 RTC           RTCC M0       not supported                                    
@@ -334,7 +334,7 @@ SYSCFG        to be done    not supported
 TIM           v1            arch/arm/src/common/stm32/stm32_tim.c            
 USART/LPUART  v3            arch/arm/src/common/stm32/stm32_serial_m0_v3.c   
 USB           device v1     arch/arm/src/common/stm32/stm32_usbdev_m0_v1.c
-WWDG          v1            arch/arm/src/common/stm32/stm32_wwdg_m0_v1.c     
+WWDG          v1            arch/arm/src/common/stm32/stm32_wwdg.c
 ============  ============  =================================================
 
 STM32F1
@@ -355,7 +355,7 @@ FLASH         F1/F3          arch/arm/src/common/stm32/stm32_flash_m3m4_f1f3.c
 FSMC          v1             arch/arm/src/common/stm32/stm32_fsmc_m3m4_v1.c         
 GPIO          v1             arch/arm/src/common/stm32/stm32_gpio_m3m4_v1v2.c       
 I2C           v1             arch/arm/src/common/stm32/stm32_i2c_m3m4_v1.c          
-IWDG          v1             arch/arm/src/common/stm32/stm32_iwdg_m3m4_v1.c         
+IWDG          v1             arch/arm/src/common/stm32/stm32_iwdg.c
 PWR           v1             arch/arm/src/common/stm32/stm32_pwr_m3m4_v1.c          
 RCC           to be done     arch/arm/src/stm32f1/stm32_rcc.c                       
 RTC           counter        arch/arm/src/common/stm32/stm32_rtc_m3m4_v1_lowerhalf.c
@@ -364,7 +364,7 @@ SPI/I2S       v1             arch/arm/src/common/stm32/stm32_i2s_m3m4_v1.c
 TIM           v1             arch/arm/src/common/stm32/stm32_tim.c                  
 USART/LPUART  v1             arch/arm/src/common/stm32/stm32_serial_m3m4_v1v2v3v4.c 
 USB           device/OTG FS  arch/arm/src/common/stm32/stm32_otgfsdev_m3m4_v1.c     
-WWDG          v1             arch/arm/src/common/stm32/stm32_wwdg_m3m4_v1.c         
+WWDG          v1             arch/arm/src/common/stm32/stm32_wwdg.c
 ============  =============  =======================================================
 
 STM32F2
@@ -385,7 +385,7 @@ FSMC          v1            arch/arm/src/common/stm32/stm32_fsmc_m3m4_v1.c
 GPIO          v1            arch/arm/src/common/stm32/stm32_gpio_m3m4_v1v2.c       
 HASH          to be done    not supported                                          
 I2C           v1            arch/arm/src/common/stm32/stm32_i2c_m3m4_v1.c          
-IWDG          v1            arch/arm/src/common/stm32/stm32_iwdg_m3m4_v1.c         
+IWDG          v1            arch/arm/src/common/stm32/stm32_iwdg.c
 RCC           to be done    arch/arm/src/stm32f2/stm32_rcc.c                       
 RNG           v1            arch/arm/src/common/stm32/stm32_rng_m3m4_v1.c          
 RTC           RTCC v1       arch/arm/src/common/stm32/stm32_rtc_m3m4_v1_lowerhalf.c
@@ -394,7 +394,7 @@ SPI/I2S       v2            arch/arm/src/common/stm32/stm32_spi_m3m4_v2v3v4.c
 TIM           v1            arch/arm/src/common/stm32/stm32_tim.c                  
 USART/LPUART  v2            arch/arm/src/common/stm32/stm32_serial_m3m4_v1v2v3v4.c 
 USB           OTG FS/HS     arch/arm/src/common/stm32/stm32_otgfsdev_m3m4_v1.c     
-WWDG          v1            arch/arm/src/common/stm32/stm32_wwdg_m3m4_v1.c         
+WWDG          v1            arch/arm/src/common/stm32/stm32_wwdg.c
 ============  ============  =======================================================
 
 STM32F3
@@ -414,7 +414,7 @@ FLASH         F1/F3           arch/arm/src/common/stm32/stm32_flash_m3m4_f1f3.c
 GPIO          v1              arch/arm/src/common/stm32/stm32_gpio_m3m4_v1v2.c       
 HRTIM         v1              arch/arm/src/common/stm32/stm32_hrtim_m3m4_v1.c        
 I2C           v2              arch/arm/src/common/stm32/stm32_i2c_m3m4_v2.c          
-IWDG          v1              arch/arm/src/common/stm32/stm32_iwdg_m3m4_v1.c         
+IWDG          v1              arch/arm/src/common/stm32/stm32_iwdg.c
 OPAMP         v1              arch/arm/src/common/stm32/stm32_opamp_m3m4_v1.c        
 RCC           to be done      arch/arm/src/stm32f3/stm32_rcc.c                       
 RTC           RTCC v1         arch/arm/src/common/stm32/stm32_rtc_m3m4_v1_lowerhalf.c
@@ -424,7 +424,7 @@ SYSCFG        v1              not supported
 TIM           v1 or v2        arch/arm/src/common/stm32/stm32_tim.c                  
 USART/LPUART  v3              arch/arm/src/common/stm32/stm32_serial_m3m4_v1v2v3v4.c 
 USB           device          arch/arm/src/common/stm32/stm32_otgfsdev_m3m4_v1.c     
-WWDG          v1              arch/arm/src/common/stm32/stm32_wwdg_m3m4_v1.c         
+WWDG          v1              arch/arm/src/common/stm32/stm32_wwdg.c
 ============  ==============  =======================================================
 
 STM32F4
@@ -446,7 +446,7 @@ FMC/FSMC      v1            arch/arm/src/common/stm32/stm32_fmc_m3m4_v1.c
 GPIO          v1            arch/arm/src/common/stm32/stm32_gpio_m3m4_v1v2.c      
 HASH          to be done    not supported                                         
 I2C           v1            arch/arm/src/common/stm32/stm32_i2c_m3m4_v1.c         
-IWDG          v1            arch/arm/src/common/stm32/stm32_iwdg_m3m4_v1.c        
+IWDG          v1            arch/arm/src/common/stm32/stm32_iwdg.c
 LTDC          v1            arch/arm/src/common/stm32/stm32_ltdc_m3m4_v1.c        
 QUADSPI       to be done    not supported                                         
 RCC           to be done    arch/arm/src/stm32f4/stm32_rcc.c                      
@@ -457,7 +457,7 @@ SPI/I2S       v2            arch/arm/src/common/stm32/stm32_spi_m3m4_v2v3v4.c
 TIM           v1            arch/arm/src/common/stm32/stm32_tim.c                 
 USART/LPUART  v2            arch/arm/src/common/stm32/stm32_serial_m3m4_v1v2v3v4.c
 USB           OTG FS/HS     arch/arm/src/common/stm32/stm32_otgfsdev_m3m4_v1.c    
-WWDG          v1            arch/arm/src/common/stm32/stm32_wwdg_m3m4_v1.c        
+WWDG          v1            arch/arm/src/common/stm32/stm32_wwdg.c
 ============  ============  ======================================================
 
 STM32G4
@@ -479,7 +479,7 @@ FLASH         G4            arch/arm/src/common/stm32/stm32_flash_m3m4_g4.c
 GPIO          v1            arch/arm/src/common/stm32/stm32_gpio_m3m4_v1v2.c       
 HRTIM         v1            arch/arm/src/common/stm32/stm32_hrtim_m3m4_v1.c        
 I2C           v2            arch/arm/src/common/stm32/stm32_i2c_m3m4_v2.c          
-IWDG          v1            arch/arm/src/common/stm32/stm32_iwdg_m3m4_v1.c         
+IWDG          v2            arch/arm/src/common/stm32/stm32_iwdg.c
 OPAMP         v1            arch/arm/src/common/stm32/stm32_opamp_m3m4_v1.c        
 RCC           to be done    arch/arm/src/stm32g4/stm32_rcc.c                       
 RNG           v1            arch/arm/src/common/stm32/stm32_rng_m3m4_v1.c          
@@ -488,7 +488,7 @@ SPI/I2S       v3            arch/arm/src/common/stm32/stm32_spi_m3m4_v2v3v4.c
 TIM           v3            arch/arm/src/common/stm32/stm32_tim.c                  
 USART/LPUART  v4            arch/arm/src/common/stm32/stm32_serial_m3m4_v1v2v3v4.c 
 USB           device        arch/arm/src/common/stm32/stm32_otgfsdev_m3m4_v1.c     
-WWDG          v1            arch/arm/src/common/stm32/stm32_wwdg_m3m4_v1.c         
+WWDG          v2            arch/arm/src/common/stm32/stm32_wwdg.c
 ============  ============  =======================================================
 
 STM32L4
@@ -507,7 +507,7 @@ EXTI          to be done    arch/arm/src/stm32l4/stm32l4_exti_gpio.c
 FLASH         to be done    arch/arm/src/stm32l4/stm32l4_flash.c     
 GPIO          to be done    arch/arm/src/stm32l4/stm32l4_gpio.c      
 I2C           to be done    arch/arm/src/stm32l4/stm32l4_i2c.c       
-IWDG          v1            arch/arm/src/stm32l4/stm32l4_iwdg.c      
+IWDG          v1            arch/arm/src/common/stm32/stm32_iwdg.c
 LPTIM         to be done    arch/arm/src/stm32l4/stm32l4_lptim.c     
 PWR           to be done    arch/arm/src/stm32l4/stm32l4_pwr.c       
 QSPI          to be done    arch/arm/src/stm32l4/stm32l4_qspi.c      
@@ -520,6 +520,7 @@ SPI/I2S       to be done    arch/arm/src/stm32l4/stm32l4_spi.c
 TIM           v2            arch/arm/src/common/stm32/stm32_tim.c    
 USART/LPUART  v3            arch/arm/src/stm32l4/stm32l4_serial.c    
 USB           OTG FS        arch/arm/src/stm32l4/stm32l4_otgfsdev.c  
+WWDG          v1            arch/arm/src/common/stm32/stm32_wwdg.c
 PULSECOUNT    n/a           arch/arm/src/common/stm32/stm32_pulsecount.c
 PWM           n/a           arch/arm/src/stm32l4/stm32l4_pwm.c       
 QENCODER      n/a           arch/arm/src/common/stm32/stm32_qencoder.c  
@@ -543,7 +544,7 @@ FLASH         to be done    arch/arm/src/stm32f7/stm32_flash.c
 FMC/FSMC      to be done    arch/arm/src/stm32f7/stm32_fmc.c       
 GPIO          to be done    arch/arm/src/stm32f7/stm32_gpio.c      
 I2C           to be done    arch/arm/src/stm32f7/stm32_i2c.c       
-IWDG          v1            not supported                          
+IWDG          v1            arch/arm/src/common/stm32/stm32_iwdg.c
 LTDC          to be done    arch/arm/src/stm32f7/stm32_ltdc.c      
 PWR           to be done    arch/arm/src/stm32f7/stm32_pwr.c       
 QUADSPI       to be done    arch/arm/src/stm32f7/stm32_qspi.c      
@@ -555,7 +556,7 @@ SPI/I2S       to be done    arch/arm/src/stm32f7/stm32_i2s.c
 TIM           v2            arch/arm/src/common/stm32/stm32_tim.c  
 USART/LPUART  v3            arch/arm/src/stm32f7/stm32_serial.c    
 USB           OTG FS/HS     arch/arm/src/stm32f7/stm32_otgdev.c    
-WWDG          v1            not supported                          
+WWDG          v1            arch/arm/src/common/stm32/stm32_wwdg.c
 BBSRAM        n/a           arch/arm/src/stm32f7/stm32_bbsram.c    
 CAPTURE       n/a           arch/arm/src/stm32f7/stm32_capture.c   
 FOC           n/a           arch/arm/src/stm32f7/stm32_foc.c       
@@ -582,7 +583,7 @@ EXTI          v2            arch/arm/src/common/stm32/stm32_exti_gpio_m0_v1.c
 FLASH         G0/C0         not supported                                    
 GPIO          v1            arch/arm/src/common/stm32/stm32_gpio_m0_v1.c     
 I2C           v1            arch/arm/src/common/stm32/stm32_i2c_m0_v1.c      
-IWDG          v1            arch/arm/src/common/stm32/stm32_iwdg_m0_v1.c     
+IWDG          v2            arch/arm/src/common/stm32/stm32_iwdg.c
 PWR           G0            not supported                                    
 RCC           to be done    arch/arm/src/stm32g0/stm32_rcc.c                 
 RNG           v1            arch/arm/src/common/stm32/stm32_rng_m0_v1.c      
@@ -592,7 +593,7 @@ SYSCFG        to be done    not supported
 TIM           v1            arch/arm/src/common/stm32/stm32_tim.c            
 USART/LPUART  v4            arch/arm/src/common/stm32/stm32_serial_m0_v4.c   
 USB           device v2     arch/arm/src/common/stm32/stm32_usbdev_m0_v1.c
-WWDG          v1            arch/arm/src/common/stm32/stm32_wwdg_m0_v1.c     
+WWDG          v2            arch/arm/src/common/stm32/stm32_wwdg.c
 ============  ============  =================================================
 
 STM32H5
@@ -612,7 +613,7 @@ FLASH         to be done    arch/arm/src/stm32h5/stm32_flash.c
 GPIO          to be done    arch/arm/src/stm32h5/stm32_gpio.c      
 GPDMA         GPDMA         arch/arm/src/common/stm32/stm32_dma_gpdma.c
 I2C           to be done    arch/arm/src/stm32h5/stm32_i2c.c       
-IWDG          v1            arch/arm/src/stm32h5/stm32_iwdg.c      
+IWDG          v3            arch/arm/src/common/stm32/stm32_iwdg.c
 ICACHE        to be done    arch/arm/src/stm32h5/stm32_icache.c    
 OCTOSPI       to be done    arch/arm/src/stm32h5/stm32_qspi.c      
 PWR           to be done    arch/arm/src/stm32h5/stm32_pwr.c       
@@ -621,7 +622,7 @@ SPI/I2S       to be done    arch/arm/src/stm32h5/stm32_spi.c
 TIM           v3            arch/arm/src/common/stm32/stm32_tim.c  
 USART/LPUART  v3            arch/arm/src/stm32h5/stm32_serial.c    
 USB           FS            arch/arm/src/stm32h5/stm32_usbfs.c     
-WWDG          v1            arch/arm/src/stm32h7/stm32_wwdg.c      
+WWDG          v3            arch/arm/src/common/stm32/stm32_wwdg.c
 LPTIM         n/a           arch/arm/src/stm32h5/stm32_lptim.c     
 PULSECOUNT    n/a           arch/arm/src/common/stm32/stm32_pulsecount.c
 PWM           n/a           arch/arm/src/stm32h5/stm32_pwm.c       
@@ -648,7 +649,7 @@ FMC/FSMC      to be done    arch/arm/src/stm32h7/stm32_fmc.c
 GPIO          to be done    arch/arm/src/stm32h7/stm32_gpio.c      
 HSEM          to be done    not supported                          
 I2C           to be done    arch/arm/src/stm32h7/stm32_i2c.c       
-IWDG          v1            arch/arm/src/stm32h7/stm32_iwdg.c      
+IWDG          v2, H7RS v3   arch/arm/src/common/stm32/stm32_iwdg.c
 LTDC          to be done    arch/arm/src/stm32h7/stm32_ltdc.c      
 MDMA          to be done    arch/arm/src/stm32h7/stm32_dma.c       
 PWR           to be done    arch/arm/src/stm32h7/stm32_pwr.c       
@@ -661,7 +662,7 @@ SPI/I2S       to be done    arch/arm/src/stm32h7/stm32_spi.c
 TIM           v2, H7RS v3   arch/arm/src/common/stm32/stm32_tim.c  
 USART/LPUART  v4            arch/arm/src/stm32h7/stm32_serial.c    
 USB           OTG FS/HS     arch/arm/src/stm32h7/stm32_otgdev.c    
-WWDG          v1            arch/arm/src/stm32h7/stm32_wwdg.c      
+WWDG          v2, H7RS v3   arch/arm/src/common/stm32/stm32_wwdg.c
 AES/CRYP      n/a           arch/arm/src/stm32h7/stm32_aes.c       
 BBSRAM        n/a           arch/arm/src/stm32h7/stm32_bbsram.c    
 CAPTURE       n/a           arch/arm/src/stm32h7/stm32_capture.c   
@@ -686,7 +687,7 @@ EXTI          v1            arch/arm/src/common/stm32/stm32_exti_gpio_m0_v1.c
 FLASH         M0 v1         not supported                                    
 GPIO          v1            arch/arm/src/common/stm32/stm32_gpio_m0_v1.c     
 I2C           v1            arch/arm/src/common/stm32/stm32_i2c_m0_v1.c      
-IWDG          v1            arch/arm/src/common/stm32/stm32_iwdg_m0_v1.c     
+IWDG          v1            arch/arm/src/common/stm32/stm32_iwdg.c
 PWR           v1            arch/arm/src/common/stm32/stm32_pwr_m0_v1.c      
 RCC           to be done    arch/arm/src/stm32l0/stm32_rcc.c                 
 RNG           v1            arch/arm/src/common/stm32/stm32_rng_m0_v1.c      
@@ -695,7 +696,7 @@ SPI/I2S       v1            arch/arm/src/common/stm32/stm32_spi_m0_v1.c
 TIM           v1            arch/arm/src/common/stm32/stm32_tim.c            
 USART/LPUART  v3            arch/arm/src/common/stm32/stm32_serial_m0_v3.c   
 USB           device v1     arch/arm/src/common/stm32/stm32_usbdev_m0_v1.c
-WWDG          v1            arch/arm/src/common/stm32/stm32_wwdg_m0_v1.c     
+WWDG          v1            arch/arm/src/common/stm32/stm32_wwdg.c
 ============  ============  =================================================
 
 STM32L1
@@ -714,7 +715,7 @@ FLASH         L1            arch/arm/src/common/stm32/stm32_flash_m3m4_l1.c
 FSMC          v1            arch/arm/src/common/stm32/stm32_fsmc_m3m4_v1.c        
 GPIO          v1            arch/arm/src/common/stm32/stm32_gpio_m3m4_v1v2.c      
 I2C           v1            arch/arm/src/common/stm32/stm32_i2c_m3m4_v1.c         
-IWDG          v1            arch/arm/src/common/stm32/stm32_iwdg_m3m4_v1.c        
+IWDG          v1            arch/arm/src/common/stm32/stm32_iwdg.c
 LCD           to be done    not supported                                         
 PWR           v1            arch/arm/src/common/stm32/stm32_pwr_m3m4_v1.c         
 RCC           to be done    arch/arm/src/stm32l1/stm32_rcc.c                      
@@ -724,7 +725,7 @@ SPI/I2S       v1            arch/arm/src/common/stm32/stm32_i2s_m3m4_v1.c
 TIM           v1            arch/arm/src/common/stm32/stm32_tim.c                 
 USART/LPUART  v2            arch/arm/src/common/stm32/stm32_serial_m3m4_v1v2v3v4.c
 USB           device        arch/arm/src/common/stm32/stm32_otgfsdev_m3m4_v1.c    
-WWDG          v1            arch/arm/src/common/stm32/stm32_wwdg_m3m4_v1.c        
+WWDG          v1            arch/arm/src/common/stm32/stm32_wwdg.c
 ============  ============  ======================================================
 
 STM32L5
@@ -742,6 +743,7 @@ GPIO          to be done    arch/arm/src/stm32l5/stm32l5_gpio.c
 GTZC          to be done    not supported                           
 HASH          to be done    not supported                           
 I2C           to be done    not supported                           
+IWDG          v2            arch/arm/src/common/stm32/stm32_iwdg.c
 OCTOSPI       to be done    not supported                           
 PWR           to be done    arch/arm/src/stm32l5/stm32l5_pwr.c      
 RCC           to be done    arch/arm/src/stm32l5/stm32l5_rcc.c      
@@ -752,6 +754,7 @@ SPI/I2S       to be done    arch/arm/src/stm32l5/stm32l5_spi.c
 TIM/LPTIM     v2            arch/arm/src/common/stm32/stm32_tim.c   
 USART/LPUART  v3            arch/arm/src/stm32l5/stm32l5_serial.c   
 USB           device        not supported                           
+WWDG          v2            arch/arm/src/common/stm32/stm32_wwdg.c
 ============  ============  ========================================
 
 STM32N6
@@ -768,12 +771,14 @@ EXTI          to be done    not supported
 GPIO          to be done    arch/arm/src/stm32n6/stm32_gpio.c  
 GPDMA         to be done    not supported                      
 I2C           to be done    not supported                      
+IWDG          v3            arch/arm/src/common/stm32/stm32_iwdg.c
 PWR           to be done    arch/arm/src/stm32n6/stm32_pwr.c   
 RCC           to be done    arch/arm/src/stm32n6/stm32_rcc.c   
 SPI/I2S       to be done    not supported                      
 TIM           v3            arch/arm/src/common/stm32/stm32_tim.c
 USART/LPUART  v4            arch/arm/src/stm32n6/stm32_serial.c
 USB           device        not supported
+WWDG          v3            arch/arm/src/common/stm32/stm32_wwdg.c
 XSPI          to be done    not supported
 ============  ============  ===================================
 
@@ -793,7 +798,7 @@ EXTI          v2            arch/arm/src/common/stm32/stm32_exti_gpio_m0_v1.c
 FLASH         U0            not supported
 GPIO          v1            arch/arm/src/common/stm32/stm32_gpio_m0_v1.c
 I2C           v1            arch/arm/src/common/stm32/stm32_i2c_m0_v1.c
-IWDG          v1            arch/arm/src/common/stm32/stm32_iwdg_m0_v1.c
+IWDG          v3            arch/arm/src/common/stm32/stm32_iwdg.c
 LCD           to be done    not supported
 LPTIM         to be done    not supported
 PWR           G0            arch/arm/src/common/stm32/stm32_pwr_m0_g0.c
@@ -806,7 +811,7 @@ TIM           v1            arch/arm/src/common/stm32/stm32_tim.c
 TSC           to be done    not supported
 USART/LPUART  v4            arch/arm/src/common/stm32/stm32_serial_m0_v4.c
 USB           device        not supported
-WWDG          v1            arch/arm/src/common/stm32/stm32_wwdg_m0_v1.c
+WWDG          v3            arch/arm/src/common/stm32/stm32_wwdg.c
 ============  ============  ======================================================
 
 STM32U3
@@ -823,7 +828,7 @@ COMP          to be done    not supported
 CRC           to be done    not supported
 CRS           to be done    not supported
 DAC           to be done    not supported
-DBGMCU        to be done    not supported
+DBGMCU        v5            not supported
 DLYB          to be done    not supported
 EXTI          M33 v1        arch/arm/src/common/stm32/stm32_exti_gpio_m33_v1.c
 FDCAN         to be done    not supported
@@ -836,8 +841,8 @@ HSP           to be done    not supported
 I2C           to be done    not supported
 I3C           to be done    not supported
 ICACHE        to be done    not supported
-IWDG          to be done    not supported
 LPTIM         to be done    not supported
+IWDG          v3            arch/arm/src/common/stm32/stm32_iwdg.c
 LPUART        M33 v3        arch/arm/src/common/stm32/stm32_serial_m33_v3.c
 OCTOSPI       to be done    not supported
 OPAMP         to be done    not supported
@@ -858,7 +863,7 @@ TSC           to be done    not supported
 USART/UART    M33 v3        arch/arm/src/common/stm32/stm32_serial_m33_v3.c
 USB_DRD_FS    to be done    not supported
 VREFBUF       to be done    not supported
-WWDG          to be done    not supported
+WWDG          v3            arch/arm/src/common/stm32/stm32_wwdg.c
 ============  ============  =============================================================
 
 STM32U5
@@ -906,6 +911,7 @@ FLASH         to be done    arch/arm/src/stm32wb/stm32wb_flash.c
 GPIO          to be done    arch/arm/src/stm32wb/stm32wb_gpio.c     
 I2C           to be done    arch/arm/src/stm32wb/stm32wb_i2c.c      
 IPCC          to be done    arch/arm/src/stm32wb/stm32wb_ipcc.c     
+IWDG          v2            arch/arm/src/common/stm32/stm32_iwdg.c
 PWR           to be done    arch/arm/src/stm32wb/stm32wb_pwr.c      
 Radio         to be done    not supported                           
 RCC           to be done    arch/arm/src/stm32wb/stm32wb_rcc.c      
@@ -915,6 +921,7 @@ SPI/I2S       to be done    arch/arm/src/stm32wb/stm32wb_spi.c
 TIM/LPTIM     v2            arch/arm/src/common/stm32/stm32_tim.c   
 USART/LPUART  v4            arch/arm/src/stm32wb/stm32wb_serial.c   
 USB           device        not supported                           
+WWDG          v2            arch/arm/src/common/stm32/stm32_wwdg.c
 ============  ============  ========================================
 
 STM32WL5
@@ -932,6 +939,7 @@ FLASH         to be done    arch/arm/src/stm32wl5/stm32wl5_flash.c
 GPIO          to be done    arch/arm/src/stm32wl5/stm32wl5_gpio.c     
 I2C           to be done    not supported                             
 IPCC          to be done    arch/arm/src/stm32wl5/stm32wl5_ipcc.c     
+IWDG          v2            arch/arm/src/common/stm32/stm32_iwdg.c
 PWR           to be done    arch/arm/src/stm32wl5/stm32wl5_pwr.c      
 Radio         to be done    not supported                             
 RCC           to be done    arch/arm/src/stm32wl5/stm32wl5_rcc.c      
@@ -941,6 +949,7 @@ SPI/I2S       to be done    arch/arm/src/stm32wl5/stm32wl5_spi.c
 TIM/LPTIM     v2            arch/arm/src/common/stm32/stm32_tim.c     
 USART/LPUART  v3            arch/arm/src/stm32wl5/stm32wl5_serial.c   
 USB           to be done    not supported                             
+WWDG          v2            arch/arm/src/common/stm32/stm32_wwdg.c
 ============  ============  ==========================================
 
 Kconfig option organization
diff --git a/content/docs/latest/_sources/os/binfmt/nxflat.rst.txt b/content/docs/latest/_sources/os/binfmt/nxflat.rst.txt
index 73616c042e..79bd0e142a 100644
--- a/content/docs/latest/_sources/os/binfmt/nxflat.rst.txt
+++ b/content/docs/latest/_sources/os/binfmt/nxflat.rst.txt
@@ -117,6 +117,20 @@ Limitations
     and watchdog timer callbacks. But other callbacks (like those
     used with qsort() must be avoided in an NXFLAT module.
 
+  - **Emulated Thread-Local Storage Only**:
+    A module can use ``__thread`` and C++ ``thread_local`` variables only
+    when the toolchain emulates TLS (GCC configured with ``--disable-tls``).
+    The compiler then calls ``__emutls_get_address()``, which the module
+    imports from the base code like any other function. ``ldnxflat``
+    refuses a module that holds native TLS sections (``.tdata``,
+    ``.tbss``).
+
+  - **No Static Constructors**:
+    Nothing runs the static constructors and destructors of a module
+    (``.init_array``, ``.fini_array``), so ``ldnxflat`` refuses a module
+    that has them. A C++ ``thread_local`` object needs no static
+    constructor: each thread constructs it at its first use.
+
 Supported Processors
 --------------------
 
@@ -216,6 +230,11 @@ binary module. See below for usage::
 option, which the older, out-of-tree tool had.  It converts ARM objects
 only, and refuses an object for another machine.
 
+``ldnxflat`` places the sections of each segment itself, in the order of
+the section headers, and does not use the addresses that the linker script
+gives.  So a section that the script does not name, such as a member of a
+C++ COMDAT group that ``ld -r`` keeps apart, does not overlap another one.
+
 mksymtab
 --------
 
diff --git a/content/docs/latest/_sources/platforms/arm/cxd56xx/boards/spresense/index.rst.txt b/content/docs/latest/_sources/platforms/arm/cxd56xx/boards/spresense/index.rst.txt
index 85b12bea3f..517672b3e6 100644
--- a/content/docs/latest/_sources/platforms/arm/cxd56xx/boards/spresense/index.rst.txt
+++ b/content/docs/latest/_sources/platforms/arm/cxd56xx/boards/spresense/index.rst.txt
@@ -213,6 +213,57 @@ nsh_trace
 
 NSH with the system trace subsystem enabled for scheduler/syscall tracing.
 
+nxdoom
+------
+
+NXDoom (``apps/games/NXDoom``) on an ILI9340 display attached to the
+Spresense extension board, with the keys read from the serial console.
+
+The display is used as a frame buffer through ``CONFIG_LCD_FRAMEBUFFER``
+and runs 320x240 in landscape. The keys are read from the serial console,
+and the WAD file is kept in the on-board SPI flash, which is mounted at
+``/mnt/spif``.
+
+To play:
+
+#. Get a WAD file and name it ``doom1.wad``. It has to fit in the 4 MB of
+   flash. See :doc:`/applications/games/nxdoom/index` for what NXDoom can use.
+   The one-level `Squashware <https://github.com/fragglet/squashware/releases>`_
+   IWAD is known to work.
+
+#. Build and flash the configuration as described above, then open the NSH
+   console with a terminal program. Some terminal programs reset the board
+   when they open the serial port, so connect first and only then continue.
+
+#. Receive the WAD file into the flash. ``rz`` waits for the sender for
+   120 seconds, so start the transfer from the terminal program right after::
+
+      nsh> rz -p /mnt/spif
+
+   In Tera Term, for example, use :menuselection:`File --> Transfer -->
+   ZMODEM --> Send` and pick ``doom1.wad``. The file stays in the flash, so
+   this is needed only once.
+
+#. Check that the whole file arrived. The size must match the file on the
+   host::
+
+      nsh> ls -l /mnt/spif
+
+#. Start the game::
+
+      nsh> nxdoom -iwad /mnt/spif/doom1.wad
+
+While the game runs, everything typed in the terminal is read as a game key,
+including what is meant for NSH. Move with the W, A, S and D keys (or the
+arrow keys), fire with J, run with K, strafe with L, use with E and open the
+menu with Q.
+
+The board has 1.5 MB of RAM, so the screen wipe is disabled
+(``CONFIG_GAMES_NXDOOM_NOWIPE``) and the render buffer is placed in
+``.bss``. The flash area that holds the WAD is 4 MB, so the shareware
+``DOOM1.WAD`` (about 4.2 MB) does not fit in it. Only the one-level Squashware
+IWAD has been tried.
+
 ostest
 ------
 
diff --git a/content/docs/latest/_sources/platforms/arm/stm32h7/boards/stm32h7s8-dk/index.rst.txt b/content/docs/latest/_sources/platforms/arm/stm32h7/boards/stm32h7s8-dk/index.rst.txt
index ad8efe2bd4..44ad582131 100644
--- a/content/docs/latest/_sources/platforms/arm/stm32h7/boards/stm32h7s8-dk/index.rst.txt
+++ b/content/docs/latest/_sources/platforms/arm/stm32h7/boards/stm32h7s8-dk/index.rst.txt
@@ -20,8 +20,8 @@ This page describes the NuttX port for the `STMicro SMT32H7S8-DK <https://www.st
 Discovery kit. The board is based on the 600 MHz STM32H7S3L8
 Cortex-M7 microcontroller.
 
-Flashing NSH image
-==================
+Flashing internal NSH image
+===========================
 
 .. note::
    nsh image is restricted in size to fit in and execute from
@@ -44,6 +44,60 @@ Program and verify the internal image, then reset the board::
 
 The internal nsh image presents a shell on the ST-link console on startup.
 
+XIP Boot
+========
+
+The STM32H7S3L8 has 64 KB of internal flash.  The board also carries a
+32 MB MX25UW25645G NOR flash on XSPI2, mapped at ``0x70000000``.  Running
+NuttX from the external flash uses two images:
+
+* ``boot-xip`` runs from internal flash at ``0x08000000``.
+* ``nsh-xip`` executes in place from XSPI2 flash at ``0x70000000``.
+
+The bootloader configures the MX25UW25645G in octal STR memory-mapped mode,
+validates the initial stack pointer and reset vector, and starts the external
+image.  Image management, rollback, integrity checking, and authentication
+are not currently provided.
+
+Flashing bootloader and external image
+======================================
+
+.. note::
+   The ``XSPI2_HSLV`` option byte must be set to ``1`` before using the
+   external flash.  The option byte setting is persistent.
+
+Build the external image::
+
+  cmake -B build/nsh-xip -DBOARD_CONFIG=nucleo-h7s3l8:nsh-xip -GNinja
+  cmake --build build/nsh-xip
+
+Build the internal bootloader::
+
+  cmake -B build/boot-xip -DBOARD_CONFIG=nucleo-h7s3l8:boot-xip -GNinja
+  cmake --build build/boot-xip
+
+Install STM32CubeProgrammer and set ``CUBE_PROGRAMMER`` to the path of its
+command-line executable.  The external loader is supplied by the
+STM32CubeProgrammer installation::
+
+  CUBE_PROGRAMMER=/path/to/STM32_Programmer_CLI
+  EXTERNAL_LOADER="$(dirname "$CUBE_PROGRAMMER")/ExternalLoader/MX66UW1G45G_STM32H7S78-DK.stldr"  
+
+Erase the external flash, then program and verify the XIP image::
+
+  "$CUBE_PROGRAMMER" --connect port=SWD mode=Normal --erase all \
+    -el "$EXTERNAL_LOADER"
+  "$CUBE_PROGRAMMER" --connect port=SWD mode=Normal \
+    --download build/nsh-xip/nuttx.bin 0x70000000 --verify \
+    --skipErase \
+    -el "$EXTERNAL_LOADER"
+
+Program and verify the internal bootloader, then reset the board::
+
+  "$CUBE_PROGRAMMER" --connect port=SWD reset=HWrst \
+    --download build/boot-xip/nuttx.bin 0x08000000 --verify --rst
+
+
 Configurations
 ==============
 
@@ -61,3 +115,25 @@ Provides a basic NuttShell configuration in internal flash and
 includes support for on-board LEDs and user button.  The default
 console is the ST-LINK virtual COM port on USART4.
 
+nsh-xip
+-------
+
+Provides NuttShell, common diagnostic commands, and ``ostest``.  The image is
+linked for execution from XSPI2 flash at ``0x70000000`` and requires an XIP
+bootloader in internal flash.
+
+jumbo-xip
+---------
+
+Much as ``nsh-xip``, but adds Ethernet networking. The IP address is obtained by DHCP.
+
+.. note::
+   ``jumbo-xip`` enables CONFIG_STM32_ETH_GPIO_MDIO to communicate via
+   GPIO pins PB2 and PA2 with LAN8742A Ethernet transceiver on the board,
+   and requires jumper JP6 to be in its default setting. If JP6 is in
+   alternate position, CONFIG_STM32_ETH_GPIO_MDIO must be disabled.
+
+boot-xip
+--------
+
+Provides the internal-flash NuttX bootloader used to start the ``nsh-xip`` or ``jumbo-xip`` image.
diff --git a/content/docs/latest/_sources/testing/nuttx-ci.rst.txt b/content/docs/latest/_sources/testing/nuttx-ci.rst.txt
index 1fb14a9d29..42256b7988 100644
--- a/content/docs/latest/_sources/testing/nuttx-ci.rst.txt
+++ b/content/docs/latest/_sources/testing/nuttx-ci.rst.txt
@@ -154,6 +154,19 @@ commit list cannot be determined, or it causes a cherry-pick conflict,
 ``Fetch-Source`` fails instead of silently testing without the requested
 dependency.
 
+A dependency that is already merged is skipped. ``Fetch-Source`` reads the
+state of each dependency through the GitHub API. If the dependency is merged
+and its merge commit is in the checkout, its commits are already in the tree,
+so CI does not cherry-pick them again. Thus a ``Depends-On:`` declaration can
+stay in the description after the dependency is merged. A dependency that is
+merged into a different branch, or whose merge commit is not in the checkout,
+is applied as before. If CI cannot read the state, it also applies the
+dependency as before.
+
+A dependency that is closed without merge is an error. ``Fetch-Source`` does
+not apply it and fails. Remove the dependency from the ``Depends-On:``
+declaration, or reopen the dependency pull request.
+
 The memory footprint workflow applies the same declarations independently,
 using the same parser and apply sequence (see `Memory Footprint Tracking`_).
 
@@ -161,9 +174,10 @@ When a valid dependency report is available, the follow-up comment reports one
 of three outcomes:
 
 * successfully applied dependencies and their fetched head SHAs (abbreviated in
-  the comment)
+  the comment); a skipped dependency is marked "already merged, skipped"
 * a declaration from which no valid dependency could be parsed
-* valid dependencies that could not be applied and the failure reason
+* valid dependencies that could not be applied and the failure reason; a
+  dependency that is closed without merge is marked "closed without merge"
 
 The write-capable follow-up workflow does not execute fork code. It validates
 the untrusted report's structure, repository allow-list, run and current PR
@@ -257,4 +271,6 @@ The memory report applies the same ``Depends-On:`` declarations as the Build
 workflow (see `Pull Request Dependencies`_), so a pull request that only builds
 on top of another one is measured against a tree that compiles. The declaration
 rules and the ``master``-only gate are the same. A dependency that cannot be
-fetched or applied fails the job in both workflows.
+fetched or applied fails the job in both workflows. Both workflows skip a
+dependency that is already merged, and fail on a dependency that is closed
+without merge.
diff --git a/content/docs/latest/applications/games/nxdoom/index.html b/content/docs/latest/applications/games/nxdoom/index.html
index bd2ac2791e..d35e9cbf64 100644
--- a/content/docs/latest/applications/games/nxdoom/index.html
+++ b/content/docs/latest/applications/games/nxdoom/index.html
@@ -271,6 +271,16 @@ driver that reports no modifiers at all, a matrix keyboard for instance,
 leaves those three actions on keys the game cannot see, and they have to
 be rebound to play.</p>
 </div>
+<div class="admonition note">
+<p class="admonition-title">Note</p>
+<p>A board without a keyboard driver can read the keys from a serial
+terminal instead by enabling <code class="docutils literal notranslate"><span class="pre">CONFIG_GAMES_NXDOOM_UARTKBD</span></code> and
+pointing <code class="docutils literal notranslate"><span class="pre">CONFIG_GAMES_NXDOOM_KBDPATH</span></code> at the tty, for example
+<code class="docutils literal notranslate"><span class="pre">/dev/console</span></code>. A terminal reports a key press but never its
+release, so each key is released again 250 ms after its last byte.
+W, A, S, D and the arrow keys move, J fires, K runs, L strafes, E or
+space uses and Q or Esc opens the menu.</p>
+</div>
 <section id="minimum-requirements">
 <h2>Minimum requirements<a class="headerlink" href="#minimum-requirements" title="Permalink to this heading"></a></h2>
 <p>The minimum requirements for playing NXDoom are:</p>
diff --git a/content/docs/latest/guides/chip-specific/stm32_ports.html b/content/docs/latest/guides/chip-specific/stm32_ports.html
index fd8da462da..47d9505c1c 100644
--- a/content/docs/latest/guides/chip-specific/stm32_ports.html
+++ b/content/docs/latest/guides/chip-specific/stm32_ports.html
@@ -703,7 +703,7 @@ exact IP core version has not been documented yet.</p>
 <td><p>not supported</p></td>
 </tr>
 <tr class="row-odd"><td><p>DBGMCU</p></td>
-<td><p>v1</p></td>
+<td><p>v3</p></td>
 <td><p>not supported</p></td>
 </tr>
 <tr class="row-even"><td><p>DMA</p></td>
@@ -731,8 +731,8 @@ exact IP core version has not been documented yet.</p>
 <td><p>arch/arm/src/common/stm32/stm32_i2c_m0_v1.c</p></td>
 </tr>
 <tr class="row-even"><td><p>IWDG</p></td>
-<td><p>v1</p></td>
-<td><p>arch/arm/src/common/stm32/stm32_iwdg_m0_v1.c</p></td>
+<td><p>v2</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_iwdg.c</p></td>
 </tr>
 <tr class="row-odd"><td><p>PWR</p></td>
 <td><p>G0</p></td>
@@ -767,8 +767,8 @@ exact IP core version has not been documented yet.</p>
 <td><p>arch/arm/src/common/stm32/stm32_usbdev_m0_v1.c</p></td>
 </tr>
 <tr class="row-odd"><td><p>WWDG</p></td>
-<td><p>v1</p></td>
-<td><p>arch/arm/src/common/stm32/stm32_wwdg_m0_v1.c</p></td>
+<td><p>v2</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_wwdg.c</p></td>
 </tr>
 </tbody>
 </table>
@@ -812,7 +812,7 @@ exact IP core version has not been documented yet.</p>
 <td><p>not supported</p></td>
 </tr>
 <tr class="row-odd"><td><p>DBGMCU</p></td>
-<td><p>to be done</p></td>
+<td><p>v5</p></td>
 <td><p>not supported</p></td>
 </tr>
 <tr class="row-even"><td><p>EXTI</p></td>
@@ -848,8 +848,8 @@ exact IP core version has not been documented yet.</p>
 <td><p>not supported</p></td>
 </tr>
 <tr class="row-even"><td><p>IWDG</p></td>
-<td><p>to be done</p></td>
-<td><p>not supported</p></td>
+<td><p>v3</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_iwdg.c</p></td>
 </tr>
 <tr class="row-odd"><td><p>LPDMA</p></td>
 <td><p>GPDMA</p></td>
@@ -908,8 +908,8 @@ exact IP core version has not been documented yet.</p>
 <td><p>not supported</p></td>
 </tr>
 <tr class="row-odd"><td><p>WWDG</p></td>
-<td><p>to be done</p></td>
-<td><p>not supported</p></td>
+<td><p>v3</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_wwdg.c</p></td>
 </tr>
 </tbody>
 </table>
@@ -966,7 +966,7 @@ exact IP core version has not been documented yet.</p>
 </tr>
 <tr class="row-even"><td><p>IWDG</p></td>
 <td><p>v1</p></td>
-<td><p>arch/arm/src/common/stm32/stm32_iwdg_m0_v1.c</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_iwdg.c</p></td>
 </tr>
 <tr class="row-odd"><td><p>PWR</p></td>
 <td><p>v1</p></td>
@@ -1002,7 +1002,7 @@ exact IP core version has not been documented yet.</p>
 </tr>
 <tr class="row-odd"><td><p>WWDG</p></td>
 <td><p>v1</p></td>
-<td><p>arch/arm/src/common/stm32/stm32_wwdg_m0_v1.c</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_wwdg.c</p></td>
 </tr>
 </tbody>
 </table>
@@ -1067,7 +1067,7 @@ exact IP core version has not been documented yet.</p>
 </tr>
 <tr class="row-even"><td><p>IWDG</p></td>
 <td><p>v1</p></td>
-<td><p>arch/arm/src/common/stm32/stm32_iwdg_m3m4_v1.c</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_iwdg.c</p></td>
 </tr>
 <tr class="row-odd"><td><p>PWR</p></td>
 <td><p>v1</p></td>
@@ -1103,7 +1103,7 @@ exact IP core version has not been documented yet.</p>
 </tr>
 <tr class="row-odd"><td><p>WWDG</p></td>
 <td><p>v1</p></td>
-<td><p>arch/arm/src/common/stm32/stm32_wwdg_m3m4_v1.c</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_wwdg.c</p></td>
 </tr>
 </tbody>
 </table>
@@ -1168,7 +1168,7 @@ exact IP core version has not been documented yet.</p>
 </tr>
 <tr class="row-even"><td><p>IWDG</p></td>
 <td><p>v1</p></td>
-<td><p>arch/arm/src/common/stm32/stm32_iwdg_m3m4_v1.c</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_iwdg.c</p></td>
 </tr>
 <tr class="row-odd"><td><p>RCC</p></td>
 <td><p>to be done</p></td>
@@ -1204,7 +1204,7 @@ exact IP core version has not been documented yet.</p>
 </tr>
 <tr class="row-odd"><td><p>WWDG</p></td>
 <td><p>v1</p></td>
-<td><p>arch/arm/src/common/stm32/stm32_wwdg_m3m4_v1.c</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_wwdg.c</p></td>
 </tr>
 </tbody>
 </table>
@@ -1265,7 +1265,7 @@ exact IP core version has not been documented yet.</p>
 </tr>
 <tr class="row-odd"><td><p>IWDG</p></td>
 <td><p>v1</p></td>
-<td><p>arch/arm/src/common/stm32/stm32_iwdg_m3m4_v1.c</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_iwdg.c</p></td>
 </tr>
 <tr class="row-even"><td><p>OPAMP</p></td>
 <td><p>v1</p></td>
@@ -1305,7 +1305,7 @@ exact IP core version has not been documented yet.</p>
 </tr>
 <tr class="row-odd"><td><p>WWDG</p></td>
 <td><p>v1</p></td>
-<td><p>arch/arm/src/common/stm32/stm32_wwdg_m3m4_v1.c</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_wwdg.c</p></td>
 </tr>
 </tbody>
 </table>
@@ -1374,7 +1374,7 @@ exact IP core version has not been documented yet.</p>
 </tr>
 <tr class="row-odd"><td><p>IWDG</p></td>
 <td><p>v1</p></td>
-<td><p>arch/arm/src/common/stm32/stm32_iwdg_m3m4_v1.c</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_iwdg.c</p></td>
 </tr>
 <tr class="row-even"><td><p>LTDC</p></td>
 <td><p>v1</p></td>
@@ -1418,7 +1418,7 @@ exact IP core version has not been documented yet.</p>
 </tr>
 <tr class="row-even"><td><p>WWDG</p></td>
 <td><p>v1</p></td>
-<td><p>arch/arm/src/common/stm32/stm32_wwdg_m3m4_v1.c</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_wwdg.c</p></td>
 </tr>
 </tbody>
 </table>
@@ -1486,8 +1486,8 @@ exact IP core version has not been documented yet.</p>
 <td><p>arch/arm/src/common/stm32/stm32_i2c_m3m4_v2.c</p></td>
 </tr>
 <tr class="row-odd"><td><p>IWDG</p></td>
-<td><p>v1</p></td>
-<td><p>arch/arm/src/common/stm32/stm32_iwdg_m3m4_v1.c</p></td>
+<td><p>v2</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_iwdg.c</p></td>
 </tr>
 <tr class="row-even"><td><p>OPAMP</p></td>
 <td><p>v1</p></td>
@@ -1522,8 +1522,8 @@ exact IP core version has not been documented yet.</p>
 <td><p>arch/arm/src/common/stm32/stm32_otgfsdev_m3m4_v1.c</p></td>
 </tr>
 <tr class="row-even"><td><p>WWDG</p></td>
-<td><p>v1</p></td>
-<td><p>arch/arm/src/common/stm32/stm32_wwdg_m3m4_v1.c</p></td>
+<td><p>v2</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_wwdg.c</p></td>
 </tr>
 </tbody>
 </table>
@@ -1580,7 +1580,7 @@ exact IP core version has not been documented yet.</p>
 </tr>
 <tr class="row-even"><td><p>IWDG</p></td>
 <td><p>v1</p></td>
-<td><p>arch/arm/src/stm32l4/stm32l4_iwdg.c</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_iwdg.c</p></td>
 </tr>
 <tr class="row-odd"><td><p>LPTIM</p></td>
 <td><p>to be done</p></td>
@@ -1630,19 +1630,23 @@ exact IP core version has not been documented yet.</p>
 <td><p>OTG FS</p></td>
 <td><p>arch/arm/src/stm32l4/stm32l4_otgfsdev.c</p></td>
 </tr>
-<tr class="row-odd"><td><p>PULSECOUNT</p></td>
+<tr class="row-odd"><td><p>WWDG</p></td>
+<td><p>v1</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_wwdg.c</p></td>
+</tr>
+<tr class="row-even"><td><p>PULSECOUNT</p></td>
 <td><p>n/a</p></td>
 <td><p>arch/arm/src/common/stm32/stm32_pulsecount.c</p></td>
 </tr>
-<tr class="row-even"><td><p>PWM</p></td>
+<tr class="row-odd"><td><p>PWM</p></td>
 <td><p>n/a</p></td>
 <td><p>arch/arm/src/stm32l4/stm32l4_pwm.c</p></td>
 </tr>
-<tr class="row-odd"><td><p>QENCODER</p></td>
+<tr class="row-even"><td><p>QENCODER</p></td>
 <td><p>n/a</p></td>
 <td><p>arch/arm/src/common/stm32/stm32_qencoder.c</p></td>
 </tr>
-<tr class="row-even"><td><p>USB host</p></td>
+<tr class="row-odd"><td><p>USB host</p></td>
 <td><p>n/a</p></td>
 <td><p>arch/arm/src/stm32l4/stm32l4_otgfshost.c</p></td>
 </tr>
@@ -1705,7 +1709,7 @@ exact IP core version has not been documented yet.</p>
 </tr>
 <tr class="row-odd"><td><p>IWDG</p></td>
 <td><p>v1</p></td>
-<td><p>not supported</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_iwdg.c</p></td>
 </tr>
 <tr class="row-even"><td><p>LTDC</p></td>
 <td><p>to be done</p></td>
@@ -1753,7 +1757,7 @@ exact IP core version has not been documented yet.</p>
 </tr>
 <tr class="row-odd"><td><p>WWDG</p></td>
 <td><p>v1</p></td>
-<td><p>not supported</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_wwdg.c</p></td>
 </tr>
 <tr class="row-even"><td><p>BBSRAM</p></td>
 <td><p>n/a</p></td>
@@ -1841,8 +1845,8 @@ exact IP core version has not been documented yet.</p>
 <td><p>arch/arm/src/common/stm32/stm32_i2c_m0_v1.c</p></td>
 </tr>
 <tr class="row-even"><td><p>IWDG</p></td>
-<td><p>v1</p></td>
-<td><p>arch/arm/src/common/stm32/stm32_iwdg_m0_v1.c</p></td>
+<td><p>v2</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_iwdg.c</p></td>
 </tr>
 <tr class="row-odd"><td><p>PWR</p></td>
 <td><p>G0</p></td>
@@ -1881,8 +1885,8 @@ exact IP core version has not been documented yet.</p>
 <td><p>arch/arm/src/common/stm32/stm32_usbdev_m0_v1.c</p></td>
 </tr>
 <tr class="row-even"><td><p>WWDG</p></td>
-<td><p>v1</p></td>
-<td><p>arch/arm/src/common/stm32/stm32_wwdg_m0_v1.c</p></td>
+<td><p>v2</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_wwdg.c</p></td>
 </tr>
 </tbody>
 </table>
@@ -1942,8 +1946,8 @@ exact IP core version has not been documented yet.</p>
 <td><p>arch/arm/src/stm32h5/stm32_i2c.c</p></td>
 </tr>
 <tr class="row-odd"><td><p>IWDG</p></td>
-<td><p>v1</p></td>
-<td><p>arch/arm/src/stm32h5/stm32_iwdg.c</p></td>
+<td><p>v3</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_iwdg.c</p></td>
 </tr>
 <tr class="row-even"><td><p>ICACHE</p></td>
 <td><p>to be done</p></td>
@@ -1978,8 +1982,8 @@ exact IP core version has not been documented yet.</p>
 <td><p>arch/arm/src/stm32h5/stm32_usbfs.c</p></td>
 </tr>
 <tr class="row-even"><td><p>WWDG</p></td>
-<td><p>v1</p></td>
-<td><p>arch/arm/src/stm32h7/stm32_wwdg.c</p></td>
+<td><p>v3</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_wwdg.c</p></td>
 </tr>
 <tr class="row-odd"><td><p>LPTIM</p></td>
 <td><p>n/a</p></td>
@@ -2067,8 +2071,8 @@ exact IP core version has not been documented yet.</p>
 <td><p>arch/arm/src/stm32h7/stm32_i2c.c</p></td>
 </tr>
 <tr class="row-odd"><td><p>IWDG</p></td>
-<td><p>v1</p></td>
-<td><p>arch/arm/src/stm32h7/stm32_iwdg.c</p></td>
+<td><p>v2, H7RS v3</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_iwdg.c</p></td>
 </tr>
 <tr class="row-even"><td><p>LTDC</p></td>
 <td><p>to be done</p></td>
@@ -2119,8 +2123,8 @@ exact IP core version has not been documented yet.</p>
 <td><p>arch/arm/src/stm32h7/stm32_otgdev.c</p></td>
 </tr>
 <tr class="row-even"><td><p>WWDG</p></td>
-<td><p>v1</p></td>
-<td><p>arch/arm/src/stm32h7/stm32_wwdg.c</p></td>
+<td><p>v2, H7RS v3</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_wwdg.c</p></td>
 </tr>
 <tr class="row-odd"><td><p>AES/CRYP</p></td>
 <td><p>n/a</p></td>
@@ -2201,7 +2205,7 @@ exact IP core version has not been documented yet.</p>
 </tr>
 <tr class="row-even"><td><p>IWDG</p></td>
 <td><p>v1</p></td>
-<td><p>arch/arm/src/common/stm32/stm32_iwdg_m0_v1.c</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_iwdg.c</p></td>
 </tr>
 <tr class="row-odd"><td><p>PWR</p></td>
 <td><p>v1</p></td>
@@ -2237,7 +2241,7 @@ exact IP core version has not been documented yet.</p>
 </tr>
 <tr class="row-odd"><td><p>WWDG</p></td>
 <td><p>v1</p></td>
-<td><p>arch/arm/src/common/stm32/stm32_wwdg_m0_v1.c</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_wwdg.c</p></td>
 </tr>
 </tbody>
 </table>
@@ -2294,7 +2298,7 @@ exact IP core version has not been documented yet.</p>
 </tr>
 <tr class="row-even"><td><p>IWDG</p></td>
 <td><p>v1</p></td>
-<td><p>arch/arm/src/common/stm32/stm32_iwdg_m3m4_v1.c</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_iwdg.c</p></td>
 </tr>
 <tr class="row-odd"><td><p>LCD</p></td>
 <td><p>to be done</p></td>
@@ -2334,7 +2338,7 @@ exact IP core version has not been documented yet.</p>
 </tr>
 <tr class="row-even"><td><p>WWDG</p></td>
 <td><p>v1</p></td>
-<td><p>arch/arm/src/common/stm32/stm32_wwdg_m3m4_v1.c</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_wwdg.c</p></td>
 </tr>
 </tbody>
 </table>
@@ -2385,46 +2389,54 @@ exact IP core version has not been documented yet.</p>
 <td><p>to be done</p></td>
 <td><p>not supported</p></td>
 </tr>
-<tr class="row-odd"><td><p>OCTOSPI</p></td>
+<tr class="row-odd"><td><p>IWDG</p></td>
+<td><p>v2</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_iwdg.c</p></td>
+</tr>
+<tr class="row-even"><td><p>OCTOSPI</p></td>
 <td><p>to be done</p></td>
 <td><p>not supported</p></td>
 </tr>
-<tr class="row-even"><td><p>PWR</p></td>
+<tr class="row-odd"><td><p>PWR</p></td>
 <td><p>to be done</p></td>
 <td><p>arch/arm/src/stm32l5/stm32l5_pwr.c</p></td>
 </tr>
-<tr class="row-odd"><td><p>RCC</p></td>
+<tr class="row-even"><td><p>RCC</p></td>
 <td><p>to be done</p></td>
 <td><p>arch/arm/src/stm32l5/stm32l5_rcc.c</p></td>
 </tr>
-<tr class="row-even"><td><p>RNG</p></td>
+<tr class="row-odd"><td><p>RNG</p></td>
 <td><p>to be done</p></td>
 <td><p>not supported</p></td>
 </tr>
-<tr class="row-odd"><td><p>RTC</p></td>
+<tr class="row-even"><td><p>RTC</p></td>
 <td><p>to be done</p></td>
 <td><p>not supported</p></td>
 </tr>
-<tr class="row-even"><td><p>SDMMC</p></td>
+<tr class="row-odd"><td><p>SDMMC</p></td>
 <td><p>to be done</p></td>
 <td><p>not supported</p></td>
 </tr>
-<tr class="row-odd"><td><p>SPI/I2S</p></td>
+<tr class="row-even"><td><p>SPI/I2S</p></td>
 <td><p>to be done</p></td>
 <td><p>arch/arm/src/stm32l5/stm32l5_spi.c</p></td>
 </tr>
-<tr class="row-even"><td><p>TIM/LPTIM</p></td>
+<tr class="row-odd"><td><p>TIM/LPTIM</p></td>
 <td><p>v2</p></td>
 <td><p>arch/arm/src/common/stm32/stm32_tim.c</p></td>
 </tr>
-<tr class="row-odd"><td><p>USART/LPUART</p></td>
+<tr class="row-even"><td><p>USART/LPUART</p></td>
 <td><p>v3</p></td>
 <td><p>arch/arm/src/stm32l5/stm32l5_serial.c</p></td>
 </tr>
-<tr class="row-even"><td><p>USB</p></td>
+<tr class="row-odd"><td><p>USB</p></td>
 <td><p>device</p></td>
 <td><p>not supported</p></td>
 </tr>
+<tr class="row-even"><td><p>WWDG</p></td>
+<td><p>v2</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_wwdg.c</p></td>
+</tr>
 </tbody>
 </table>
 </section>
@@ -2470,30 +2482,38 @@ exact IP core version has not been documented yet.</p>
 <td><p>to be done</p></td>
 <td><p>not supported</p></td>
 </tr>
-<tr class="row-even"><td><p>PWR</p></td>
+<tr class="row-even"><td><p>IWDG</p></td>
+<td><p>v3</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_iwdg.c</p></td>
+</tr>
+<tr class="row-odd"><td><p>PWR</p></td>
 <td><p>to be done</p></td>
 <td><p>arch/arm/src/stm32n6/stm32_pwr.c</p></td>
 </tr>
-<tr class="row-odd"><td><p>RCC</p></td>
+<tr class="row-even"><td><p>RCC</p></td>
 <td><p>to be done</p></td>
 <td><p>arch/arm/src/stm32n6/stm32_rcc.c</p></td>
 </tr>
-<tr class="row-even"><td><p>SPI/I2S</p></td>
+<tr class="row-odd"><td><p>SPI/I2S</p></td>
 <td><p>to be done</p></td>
 <td><p>not supported</p></td>
 </tr>
-<tr class="row-odd"><td><p>TIM</p></td>
+<tr class="row-even"><td><p>TIM</p></td>
 <td><p>v3</p></td>
 <td><p>arch/arm/src/common/stm32/stm32_tim.c</p></td>
 </tr>
-<tr class="row-even"><td><p>USART/LPUART</p></td>
+<tr class="row-odd"><td><p>USART/LPUART</p></td>
 <td><p>v4</p></td>
 <td><p>arch/arm/src/stm32n6/stm32_serial.c</p></td>
 </tr>
-<tr class="row-odd"><td><p>USB</p></td>
+<tr class="row-even"><td><p>USB</p></td>
 <td><p>device</p></td>
 <td><p>not supported</p></td>
 </tr>
+<tr class="row-odd"><td><p>WWDG</p></td>
+<td><p>v3</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_wwdg.c</p></td>
+</tr>
 <tr class="row-even"><td><p>XSPI</p></td>
 <td><p>to be done</p></td>
 <td><p>not supported</p></td>
@@ -2552,8 +2572,8 @@ exact IP core version has not been documented yet.</p>
 <td><p>arch/arm/src/common/stm32/stm32_i2c_m0_v1.c</p></td>
 </tr>
 <tr class="row-even"><td><p>IWDG</p></td>
-<td><p>v1</p></td>
-<td><p>arch/arm/src/common/stm32/stm32_iwdg_m0_v1.c</p></td>
+<td><p>v3</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_iwdg.c</p></td>
 </tr>
 <tr class="row-odd"><td><p>LCD</p></td>
 <td><p>to be done</p></td>
@@ -2604,8 +2624,8 @@ exact IP core version has not been documented yet.</p>
 <td><p>not supported</p></td>
 </tr>
 <tr class="row-odd"><td><p>WWDG</p></td>
-<td><p>v1</p></td>
-<td><p>arch/arm/src/common/stm32/stm32_wwdg_m0_v1.c</p></td>
+<td><p>v3</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_wwdg.c</p></td>
 </tr>
 </tbody>
 </table>
@@ -2653,7 +2673,7 @@ exact IP core version has not been documented yet.</p>
 <td><p>not supported</p></td>
 </tr>
 <tr class="row-even"><td><p>DBGMCU</p></td>
-<td><p>to be done</p></td>
+<td><p>v5</p></td>
 <td><p>not supported</p></td>
 </tr>
 <tr class="row-odd"><td><p>DLYB</p></td>
@@ -2704,13 +2724,13 @@ exact IP core version has not been documented yet.</p>
 <td><p>to be done</p></td>
 <td><p>not supported</p></td>
 </tr>
-<tr class="row-odd"><td><p>IWDG</p></td>
+<tr class="row-odd"><td><p>LPTIM</p></td>
 <td><p>to be done</p></td>
 <td><p>not supported</p></td>
 </tr>
-<tr class="row-even"><td><p>LPTIM</p></td>
-<td><p>to be done</p></td>
-<td><p>not supported</p></td>
+<tr class="row-even"><td><p>IWDG</p></td>
+<td><p>v3</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_iwdg.c</p></td>
 </tr>
 <tr class="row-odd"><td><p>LPUART</p></td>
 <td><p>M33 v3</p></td>
@@ -2793,8 +2813,8 @@ exact IP core version has not been documented yet.</p>
 <td><p>not supported</p></td>
 </tr>
 <tr class="row-odd"><td><p>WWDG</p></td>
-<td><p>to be done</p></td>
-<td><p>not supported</p></td>
+<td><p>v3</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_wwdg.c</p></td>
 </tr>
 </tbody>
 </table>
@@ -2946,42 +2966,50 @@ exact IP core version has not been documented yet.</p>
 <td><p>to be done</p></td>
 <td><p>arch/arm/src/stm32wb/stm32wb_ipcc.c</p></td>
 </tr>
-<tr class="row-odd"><td><p>PWR</p></td>
+<tr class="row-odd"><td><p>IWDG</p></td>
+<td><p>v2</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_iwdg.c</p></td>
+</tr>
+<tr class="row-even"><td><p>PWR</p></td>
 <td><p>to be done</p></td>
 <td><p>arch/arm/src/stm32wb/stm32wb_pwr.c</p></td>
 </tr>
-<tr class="row-even"><td><p>Radio</p></td>
+<tr class="row-odd"><td><p>Radio</p></td>
 <td><p>to be done</p></td>
 <td><p>not supported</p></td>
 </tr>
-<tr class="row-odd"><td><p>RCC</p></td>
+<tr class="row-even"><td><p>RCC</p></td>
 <td><p>to be done</p></td>
 <td><p>arch/arm/src/stm32wb/stm32wb_rcc.c</p></td>
 </tr>
-<tr class="row-even"><td><p>RNG</p></td>
+<tr class="row-odd"><td><p>RNG</p></td>
 <td><p>to be done</p></td>
 <td><p>not supported</p></td>
 </tr>
-<tr class="row-odd"><td><p>RTC</p></td>
+<tr class="row-even"><td><p>RTC</p></td>
 <td><p>to be done</p></td>
 <td><p>arch/arm/src/stm32wb/stm32wb_rtc.c</p></td>
 </tr>
-<tr class="row-even"><td><p>SPI/I2S</p></td>
+<tr class="row-odd"><td><p>SPI/I2S</p></td>
 <td><p>to be done</p></td>
 <td><p>arch/arm/src/stm32wb/stm32wb_spi.c</p></td>
 </tr>
-<tr class="row-odd"><td><p>TIM/LPTIM</p></td>
+<tr class="row-even"><td><p>TIM/LPTIM</p></td>
 <td><p>v2</p></td>
 <td><p>arch/arm/src/common/stm32/stm32_tim.c</p></td>
 </tr>
-<tr class="row-even"><td><p>USART/LPUART</p></td>
+<tr class="row-odd"><td><p>USART/LPUART</p></td>
 <td><p>v4</p></td>
 <td><p>arch/arm/src/stm32wb/stm32wb_serial.c</p></td>
 </tr>
-<tr class="row-odd"><td><p>USB</p></td>
+<tr class="row-even"><td><p>USB</p></td>
 <td><p>device</p></td>
 <td><p>not supported</p></td>
 </tr>
+<tr class="row-odd"><td><p>WWDG</p></td>
+<td><p>v2</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_wwdg.c</p></td>
+</tr>
 </tbody>
 </table>
 </section>
@@ -3031,42 +3059,50 @@ exact IP core version has not been documented yet.</p>
 <td><p>to be done</p></td>
 <td><p>arch/arm/src/stm32wl5/stm32wl5_ipcc.c</p></td>
 </tr>
-<tr class="row-odd"><td><p>PWR</p></td>
+<tr class="row-odd"><td><p>IWDG</p></td>
+<td><p>v2</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_iwdg.c</p></td>
+</tr>
+<tr class="row-even"><td><p>PWR</p></td>
 <td><p>to be done</p></td>
 <td><p>arch/arm/src/stm32wl5/stm32wl5_pwr.c</p></td>
 </tr>
-<tr class="row-even"><td><p>Radio</p></td>
+<tr class="row-odd"><td><p>Radio</p></td>
 <td><p>to be done</p></td>
 <td><p>not supported</p></td>
 </tr>
-<tr class="row-odd"><td><p>RCC</p></td>
+<tr class="row-even"><td><p>RCC</p></td>
 <td><p>to be done</p></td>
 <td><p>arch/arm/src/stm32wl5/stm32wl5_rcc.c</p></td>
 </tr>
-<tr class="row-even"><td><p>RNG</p></td>
+<tr class="row-odd"><td><p>RNG</p></td>
 <td><p>to be done</p></td>
 <td><p>not supported</p></td>
 </tr>
-<tr class="row-odd"><td><p>RTC</p></td>
+<tr class="row-even"><td><p>RTC</p></td>
 <td><p>to be done</p></td>
 <td><p>not supported</p></td>
 </tr>
-<tr class="row-even"><td><p>SPI/I2S</p></td>
+<tr class="row-odd"><td><p>SPI/I2S</p></td>
 <td><p>to be done</p></td>
 <td><p>arch/arm/src/stm32wl5/stm32wl5_spi.c</p></td>
 </tr>
-<tr class="row-odd"><td><p>TIM/LPTIM</p></td>
+<tr class="row-even"><td><p>TIM/LPTIM</p></td>
 <td><p>v2</p></td>
 <td><p>arch/arm/src/common/stm32/stm32_tim.c</p></td>
 </tr>
-<tr class="row-even"><td><p>USART/LPUART</p></td>
+<tr class="row-odd"><td><p>USART/LPUART</p></td>
 <td><p>v3</p></td>
 <td><p>arch/arm/src/stm32wl5/stm32wl5_serial.c</p></td>
 </tr>
-<tr class="row-odd"><td><p>USB</p></td>
+<tr class="row-even"><td><p>USB</p></td>
 <td><p>to be done</p></td>
 <td><p>not supported</p></td>
 </tr>
+<tr class="row-odd"><td><p>WWDG</p></td>
+<td><p>v2</p></td>
+<td><p>arch/arm/src/common/stm32/stm32_wwdg.c</p></td>
+</tr>
 </tbody>
 </table>
 </section>
diff --git a/content/docs/latest/guides/programs/fully_linked_elf.html b/content/docs/latest/guides/programs/fully_linked_elf.html
index 3ff63bae0b..84c628419e 100644
--- a/content/docs/latest/guides/programs/fully_linked_elf.html
+++ b/content/docs/latest/guides/programs/fully_linked_elf.html
@@ -488,7 +488,7 @@ NuttX package: <code class="docutils literal notranslate"><span class="pre">nutt
 <div class="admonition-here-is-an-alternative-minimal-and-possibly-outdated-version admonition">
 <p class="admonition-title">Here is an alternative minimal (and possibly outdated) version</p>
 <div class="sphinx_collapse docutils">
-<input class="sphinx_collapse__input" id="22e88a28-297c-4c61-85f5-4bce2b3cf454" name="22e88a28-297c-4c61-85f5-4bce2b3cf454" type="checkbox"><label class="sphinx_collapse__label" for="22e88a28-297c-4c61-85f5-4bce2b3cf454"><i class="sphinx_collapse__icon"></i>Show content:</label><div class="sphinx_collapse__content docutils">
+<input class="sphinx_collapse__input" id="8e444d83-ac71-4b7a-92d1-456447692cc6" name="8e444d83-ac71-4b7a-92d1-456447692cc6" type="checkbox"><label class="sphinx_collapse__label" for="8e444d83-ac71-4b7a-92d1-456447692cc6"><i class="sphinx_collapse__icon"></i>Show content:</label><div class="sphinx_collapse__content docutils">
 <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>SECTIONS
 {
 .text 0x00000000 :
diff --git a/content/docs/latest/guides/programs/partially_linked_elf.html b/content/docs/latest/guides/programs/partially_linked_elf.html
index 7742a89a06..b9fc4904da 100644
--- a/content/docs/latest/guides/programs/partially_linked_elf.html
+++ b/content/docs/latest/guides/programs/partially_linked_elf.html
@@ -514,7 +514,7 @@ NuttX package: <code class="docutils literal notranslate"><span class="pre">nutt
 <div class="admonition-here-is-an-alternative-minimal-and-possibly-outdated-version admonition">
 <p class="admonition-title">Here is an alternative minimal (and possibly outdated) version</p>
 <div class="sphinx_collapse docutils">
-<input class="sphinx_collapse__input" id="d05d8cc7-442c-4dad-b212-1af0f4635bda" name="d05d8cc7-442c-4dad-b212-1af0f4635bda" type="checkbox"><label class="sphinx_collapse__label" for="d05d8cc7-442c-4dad-b212-1af0f4635bda"><i class="sphinx_collapse__icon"></i>Show content:</label><div class="sphinx_collapse__content docutils">
+<input class="sphinx_collapse__input" id="04e6c284-cb20-46da-94a6-d6c240cd086b" name="04e6c284-cb20-46da-94a6-d6c240cd086b" type="checkbox"><label class="sphinx_collapse__label" for="04e6c284-cb20-46da-94a6-d6c240cd086b"><i class="sphinx_collapse__icon"></i>Show content:</label><div class="sphinx_collapse__content docutils">
 <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>SECTIONS
 {
 .text 0x00000000 :
diff --git a/content/docs/latest/objects.inv b/content/docs/latest/objects.inv
index 6a28d55beb..eab56ebd6f 100644
Binary files a/content/docs/latest/objects.inv and b/content/docs/latest/objects.inv differ
diff --git a/content/docs/latest/os/binfmt/nxflat.html b/content/docs/latest/os/binfmt/nxflat.html
index c2e2a501ad..893f164ee1 100644
--- a/content/docs/latest/os/binfmt/nxflat.html
+++ b/content/docs/latest/os/binfmt/nxflat.html
@@ -312,6 +312,18 @@ will be unable to correctly access data memory. Special logic
 is in place to handle some NuttX callbacks: Signal callbacks
 and watchdog timer callbacks. But other callbacks (like those
 used with qsort() must be avoided in an NXFLAT module.</p></li>
+<li><p><strong>Emulated Thread-Local Storage Only</strong>:
+A module can use <code class="docutils literal notranslate"><span class="pre">__thread</span></code> and C++ <code class="docutils literal notranslate"><span class="pre">thread_local</span></code> variables only
+when the toolchain emulates TLS (GCC configured with <code class="docutils literal notranslate"><span class="pre">--disable-tls</span></code>).
+The compiler then calls <code class="docutils literal notranslate"><span class="pre">__emutls_get_address()</span></code>, which the module
+imports from the base code like any other function. <code class="docutils literal notranslate"><span class="pre">ldnxflat</span></code>
+refuses a module that holds native TLS sections (<code class="docutils literal notranslate"><span class="pre">.tdata</span></code>,
+<code class="docutils literal notranslate"><span class="pre">.tbss</span></code>).</p></li>
+<li><p><strong>No Static Constructors</strong>:
+Nothing runs the static constructors and destructors of a module
+(<code class="docutils literal notranslate"><span class="pre">.init_array</span></code>, <code class="docutils literal notranslate"><span class="pre">.fini_array</span></code>), so <code class="docutils literal notranslate"><span class="pre">ldnxflat</span></code> refuses a module
+that has them. A C++ <code class="docutils literal notranslate"><span class="pre">thread_local</span></code> object needs no static
+constructor: each thread constructs it at its first use.</p></li>
 </ul>
 </div></blockquote>
 </section>
@@ -405,6 +417,10 @@ object is what these produce, in this order:
 <p><code class="docutils literal notranslate"><span class="pre">-e</span></code> and <code class="docutils literal notranslate"><span class="pre">-o</span></code> are required.  The in-tree <code class="docutils literal notranslate"><span class="pre">ldnxflat</span></code> has no <code class="docutils literal notranslate"><span class="pre">-d</span></code>
 option, which the older, out-of-tree tool had.  It converts ARM objects
 only, and refuses an object for another machine.</p>
+<p><code class="docutils literal notranslate"><span class="pre">ldnxflat</span></code> places the sections of each segment itself, in the order of
+the section headers, and does not use the addresses that the linker script
+gives.  So a section that the script does not name, such as a member of a
+C++ COMDAT group that <code class="docutils literal notranslate"><span class="pre">ld</span> <span class="pre">-r</span></code> keeps apart, does not overlap another one.</p>
 </section>
 <section id="mksymtab">
 <h3>mksymtab<a class="headerlink" href="#mksymtab" title="Permalink to this heading"></a></h3>
diff --git a/content/docs/latest/platforms/arm/cxd56xx/boards/spresense/index.html b/content/docs/latest/platforms/arm/cxd56xx/boards/spresense/index.html
index dda9317373..959db3a846 100644
--- a/content/docs/latest/platforms/arm/cxd56xx/boards/spresense/index.html
+++ b/content/docs/latest/platforms/arm/cxd56xx/boards/spresense/index.html
@@ -434,6 +434,54 @@ and microSD automount, started from the board <code class="docutils literal notr
 <h3>nsh_trace<a class="headerlink" href="#nsh-trace" title="Permalink to this heading"></a></h3>
 <p>NSH with the system trace subsystem enabled for scheduler/syscall tracing.</p>
 </section>
+<section id="nxdoom">
+<h3>nxdoom<a class="headerlink" href="#nxdoom" title="Permalink to this heading"></a></h3>
+<p>NXDoom (<code class="docutils literal notranslate"><span class="pre">apps/games/NXDoom</span></code>) on an ILI9340 display attached to the
+Spresense extension board, with the keys read from the serial console.</p>
+<p>The display is used as a frame buffer through <code class="docutils literal notranslate"><span class="pre">CONFIG_LCD_FRAMEBUFFER</span></code>
+and runs 320x240 in landscape. The keys are read from the serial console,
+and the WAD file is kept in the on-board SPI flash, which is mounted at
+<code class="docutils literal notranslate"><span class="pre">/mnt/spif</span></code>.</p>
+<p>To play:</p>
+<ol class="arabic">
+<li><p>Get a WAD file and name it <code class="docutils literal notranslate"><span class="pre">doom1.wad</span></code>. It has to fit in the 4 MB of
+flash. See <a class="reference internal" href="../../../../../applications/games/nxdoom/index.html"><span class="doc">NXDoom</span></a> for what NXDoom can use.
+The one-level <a class="reference external" href="https://github.com/fragglet/squashware/releases">Squashware</a>
+IWAD is known to work.</p></li>
+<li><p>Build and flash the configuration as described above, then open the NSH
+console with a terminal program. Some terminal programs reset the board
+when they open the serial port, so connect first and only then continue.</p></li>
+<li><p>Receive the WAD file into the flash. <code class="docutils literal notranslate"><span class="pre">rz</span></code> waits for the sender for
+120 seconds, so start the transfer from the terminal program right after:</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>nsh&gt; rz -p /mnt/spif
+</pre></div>
+</div>
+<p>In Tera Term, for example, use <span class="menuselection">File ‣ Transfer ‣
+ZMODEM ‣ Send</span> and pick <code class="docutils literal notranslate"><span class="pre">doom1.wad</span></code>. The file stays in the flash, so
+this is needed only once.</p>
+</li>
+<li><p>Check that the whole file arrived. The size must match the file on the
+host:</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>nsh&gt; ls -l /mnt/spif
+</pre></div>
+</div>
+</li>
+<li><p>Start the game:</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>nsh&gt; nxdoom -iwad /mnt/spif/doom1.wad
+</pre></div>
+</div>
+</li>
+</ol>
+<p>While the game runs, everything typed in the terminal is read as a game key,
+including what is meant for NSH. Move with the W, A, S and D keys (or the
+arrow keys), fire with J, run with K, strafe with L, use with E and open the
+menu with Q.</p>
+<p>The board has 1.5 MB of RAM, so the screen wipe is disabled
+(<code class="docutils literal notranslate"><span class="pre">CONFIG_GAMES_NXDOOM_NOWIPE</span></code>) and the render buffer is placed in
+<code class="docutils literal notranslate"><span class="pre">.bss</span></code>. The flash area that holds the WAD is 4 MB, so the shareware
+<code class="docutils literal notranslate"><span class="pre">DOOM1.WAD</span></code> (about 4.2 MB) does not fit in it. Only the one-level Squashware
+IWAD has been tried.</p>
+</section>
 <section id="ostest">
 <h3>ostest<a class="headerlink" href="#ostest" title="Permalink to this heading"></a></h3>
 <p>Standard NuttX OS test suite (<code class="docutils literal notranslate"><span class="pre">apps/testing/ostest</span></code>).</p>
diff --git a/content/docs/latest/platforms/arm/stm32c0/boards/nucleo-c092rc/index.html b/content/docs/latest/platforms/arm/stm32c0/boards/nucleo-c092rc/index.html
index d7a2b3d516..1306f1d993 100644
--- a/content/docs/latest/platforms/arm/stm32c0/boards/nucleo-c092rc/index.html
+++ b/content/docs/latest/platforms/arm/stm32c0/boards/nucleo-c092rc/index.html
@@ -162,28 +162,48 @@
 <li class="toctree-l3"><a class="reference internal" href="../../../../../_tags/tagsindex.html#architecture">Architecture</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../../../../../_tags/tagsindex.html#vendor">Vendor</a></li>
 <li class="toctree-l3 current"><a class="reference internal" href="../../../../../_tags/tagsindex.html#chip">Chip</a><ul class="current">
-<li class="toctree-l4 current"><a class="reference internal" href="../../../../../_tags/tagsindex.html#families">Families</a><ul class="current">
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#unknown">(unknown)</a></li>
-<li class="toctree-l5 current"><a class="reference internal" href="../../../../../_tags/tagsindex.html#arm">arm</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#arm64">arm64</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#avr">avr</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#hc">hc</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#mips">mips</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#misoc">misoc</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#or1k">or1k</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#renesas">renesas</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#risc-v">risc-v</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#sim">sim</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#sparc">sparc</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#tricore">tricore</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#x86">x86</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#x86-64">x86_64</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#xtensa">xtensa</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#z16">z16</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#z80">z80</a></li>
+<li class="toctree-l4"><a class="reference internal" href="../../../../../_tags/tagsindex.html#families">Families</a></li>
+<li class="toctree-l4 current"><a class="reference internal" href="../../../../../_tags/tagsindex.html#parts">Parts</a><ul class="current">
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#atmega">atmega</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#cxd56xx">cxd56xx</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#esp32">esp32</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#fvp-v8r">fvp-v8r</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#ht32f491x3">ht32f491x3</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#imx9">imx9</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#imxrt">imxrt</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#n32h7">n32h7</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#nrf52">nrf52</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#nrf53">nrf53</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#nrf91">nrf91</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#qemu">qemu</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#rp23xx">rp23xx</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#rp23xx-rv">rp23xx-rv</a></li>
+<li class="toctree-l5 current"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32c0">stm32c0</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32c5">stm32c5</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32f0">stm32f0</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32f1">stm32f1</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32f2">stm32f2</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32f3">stm32f3</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32f4">stm32f4</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32f7">stm32f7</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32g0">stm32g0</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32g4">stm32g4</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32h5">stm32h5</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32h7">stm32h7</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32l0">stm32l0</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32l1">stm32l1</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32l4">stm32l4</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32l5">stm32l5</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32n6">stm32n6</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32u0">stm32u0</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32u3">stm32u3</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32u5">stm32u5</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32wb">stm32wb</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32wl5">stm32wl5</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#tiva">tiva</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#zynq-mpsoc">zynq-mpsoc</a></li>
 </ul>
 </li>
-<li class="toctree-l4"><a class="reference internal" href="../../../../../_tags/tagsindex.html#parts">Parts</a></li>
 </ul>
 </li>
 </ul>
diff --git a/content/docs/latest/platforms/arm/stm32c5/boards/nucleo-c562re/index.html b/content/docs/latest/platforms/arm/stm32c5/boards/nucleo-c562re/index.html
index 7ba1bdefbb..9675e5526b 100644
--- a/content/docs/latest/platforms/arm/stm32c5/boards/nucleo-c562re/index.html
+++ b/content/docs/latest/platforms/arm/stm32c5/boards/nucleo-c562re/index.html
@@ -162,48 +162,28 @@
 <li class="toctree-l3"><a class="reference internal" href="../../../../../_tags/tagsindex.html#architecture">Architecture</a></li>
 <li class="toctree-l3"><a class="reference internal" href="../../../../../_tags/tagsindex.html#vendor">Vendor</a></li>
 <li class="toctree-l3 current"><a class="reference internal" href="../../../../../_tags/tagsindex.html#chip">Chip</a><ul class="current">
-<li class="toctree-l4"><a class="reference internal" href="../../../../../_tags/tagsindex.html#families">Families</a></li>
-<li class="toctree-l4 current"><a class="reference internal" href="../../../../../_tags/tagsindex.html#parts">Parts</a><ul class="current">
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#atmega">atmega</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#cxd56xx">cxd56xx</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#esp32">esp32</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#fvp-v8r">fvp-v8r</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#ht32f491x3">ht32f491x3</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#imx9">imx9</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#imxrt">imxrt</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#n32h7">n32h7</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#nrf52">nrf52</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#nrf53">nrf53</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#nrf91">nrf91</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#qemu">qemu</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#rp23xx">rp23xx</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#rp23xx-rv">rp23xx-rv</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32c0">stm32c0</a></li>
-<li class="toctree-l5 current"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32c5">stm32c5</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32f0">stm32f0</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32f1">stm32f1</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32f2">stm32f2</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32f3">stm32f3</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32f4">stm32f4</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32f7">stm32f7</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32g0">stm32g0</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32g4">stm32g4</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32h5">stm32h5</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32h7">stm32h7</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32l0">stm32l0</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32l1">stm32l1</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32l4">stm32l4</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32l5">stm32l5</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32n6">stm32n6</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32u0">stm32u0</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32u3">stm32u3</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32u5">stm32u5</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32wb">stm32wb</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#stm32wl5">stm32wl5</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#tiva">tiva</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#zynq-mpsoc">zynq-mpsoc</a></li>
+<li class="toctree-l4 current"><a class="reference internal" href="../../../../../_tags/tagsindex.html#families">Families</a><ul class="current">
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#unknown">(unknown)</a></li>
+<li class="toctree-l5 current"><a class="reference internal" href="../../../../../_tags/tagsindex.html#arm">arm</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#arm64">arm64</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#avr">avr</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#hc">hc</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#mips">mips</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#misoc">misoc</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#or1k">or1k</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#renesas">renesas</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#risc-v">risc-v</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#sim">sim</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#sparc">sparc</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#tricore">tricore</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#x86">x86</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#x86-64">x86_64</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#xtensa">xtensa</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#z16">z16</a></li>
+<li class="toctree-l5"><a class="reference internal" href="../../../../../_tags/tagsindex.html#z80">z80</a></li>
 </ul>
 </li>
+<li class="toctree-l4"><a class="reference internal" href="../../../../../_tags/tagsindex.html#parts">Parts</a></li>
 </ul>
 </li>
 </ul>
diff --git a/content/docs/latest/platforms/arm/stm32h7/boards/stm32h7s8-dk/index.html b/content/docs/latest/platforms/arm/stm32h7/boards/stm32h7s8-dk/index.html
index 3515ba9020..bdcd643c1b 100644
--- a/content/docs/latest/platforms/arm/stm32h7/boards/stm32h7s8-dk/index.html
+++ b/content/docs/latest/platforms/arm/stm32h7/boards/stm32h7s8-dk/index.html
@@ -243,8 +243,8 @@
 <p>This page describes the NuttX port for the <a class="reference external" href="https://www.st.com/en/evaluation-tools/stm32h7s78-dk.html">STMicro SMT32H7S8-DK</a>
 Discovery kit. The board is based on the 600 MHz STM32H7S3L8
 Cortex-M7 microcontroller.</p>
-<section id="flashing-nsh-image">
-<h2>Flashing NSH image<a class="headerlink" href="#flashing-nsh-image" title="Permalink to this heading"></a></h2>
+<section id="flashing-internal-nsh-image">
+<h2>Flashing internal NSH image<a class="headerlink" href="#flashing-internal-nsh-image" title="Permalink to this heading"></a></h2>
 <div class="admonition note">
 <p class="admonition-title">Note</p>
 <p>nsh image is restricted in size to fit in and execute from
@@ -267,6 +267,59 @@ command-line executable.:</p>
 </div>
 <p>The internal nsh image presents a shell on the ST-link console on startup.</p>
 </section>
+<section id="xip-boot">
+<h2>XIP Boot<a class="headerlink" href="#xip-boot" title="Permalink to this heading"></a></h2>
+<p>The STM32H7S3L8 has 64 KB of internal flash.  The board also carries a
+32 MB MX25UW25645G NOR flash on XSPI2, mapped at <code class="docutils literal notranslate"><span class="pre">0x70000000</span></code>.  Running
+NuttX from the external flash uses two images:</p>
+<ul class="simple">
+<li><p><code class="docutils literal notranslate"><span class="pre">boot-xip</span></code> runs from internal flash at <code class="docutils literal notranslate"><span class="pre">0x08000000</span></code>.</p></li>
+<li><p><code class="docutils literal notranslate"><span class="pre">nsh-xip</span></code> executes in place from XSPI2 flash at <code class="docutils literal notranslate"><span class="pre">0x70000000</span></code>.</p></li>
+</ul>
+<p>The bootloader configures the MX25UW25645G in octal STR memory-mapped mode,
+validates the initial stack pointer and reset vector, and starts the external
+image.  Image management, rollback, integrity checking, and authentication
+are not currently provided.</p>
+</section>
+<section id="flashing-bootloader-and-external-image">
+<h2>Flashing bootloader and external image<a class="headerlink" href="#flashing-bootloader-and-external-image" title="Permalink to this heading"></a></h2>
+<div class="admonition note">
+<p class="admonition-title">Note</p>
+<p>The <code class="docutils literal notranslate"><span class="pre">XSPI2_HSLV</span></code> option byte must be set to <code class="docutils literal notranslate"><span class="pre">1</span></code> before using the
+external flash.  The option byte setting is persistent.</p>
+</div>
+<p>Build the external image:</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>cmake -B build/nsh-xip -DBOARD_CONFIG=nucleo-h7s3l8:nsh-xip -GNinja
+cmake --build build/nsh-xip
+</pre></div>
+</div>
+<p>Build the internal bootloader:</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>cmake -B build/boot-xip -DBOARD_CONFIG=nucleo-h7s3l8:boot-xip -GNinja
+cmake --build build/boot-xip
+</pre></div>
+</div>
+<p>Install STM32CubeProgrammer and set <code class="docutils literal notranslate"><span class="pre">CUBE_PROGRAMMER</span></code> to the path of its
+command-line executable.  The external loader is supplied by the
+STM32CubeProgrammer installation:</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>CUBE_PROGRAMMER=/path/to/STM32_Programmer_CLI
+EXTERNAL_LOADER="$(dirname "$CUBE_PROGRAMMER")/ExternalLoader/MX66UW1G45G_STM32H7S78-DK.stldr"
+</pre></div>
+</div>
+<p>Erase the external flash, then program and verify the XIP image:</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>"$CUBE_PROGRAMMER" --connect port=SWD mode=Normal --erase all \
+  -el "$EXTERNAL_LOADER"
+"$CUBE_PROGRAMMER" --connect port=SWD mode=Normal \
+  --download build/nsh-xip/nuttx.bin 0x70000000 --verify \
+  --skipErase \
+  -el "$EXTERNAL_LOADER"
+</pre></div>
+</div>
+<p>Program and verify the internal bootloader, then reset the board:</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>"$CUBE_PROGRAMMER" --connect port=SWD reset=HWrst \
+  --download build/boot-xip/nuttx.bin 0x08000000 --verify --rst
+</pre></div>
+</div>
+</section>
 <section id="configurations">
 <h2>Configurations<a class="headerlink" href="#configurations" title="Permalink to this heading"></a></h2>
 <p>Each configuration is maintained in a subdirectory of <code class="docutils literal notranslate"><span class="pre">configs</span></code> and can be
@@ -281,6 +334,27 @@ selected as follows:</p>
 includes support for on-board LEDs and user button.  The default
 console is the ST-LINK virtual COM port on USART4.</p>
 </section>
+<section id="nsh-xip">
+<h3>nsh-xip<a class="headerlink" href="#nsh-xip" title="Permalink to this heading"></a></h3>
+<p>Provides NuttShell, common diagnostic commands, and <code class="docutils literal notranslate"><span class="pre">ostest</span></code>.  The image is
+linked for execution from XSPI2 flash at <code class="docutils literal notranslate"><span class="pre">0x70000000</span></code> and requires an XIP
+bootloader in internal flash.</p>
+</section>
+<section id="jumbo-xip">
+<h3>jumbo-xip<a class="headerlink" href="#jumbo-xip" title="Permalink to this heading"></a></h3>
+<p>Much as <code class="docutils literal notranslate"><span class="pre">nsh-xip</span></code>, but adds Ethernet networking. The IP address is obtained by DHCP.</p>
+<div class="admonition note">
+<p class="admonition-title">Note</p>
+<p><code class="docutils literal notranslate"><span class="pre">jumbo-xip</span></code> enables CONFIG_STM32_ETH_GPIO_MDIO to communicate via
+GPIO pins PB2 and PA2 with LAN8742A Ethernet transceiver on the board,
+and requires jumper JP6 to be in its default setting. If JP6 is in
+alternate position, CONFIG_STM32_ETH_GPIO_MDIO must be disabled.</p>
+</div>
+</section>
+<section id="boot-xip">
+<h3>boot-xip<a class="headerlink" href="#boot-xip" title="Permalink to this heading"></a></h3>
+<p>Provides the internal-flash NuttX bootloader used to start the <code class="docutils literal notranslate"><span class="pre">nsh-xip</span></code> or <code class="docutils literal notranslate"><span class="pre">jumbo-xip</span></code> image.</p>
+</section>
 </section>
 </section>
 
diff --git a/content/docs/latest/searchindex.js b/content/docs/latest/searchindex.js
index 033703225f..397e024603 100644
--- a/content/docs/latest/searchindex.js
+++ b/content/docs/latest/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["ReleaseNotes/NuttX-0.1.0", "ReleaseNotes/NuttX-0.1.1", "ReleaseNotes/NuttX-0.1.2", "ReleaseNotes/NuttX-0.2.1", "ReleaseNotes/NuttX-0.2.2", "ReleaseNotes/NuttX-0.2.3", "ReleaseNotes/NuttX-0.2.4", "ReleaseNotes/NuttX-0.2.5", "ReleaseNotes/NuttX-0.2.6", "ReleaseNotes/NuttX-0.2.7", "ReleaseNotes/NuttX-0.2.8", "ReleaseNotes/NuttX-0.2.9", "ReleaseNotes/NuttX-0.3.0", "ReleaseNotes/NuttX-0.3.1", "ReleaseNotes/NuttX-0.3.10", "ReleaseNotes/NuttX-0.3.11", "ReleaseNote [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["ReleaseNotes/NuttX-0.1.0", "ReleaseNotes/NuttX-0.1.1", "ReleaseNotes/NuttX-0.1.2", "ReleaseNotes/NuttX-0.2.1", "ReleaseNotes/NuttX-0.2.2", "ReleaseNotes/NuttX-0.2.3", "ReleaseNotes/NuttX-0.2.4", "ReleaseNotes/NuttX-0.2.5", "ReleaseNotes/NuttX-0.2.6", "ReleaseNotes/NuttX-0.2.7", "ReleaseNotes/NuttX-0.2.8", "ReleaseNotes/NuttX-0.2.9", "ReleaseNotes/NuttX-0.3.0", "ReleaseNotes/NuttX-0.3.1", "ReleaseNotes/NuttX-0.3.10", "ReleaseNotes/NuttX-0.3.11", "ReleaseNote [...]
\ No newline at end of file
diff --git a/content/docs/latest/testing/nuttx-ci.html b/content/docs/latest/testing/nuttx-ci.html
index f17ee1bad3..7d66aba57b 100644
--- a/content/docs/latest/testing/nuttx-ci.html
+++ b/content/docs/latest/testing/nuttx-ci.html
@@ -326,15 +326,27 @@ parsed. If a valid dependency cannot be fetched, has no common history, its
 commit list cannot be determined, or it causes a cherry-pick conflict,
 <code class="docutils literal notranslate"><span class="pre">Fetch-Source</span></code> fails instead of silently testing without the requested
 dependency.</p>
+<p>A dependency that is already merged is skipped. <code class="docutils literal notranslate"><span class="pre">Fetch-Source</span></code> reads the
+state of each dependency through the GitHub API. If the dependency is merged
+and its merge commit is in the checkout, its commits are already in the tree,
+so CI does not cherry-pick them again. Thus a <code class="docutils literal notranslate"><span class="pre">Depends-On:</span></code> declaration can
+stay in the description after the dependency is merged. A dependency that is
+merged into a different branch, or whose merge commit is not in the checkout,
+is applied as before. If CI cannot read the state, it also applies the
+dependency as before.</p>
+<p>A dependency that is closed without merge is an error. <code class="docutils literal notranslate"><span class="pre">Fetch-Source</span></code> does
+not apply it and fails. Remove the dependency from the <code class="docutils literal notranslate"><span class="pre">Depends-On:</span></code>
+declaration, or reopen the dependency pull request.</p>
 <p>The memory footprint workflow applies the same declarations independently,
 using the same parser and apply sequence (see <a class="reference internal" href="#memory-footprint-tracking">Memory Footprint Tracking</a>).</p>
 <p>When a valid dependency report is available, the follow-up comment reports one
 of three outcomes:</p>
 <ul class="simple">
 <li><p>successfully applied dependencies and their fetched head SHAs (abbreviated in
-the comment)</p></li>
+the comment); a skipped dependency is marked “already merged, skipped”</p></li>
 <li><p>a declaration from which no valid dependency could be parsed</p></li>
-<li><p>valid dependencies that could not be applied and the failure reason</p></li>
+<li><p>valid dependencies that could not be applied and the failure reason; a
+dependency that is closed without merge is marked “closed without merge”</p></li>
 </ul>
 <p>The write-capable follow-up workflow does not execute fork code. It validates
 the untrusted report’s structure, repository allow-list, run and current PR
@@ -418,7 +430,9 @@ regressions. It:</p>
 workflow (see <a class="reference internal" href="#pull-request-dependencies">Pull Request Dependencies</a>), so a pull request that only builds
 on top of another one is measured against a tree that compiles. The declaration
 rules and the <code class="docutils literal notranslate"><span class="pre">master</span></code>-only gate are the same. A dependency that cannot be
-fetched or applied fails the job in both workflows.</p>
+fetched or applied fails the job in both workflows. Both workflows skip a
+dependency that is already merged, and fail on a dependency that is closed
+without merge.</p>
 </section>
 </section>