This repository archives a hardware-tested Linux noMMU port for the Ruiside ART-Pi2 development board. The board uses an STM32H7R7 Cortex-M7, executes the kernel in place from external XSPI NOR, and uses 32 MiB of HyperRAM as system memory.
The Linux changes are kept as a nine-patch mail-ready series rather than as a vendored Linux tree. The repository also contains the first-stage boot stub, the private kernel configuration fragments used for hardware testing, and the bring-up record.
The v2 series was posted for upstream review, but it is now maintained as a downstream patch set. STM32 maintainer Alexandre Torgue declined new Cortex-v7M board support because Cortex-M3/M4/M7 Linux support is scheduled for removal. See Arnd Bergmann's deprecation series and the Cortex-M deprecation patch.
The code remains useful for reproducible experiments and downstream kernels; no further upstream revision is currently planned.
| Path | Contents |
|---|---|
patches/linux-v2/ |
Cover letter and the reproducible nine-patch v2 series |
boot/ |
Internal-flash boot stub plus load, flash, build, and verification scripts |
configs/linux/ |
Private noMMU, initramfs, and XIP kernel configuration fragments |
PROGRESS.md |
Detailed bring-up decisions and hardware evidence in Chinese |
The RT-Thread ART-Pi2 SDK, Linux, Buildroot, generated images, serial logs, and Microsoft 365 credentials are deliberately not included.
Clone Linux and check out the pinned baseline:
git clone https://github.com/torvalds/linux.git
git -C linux checkout 248951ddc14de84de3910f9b13f51491a8cd91df
git -C linux am "$PWD"/patches/linux-v2/000[1-9]-*.patchWhen running the commands from a clone of this repository, replace $PWD with
the absolute path to that clone if the Linux checkout is elsewhere. A correctly
applied series produces this tree ID:
2558e0a90844ab2959ef43bf1bae56edd1b22e52
Full baseline, image hash, and hardware-test details are in
patches/linux-v2/README.md.
The scripts expect sibling source directories below the repository root:
artpi2-linux/
├── boot/
├── configs/linux/
├── linux/
├── buildroot/
├── sdk-artpi2/
└── out/
Use these pinned external revisions:
- Linux baseline:
248951ddc14de84de3910f9b13f51491a8cd91df - Buildroot:
3d0fdde8a79377b5ca98a05dbd3b226937bf352d - RT-Thread ART-Pi2 SDK:
4e85d5c8d622f27e1028b875c4551913ed18465c
The boot stub reuses STM32 HAL, CMSIS, memory component drivers, and the
external-NOR loader from the SDK; third-party SDK files are not copied into
this repository. See boot/README.md for build, flash, and
verification commands.
The exact v2 source tree was tested with:
- Linux XIP from 64 MiB external XSPI NOR;
- 32 MiB external HyperRAM;
- UART4 early console and normal console;
- TIM5 clockevent and clocksource;
- twelve GPIO banks, two LEDs, and the user button;
- SDMMC1 with a 59.5 GiB SDXC card;
- ext4 write, sync, unmount, remount, and SHA-256 verification;
- static-FLAT BusyBox initramfs userspace.
The tested kernel kept the Cortex-M7 instruction and data caches disabled. SDMMC DMA coherency with the data cache enabled has not been validated.
main is the only published project branch and tracks the latest
hardware-verified downstream archive. The corresponding Linux development
branch was named artpi2-upstream-v2; its complete state is represented by
the nine patches and the expected tree ID above, so a separate full Linux fork
is not required. Experimental bring-up branches and generated artifacts remain
local and are not part of the public repository.