nuttx/arch/risc-v/include
Afonso Oliveira 0b35d45b2c riscv/erbium: Add standalone Minion emulator support.
Add an initial port for the AIFoundry Erbium Minion core running on the
public ET-platform system emulator (erbium_emu). NuttX boots directly
from a firmware ELF at 0x40000200, runs in machine mode on hart 0 with
SMP disabled, and parks secondary harts before they touch memory.

The chip layer provides startup, PLIC interrupts, the UART0 console
driver and the machine timer. Context switching, FPU save/restore,
heap, idle and timer handling reuse the common RISC-V code. Atomics use
interrupt masking because the core does not implement the A extension.

Erbium implements the F extension but executes fdiv/fsqrt and FENCE.I
in microcode, which a standalone image does not provide. The board build
files pass -mno-fdiv to GCC when the FPU is enabled, so those operations
use software helpers. Startup initializes the FPU without the common
FENCE.I sequence, and the board configurations disable the dynamic ELF
loader, which also relies on FENCE.I.

Add minion:nsh and minion:ostest configurations, Make and CMake
support, CMake CI build entries, and a host script that runs prebuilt
images in the emulator and checks the console and OS test results.

Tested with emulator revision 836a4ab600e9 and xPack GCC 14.3.0: both
configurations build with Make and CMake, ostest exits with status 0
including the FPU tests, and the NSH console, procfs, timer and UART
receive paths work. Silicon, SMP, protected builds and reboot are not
covered by this initial port.

Signed-off-by: Afonso Oliveira <afonso.oliveira707@gmail.com>
2026-09-24 15:38:14 +08:00
..
allwinner-d1 risc-v/allwinner-d1: Add initial Allwinner D1 board support. 2026-08-19 11:54:47 -03:00
bl602 arch/risk-v: migrate to SPDX identifier 2024-12-02 17:23:25 +08:00
bl808 risc-v/bl808: Add I2C driver 2024-12-25 11:03:26 +08:00
c906 arch/risk-v: migrate to SPDX identifier 2024-12-02 17:23:25 +08:00
eic7700x arch/risc-v/eic7700x: Add the CRG reset controller. 2026-09-21 16:29:12 +08:00
erbium riscv/erbium: Add standalone Minion emulator support. 2026-09-24 15:38:14 +08:00
esp32c3 arch/risk-v: migrate to SPDX identifier 2024-12-02 17:23:25 +08:00
esp32c3-legacy arch/risk-v: migrate to SPDX identifier 2024-12-02 17:23:25 +08:00
esp32c6 arch/risk-v: migrate to SPDX identifier 2024-12-02 17:23:25 +08:00
esp32h2 arch/risk-v: migrate to SPDX identifier 2024-12-02 17:23:25 +08:00
esp32p4 arch/risc-v/espressif/esp32p4: Support ESP32-P4 on NuttX 2026-03-09 21:40:25 +01:00
fe310 arch/risk-v: migrate to SPDX identifier 2024-12-02 17:23:25 +08:00
gd32vw55x risc-v/gd32vw55x: add GigaDevice GD32VW553 port (Wi-Fi 6) 2026-07-16 10:03:16 -03:00
hpm6000 arch/risk-v: migrate to SPDX identifier 2024-12-02 17:23:25 +08:00
hpm6750 arch/risk-v: migrate to SPDX identifier 2024-12-02 17:23:25 +08:00
jh7110 arch/risk-v: migrate to SPDX identifier 2024-12-02 17:23:25 +08:00
k210 arch/risc-v/k210: Remove QEMU support 2026-03-23 14:25:29 +08:00
k230 arch/risk-v: migrate to SPDX identifier 2024-12-02 17:23:25 +08:00
litex arch/risk-v: migrate to SPDX identifier 2024-12-02 17:23:25 +08:00
mpfs arch/risk-v: migrate to SPDX identifier 2024-12-02 17:23:25 +08:00
qemu-rv arch/risk-v: migrate to SPDX identifier 2024-12-02 17:23:25 +08:00
rp23xx-rv arch/risc-v/rp23xx-riscv: Add rp23xx RISC-V cores support (Hazard3) 2025-08-11 08:56:27 +08:00
rv32m1 arch/risk-v: migrate to SPDX identifier 2024-12-02 17:23:25 +08:00
sg2000 arch/risk-v: migrate to SPDX identifier 2024-12-02 17:23:25 +08:00
thead arch/risk-v: migrate to SPDX identifier 2024-12-02 17:23:25 +08:00
.gitignore Remove exra whitespace from files (#189) 2020-01-31 09:24:49 -06:00
arch.h arch/atomic: remove up_testset in spinlock 2026-09-08 08:58:54 +08:00
barriers.h arch/riscv: Add CONFIG_ARCH_RV_ISA_ZICSR_ZIFENCEI for fence.i 2026-06-28 02:17:03 +08:00
csr.h risc-v: Move CSR register manipulation macros to csr.h 2024-12-13 01:29:26 +08:00
elf.h arch/risk-v: migrate to SPDX identifier 2024-12-02 17:23:25 +08:00
inttypes.h arch/risk-v: migrate to SPDX identifier 2024-12-02 17:23:25 +08:00
irq.h arch/risc-v/include/irq.h: fix vector context allocated size 2026-09-15 16:10:23 +08:00
limits.h arch/risk-v: migrate to SPDX identifier 2024-12-02 17:23:25 +08:00
mode.h arch/risc-v: Add CLIC interrupt threshold support 2026-09-13 08:31:16 -03:00
setjmp.h arch/risk-v: migrate to SPDX identifier 2024-12-02 17:23:25 +08:00
stdarg.h arch/risk-v: migrate to SPDX identifier 2024-12-02 17:23:25 +08:00
syscall.h arch/risc-v: preserve ra across ecall for fp-chain backtrace 2026-07-16 15:24:12 +08:00
types.h arch/risk-v: migrate to SPDX identifier 2024-12-02 17:23:25 +08:00