Commit Graph

2 Commits

Author SHA1 Message Date
Markus Maiwald 46e7be6837 feat(rumpk): Phase 7 Verified - Subject Zero Launch
- Implemented Sovereign Syscall Table at 0x801FFF00
- Added cooperative yielding (s_yield) for Guest/Kernel concurrency
- Initialized Guest RX Ring and flows in Kernel
- Bridged LwIP in Guest via net_glue and ion_client overrides
- Validated TCP handshake and data transmission (Subject Zero -> Host)
- Confirmed 'Hello from the Membrane!' via UART and Network
2025-12-31 20:18:48 +01:00
Markus Maiwald 2f8a062a74 feat(rumpk): Multi-Architecture HAL (aarch64, x86_64, riscv64)
TRI-ARCH SOVEREIGNTY
====================

Rumpk now supports three major architectures:
- aarch64 (ARM64): VisionFive 2, RPi, AWS Graviton
- x86_64: Standard servers, trading, banking
- riscv64: Sovereign compute, satellites, drones

DIRECTORY STRUCTURE
-------------------
hal/arch/
├── aarch64/
│   ├── switch.S      # ARM64 context switch (96 bytes)
│   └── constants.nim # LR_OFFSET=11, FP_OFFSET=10
├── x86_64/
│   ├── switch.S      # System V ABI switch (56 bytes)
│   └── constants.nim # RIP_OFFSET=6
└── riscv64/
    ├── switch.S      # RISC-V LP64 switch (112 bytes)
    └── constants.nim # RA_OFFSET=0

UNIFIED FIBER.NIM
-----------------
Uses Nim's 'when defined()' for compile-time arch selection:
- CONTEXT_SIZE varies by arch (56/96/112)
- RET_ADDR_INDEX points to return address slot
- Halt instruction varies (hlt/wfi)

BUILD SYSTEM
------------
./build.sh [aarch64|x86_64|riscv64]
- Default: aarch64
- Output: build/rumpk-$ARCH.elf
- Auto-selects linker script if arch-specific exists

ABI SUMMARY
-----------
| Arch     | Callee-Saved           | Frame | Alignment |
|----------|------------------------|-------|-----------|
| aarch64  | x19-x30                | 96B   | 16-byte   |
| x86_64   | rbx,rbp,r12-r15        | 56B   | 16-byte   |
| riscv64  | ra,s0-s11              | 112B  | 16-byte   |

VERIFICATION
------------
ARM64 fibers still work:
[Fiber A] I am alive! Yielding to B...
[Fiber B] Hello from B! Yielding to A...
[Fiber A] I am back! Yielding to B...

One codebase. All profiles. NIIX philosophy enforced.
2025-12-31 20:18:47 +01:00