QEMU Camp 2026 — Experiment Repository
This is the professional-stage experiment repository for QEMU Camp 2026. It covers four experiment directions, all based on RISC-V.
| Direction | Experiment Manual | Hardware Datasheet / Guide |
|---|---|---|
| CPU | CPU Experiment Manual | CPU Datasheet |
| SoC | SoC Experiment Manual | G233 SoC Datasheet |
| GPGPU | GPU Experiment Manual | GPU Datasheet |
| Rust | Rust Experiment Manual | Rust Programming Guide |
Full tutorial site: https://qemu.gevico.online/
| Direction | Test Framework | Test Location | Scoring |
|---|---|---|---|
| CPU | TCG testcase | tests/gevico/tcg/ | 10 tests x 10 pts = 100 |
| SoC | QTest | tests/gevico/qtest/ | 10 tests x 10 pts = 100 |
| GPGPU | QTest (QOS) | tests/qtest/gpgpu-test.c | 17 tests -> 100 pts |
| Rust | QTest + unit | tests/gevico/qtest/ + rust/hw/i2c/ | 10 tests x 10 pts = 100 |
# Ubuntu 24.04
sudo sed -i 's/^Types: deb$/Types: deb deb-src/' /etc/apt/sources.list.d/ubuntu.sources
sudo apt-get update
sudo apt-get build-dep -y qemu
# RISC-V bare-metal cross compiler (required for CPU experiment)
sudo mkdir -p /opt/riscv
wget -q https://github.com/riscv-collab/riscv-gnu-toolchain/releases/download/2025.09.28/riscv64-elf-ubuntu-24.04-gcc-nightly-2025.09.28-nightly.tar.xz -O riscv-toolchain.tar.xz
sudo tar -xJf riscv-toolchain.tar.xz -C /opt/riscv --strip-components=1
sudo chown -R $USER:$USER /opt/riscv
export PATH="/opt/riscv/bin:$PATH"
echo 'export PATH="/opt/riscv/bin:$PATH"' >> ~/.bashrc
riscv64-unknown-elf-gcc --version
# Rust toolchain (required for Rust experiment and build)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
. "$HOME/.cargo/env"
cargo install bindgen-cli
make -f Makefile.camp configure
make -f Makefile.camp build
# Run a specific experiment
make -f Makefile.camp test-cpu
make -f Makefile.camp test-soc
make -f Makefile.camp test-gpgpu
make -f Makefile.camp test-rust
# Run all experiments
make -f Makefile.camp test
git add .
git commit -m "feat: implement ..."
git push origin main
CI will automatically build, run tests, calculate scores, and upload to the ranking platform. Scores of 0 are not uploaded.
Implement custom RISC-V instructions for the G233 machine. Tests verify instruction behavior via semihosting-based bare-metal programs.
g233 (hw/riscv/g233.c)tests/gevico/tcg/riscv64/test-insn-*.cmake -f Makefile.camp test-cpuImplement peripheral device models (GPIO, PWM, WDT, SPI, Flash) for the G233 SoC. Tests verify register behavior and interrupt connectivity via QTest MMIO read/write.
0x10012000), PWM (0x10015000), WDT (0x10010000), SPI (0x10018000)tests/gevico/qtest/test-*.cmake -f Makefile.camp test-socImplement a PCIe GPGPU device with SIMT execution engine, DMA, and low-precision float support. Tests verify device registers, VRAM, kernel execution, and FP8/FP4 conversions.
hw/gpgpu/ (PCI device gpgpu)tests/qtest/gpgpu-test.c (17 subtests)make -f Makefile.camp test-gpgpuImplement I2C bus, GPIO I2C controller, and SPI controller in Rust for the G233 SoC. Unit tests verify core Rust logic; QTest tests verify device register behavior and peripheral communication (AT24C02 EEPROM over I2C, AT25 EEPROM over SPI).
rust/hw/i2c/src/lib.rs (3 unit tests)0x10013000, connected AT24C02 EEPROM (addr 0x50)0x10019000, connected AT25 EEPROMtests/gevico/qtest/test-i2c-*.c, tests/gevico/qtest/test-spi-rust-*.cmake -f Makefile.camp test-rustmake -f Makefile.camp help # Show all targets make -f Makefile.camp configure # Configure QEMU make -f Makefile.camp build # Build QEMU make -f Makefile.camp test-cpu # CPU experiment tests make -f Makefile.camp test-soc # SoC experiment tests make -f Makefile.camp test-gpgpu # GPGPU experiment tests make -f Makefile.camp test-rust # Rust experiment tests make -f Makefile.camp test # All tests make -f Makefile.camp clean # Clean build make -f Makefile.camp distclean # Remove build directory
main triggers a full CI run.