BRUOL
All projects

Systems & networks · 2026

Unikraft for Raspberry Pi 5

A Unikraft platform port with boot, memory management, interrupts, and timers on Raspberry Pi 5.

ETH semester project · Platform implementation and evaluation

  • AArch64
  • C
  • Unikraft
  • OpenOCD
  • GDB

I ported Unikraft to the Raspberry Pi 5 for my ETH semester project: AArch64 boot, device-tree memory discovery, page tables, UART, interrupts, timers, and basic GPIO.

I also implemented kernel reloads without power-cycling. A trampoline clears stale cache and translation state before OpenOCD and GDB load the next image. Without it, the previous kernel’s state can corrupt the replacement.

Hardware tests covered C/C++ boots, memory integrity, page protection, repeated reloads, and 1,000 consecutive 10 ms scheduler sleeps. The port is single-core; multicore and broader peripheral support remain future work.