T-Kernel Specification | Section 3: QEMU Emulation & Board Deployment
← Return to T-Kernel Index

QEMU Emulation & Board Deployment

Target Hardware Environments

T-Kernel 2.0 supports direct execution on reference hardware boards (Raspberry Pi 2B/3B, TEF_EM1D, RZ/T1, SH7760) and QEMU virtualized targets (`qemu-system-arm`, `qemu-system-x86_64`, `qemu-system-riscv64`).

1. QEMU Target Launch Commands

T-Kernel binaries can be executed under QEMU using the following target configurations:

ARM Virt Machine Target:

# Run T-Kernel ELF under QEMU ARM virt machine
qemu-system-arm -M virt -kernel btron-qemu.elf -net none -m 512M -serial stdio

Raspberry Pi 2B Target:

# Run T-Kernel on QEMU Raspberry Pi 2B model
qemu-system-arm -M raspi2b -kernel btron-qemu.elf -dtb bcm2709-rpi-2-b.dtb -serial stdio

x86_64 Microvm / Multiboot Target:

# Run T-Kernel on x86_64 QEMU microvm with VirtIO MMIO
qemu-system-x86_64 -M microvm -kernel btron-qemu.elf -net none -serial stdio

2. VirtIO MMIO Device Mapping in QEMU

Under QEMU virt machines, VirtIO MMIO control registers are mapped into physical memory spaces as follows:

Device Subsystem VirtIO ID QEMU MMIO Base Address IRQ
VirtIO-Console 3 0x10001000 48
VirtIO-GPU (2D) 16 0x10002000 49
VirtIO-Block 2 0x10003000 50
VirtIO-Net 1 0x10004000 51

3. Building & Deployment via Makefile

To build and test the T-Kernel QEMU binary from the workspace:

# Clean previous object files
make clean

# Build the QEMU T-Kernel ELF image
make qemu

# Execute under QEMU or host simulator
make run-qemu