ImBonkers opened a new pull request, #18892:
URL: https://github.com/apache/nuttx/pull/18892
## Summary
* **Why**: there is no STM32N6 support in tree. This PR adds support for
STM32N6 family and the Nucleo-N657X0-Q development board.
* **What**: new arch chip directory `arch/arm/src/stm32n6` and new board
directory `boards/arm/stm32n6/nucleo-n657x0-q`, plus chip and board
documentation pages. Three commits:
1. `arch/arm/stm32n6: Add STM32N6 chip support.`
2. `boards/arm/stm32n6/nucleo-n657x0-q: Add Nucleo-N657X0-Q board support.`
3. `Documentation/platforms/arm: Add STM32N6 chip and Nucleo-N657X0-Q pages.`
* **How**: the chip boots to an NSH console over USART1 via the on-board
ST-Link and runs in DEV boot mode. The scope of this PR does not cover MPU,
I/D-cache, MVE (Helium), DMA-RX on serial, LPUART, USART2..5, RS-485, TrustZone
Non-Secure world, or XSPI signed-flash boot, etc. DEV mode loads `nuttx.bin`
directly to AXISRAM at `0x34000400`. `stm32_serial.c` is a stripped down
version of `arch/arm/src/stm32h5/stm32_serial.c`.
* **Related NuttX issue**: none.
* **Related NuttX Apps issue / PR**: none.
## Impact
* Is new feature added? Is existing feature changed? **YES**
new chip family `stm32n6` and new board `nucleo-n657x0-q`. No existing
feature changed.
* Impact on user (will user need to adapt to change)? **NO**
* Impact on build (will build process change)? **NO**
`tools/ci/testlist/arm-14.dat` already covers this chip via the
`/arm/stm32n*` glob; CMake chip pickup via
`add_subdirectory(${NUTTX_CHIP_ABS_DIR})` works without changes to
`arch/arm/src/CMakeLists.txt`.
* Impact on hardware (will arch(s) / board(s) / driver(s) change)? **YES**
new chip and new board. No sibling arch or board files modified.
* Impact on documentation (is update required / provided)? **YES**
new files: `Documentation/platforms/arm/stm32n6/index.rst` and
`Documentation/platforms/arm/stm32n6/boards/nucleo-n657x0-q/index.rst`.
* Impact on security (any sort of implications)? **NO**
the chip runs in the Secure state with SAU in its reset configuration. No
TrustZone Non-Secure programming and no RIF re-configuration.
* Impact on compatibility (backward/forward/interoperability)? **NO**.
* Anything else? The three commits each build on their own.
## Testing
I confirm that changes are verified on local setup and works as intended:
* **Build Host**: Ubuntu 24.04 x86_64, `arm-none-eabi-gcc` from the
`ghcr.io/apache/nuttx/apache-nuttx-ci-linux` container image (latest tag as of
this PR).
* **Target**: STM Nucleo-N657X0-Q, flashed via the on-board ST-Link in DEV
mode. Configs: `nucleo-n657x0-q:nsh` and `nucleo-n657x0-q:ostest`.
* Reproduction steps:
```bash
./tools/configure.sh nucleo-n657x0-q:nsh # or :ostest
make
# -w32 0xE000ED08 0x34000400 points VTOR at the loaded image
STM32_Programmer_CLI -c port=SWD mode=UR -halt \
-d nuttx.bin 0x34000400 \
-w32 0xE000ED08 0x34000400 \
-g 0x34000400
```
Testing logs:
```
$ ./tools/configure.sh nucleo-n657x0-q:nsh
$ make
...
Memory region Used Size Region Size %age Used
sram: 82812 B 4095 KB 1.97%
CP: nuttx.bin
$ ./tools/configure.sh nucleo-n657x0-q:ostest
$ make
...
Memory region Used Size Region Size %age Used
sram: 149116 B 4095 KB 3.56%
CP: nuttx.bin
--- Run 1: nsh ---
NuttShell (NSH) NuttX-12.13.0
nsh> uname -a
NuttX 12.13.0 f21a2c8f68 May 17 2026 20:04:10 arm nucleo-n657x0-q
nsh> uptime
00:00:04 up 0:00, load average: 0.00, 0.00, 0.00
nsh> uptime
00:00:14 up 0:00, load average: 0.00, 0.00, 0.00
nsh>
(10 second wall-clock equivalence)
--- Run 2: ostest ---
nsh> ostest
...
user_main: Exiting
ostest_main: Exiting with status 0
nsh>
All 31 ostest sub-tests pass.
--- CI parity (apache/nuttx-ci-linux container) ---
Build Attempt 1 of 4
====================================================================================
Configuration/Tool: nucleo-n657x0-q:nsh,CONFIG_ARM_TOOLCHAIN_GNU_EABI
2026-05-17 18:28:52
------------------------------------------------------------------------------------
Cleaning...
Configuring...
Disabling CONFIG_ARM_TOOLCHAIN_GNU_EABI
Enabling CONFIG_ARM_TOOLCHAIN_GNU_EABI
Building NuttX...
arm-none-eabi-ld: warning: /github/workspace/sources/nuttx/nuttx has a LOAD
segment with RWX permissions
[1/1] Normalize nucleo-n657x0-q:nsh
Build Attempt 1 of 4
====================================================================================
Configuration/Tool: nucleo-n657x0-q:ostest,CONFIG_ARM_TOOLCHAIN_GNU_EABI
2026-05-17 18:29:01
------------------------------------------------------------------------------------
Cleaning...
Configuring...
Disabling CONFIG_ARM_TOOLCHAIN_GNU_EABI
Enabling CONFIG_ARM_TOOLCHAIN_GNU_EABI
Building NuttX...
arm-none-eabi-ld: warning: /github/workspace/sources/nuttx/nuttx has a LOAD
segment with RWX permissions
[1/1] Normalize nucleo-n657x0-q:ostest
====================================================================================
--- Lint ---
$ ./tools/checkpatch.sh -g HEAD~3..HEAD -> All checks pass
$ codespell -> clean on diff
$ cmake-format --check -> clean on new CMakeLists.txt
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]