Subject: [bug#64907] [PATCH 2/2] gnu: Add opensbi-rvvm.

From: Eva Kurchatova <[email-masked]>
Date: Mon, 18 Mar 2024 20:23:14 +0200

RVVM developer here.

First of all, thanks for package support. There is v0.6 released which
has stable networking and a lot of small features/fixes.

The opensbi patch is not necessary at all. It is kinda an internal
optimization patch I use because I like to optimize stuff, and when
patches aren't getting accepted I put them in my repo. Generic OpenSBI
works without a problem there.

RVVM generally tries to be very compatible with QEMU, but some devices
are different - for example instead of Virtio-blk, NVMe drives are
emulated.
This configuration is also possible on QEMU, so it's not like it's
entirely incompatible - more like a minimal subset of it.

The U-Boot patch is needed because, for some reason QEMU U-Boot config
doesn't enable NVMe boot (however you can choose NVMe drives with
QEMU, and they too won't work there). I believe this is an oversight
on U-Boot side.
I also enabled EFI framebuffer which is needed by Haiku OS guests.
QEMU doesn't have an EFI framebuffer, but adding another feature into
U-Boot doesn't hurt. It still works on QEMU afterwards.

I also see mentions that I am purposely making RVVM incompatible with
QEMU, and I want to remind you that this is not the case at all.
The U-Boot issue is simply a lacking build option on their side, which
affects some QEMU usecases too. It's more like QEMU U-Boot is
incompatible with anything other than the default unconfigured QEMU
Virt board.

The real solution would be to reach upstream U-Boot and ask to enable
NVMe boot hook, and options `VIDEO` `VIDEO_SIMPLE`.
Example (notice it has other stuff enabled, not intended for
upstream): https://github.com/LekKit/patches-misc/blob/master/uboot/uboot2024_rvvm_support.patch