Skip to content

Running

LekKit edited this page Oct 7, 2024 · 36 revisions

Running RVVM

Demo

CLI Example: Launches a dual-core VM with 2 GiB of RAM, 1280x720 display.

Runs OpenSBI + U-Boot firmware, Arch RISC-V guest. Forwards 127.0.0.1:2022 into guest SSH port.

rvvm fw_payload.bin -i archriscv.img -m 2G -smp 2 -res 1280x720 -portfwd tcp/127.0.0.1:2022=22

Extended help:

Usage: rvvm <firmware> [-m 256M] [-k kernel] [-i drive.img] ...

    <firmware>       Initial M-mode firmware (OpenSBI [+ U-Boot], etc)
    -k, -kernel ...  Optional S-mode kernel payload (Linux, U-Boot, etc)
    -i, -image  ...  Attach preferred storage image (Currently as NVMe)
    -m, -mem 1G      Memory amount, default: 256M
    -s, -smp 4       Cores count, default: 1
    -rv32            Enable 32-bit RISC-V, 64-bit by default
    -cmdline    ...  Override payload kernel command line
    -append     ...  Modify payload kernel command line
    -res 1280x720    Set display(s) resolution
    -poweroff_key    Send HID_KEY_POWER instead of exiting on GUI close
    -portfwd 8080=80 Port forwarding (Extended: tcp/127.0.0.1:8080=80)
    -nvme       ...  Explicitly attach storage image as NVMe device
    -ata        ...  Explicitly attach storage image as ATA (IDE) device
    -nogui           Disable display GUI
    -nonet           Disable networking
    -serial     ...  Add more serial ports (Via pty/pipe path), or null
    -dtb        ...  Pass custom Device Tree Blob to the machine
    -dumpdtb    ...  Dump auto-generated DTB to file
    -v, -verbose     Enable verbose logging
    -h, -help        Show this help message

Testing or development features:

    -noisolation                   Disable seccomp/pledge isolation
    -nojit                         Disable RVJIT (For debug purposes, slow!)
    -rvjit_harvard                 Strict instruction cache flush checks (For guest debug, slow!)
    -rvjit_disable_rwx             Force W^X JIT heap allocation
    -rvjit_force_bmi2 [true/false] Force enable/disable BMI2 x86 extensions
    -jitcache 16M                  Per-core JIT cache size (Scales with guest RAM by default)
    -sv48                          Enable SV48 MMU pagetable scheme
    -sv57                          Enable SV57 MMU pagetable scheme

Recommended guest firmware & images

Clone this wiki locally