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> 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> 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> 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>