nuttx/boards
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
..
arm boards/arm/imxrt: add the Holybro Pixhawk 6X-RT 2026-09-23 18:51:23 -03:00
arm64 boards/qemu-armv8a: add S2OPC server configuration 2026-09-15 14:55:24 +02:00
avr !arch/arm: Use r9 as the PIC base register. 2026-08-06 01:38:23 +08:00
dummy
hc/m9s12 !arch/arm: Use r9 as the PIC base register. 2026-08-06 01:38:23 +08:00
mips arch/mips/jz4780: Add HDMI EDID parsing and dynamic display modes 2026-08-29 11:08:25 -03:00
misoc/lm32/misoc !libc/stream: remove CONFIG_LIBC_LONG_LONG and always support long long 2026-05-19 16:21:28 +08:00
or1k/mor1kx/or1k !arch/arm: Use r9 as the PIC base register. 2026-08-06 01:38:23 +08:00
renesas !arch/arm: Use r9 as the PIC base register. 2026-08-06 01:38:23 +08:00
risc-v riscv/erbium: Add standalone Minion emulator support. 2026-09-24 15:38:14 +08:00
sim/sim/sim boards/sim: add S2OPC server configuration 2026-09-15 14:55:24 +02:00
sparc !libc/stream: remove CONFIG_LIBC_LONG_LONG and always support long long 2026-05-19 16:21:28 +08:00
tricore !sched/clock: remove CONFIG_SYSTEM_TIME64 and always use 64-bit time 2026-05-19 16:21:28 +08:00
x86/qemu/qemu-i486 boards/x86/qemu/qemu-i486: Switch nsh/vga_fb from nsh to nxinit. 2026-09-17 16:21:59 +08:00
x86_64/qemu/qemu-intel64 boards/qemu-intel64: add citest configuration 2026-09-15 18:33:47 +08:00
xtensa boards/esp32s3: the LSM6DS3TR-C INT1 is a level, not an edge 2026-09-22 09:21:08 -03:00
z16/z16f/z16f2800100zcog
z80
.gitignore
Board.mk !tools/mkpasswd: PBKDF2 host tool and ROMFS passwd build integration 2026-07-21 20:19:14 +08:00
boardctl.c !boards/boardctl: Remove BOARDIOC_INIT 2026-05-26 09:57:29 +08:00
CMakeLists.txt cmake: Use NUTTX(_DIR/_BIN_DIR) instead CMAKE(_SRC_DIR/_BIN_DIR) 2026-08-09 11:13:08 -03:00
dummy.c
Kconfig riscv/erbium: Add standalone Minion emulator support. 2026-09-24 15:38:14 +08:00
Makefile tools: fix stale archive members surviving a Kconfig-driven CSRCS change 2026-07-28 21:26:03 -03:00