Re: git: 5912458941af - main - emulators/rvvm: RISC-V Virtual Machine

From: Mitchell Horne <mhorne_at_freebsd.org>
Date: Fri, 31 Jan 2025 17:15:08 UTC

On 1/22/25 21:39, Robert Clausecker wrote:
> Am Thu, Jan 23, 2025 at 01:07:21AM +0000 schrieb Robert Clausecker:
>> The branch main has been updated by fuz:
>>
>> URL: https://cgit.FreeBSD.org/ports/commit/?id=5912458941af2189b7fa940dd20a21fd168e67fd
>>
>> commit 5912458941af2189b7fa940dd20a21fd168e67fd
>> Author:     Robert Clausecker <fuz@FreeBSD.org>
>> AuthorDate: 2025-01-22 23:29:49 +0000
>> Commit:     Robert Clausecker <fuz@FreeBSD.org>
>> CommitDate: 2025-01-23 01:06:22 +0000
>>
>>      emulators/rvvm: RISC-V Virtual Machine
>>      
>>      RVVM is a virtual machine / emulator for RISC-V guests, which emphasizes
>>      on performance, security, lean code and portability. It already runs a
>>      lot of guest operating systems, including Linux, Haiku, FreeBSD,
>>      OpenBSD, etc. It also aims to run RISC-V applications on a foreign-arch
>>      host without full OS guest & isolation (Userland emulation).
>>      
>>      WWW: https://github.com/LekKit/RVVM

Cool, thanks for creating the port!

>> ---
>>   emulators/Makefile                  |  1 +
>>   emulators/rvvm/Makefile             | 79 +++++++++++++++++++++++++++++++++++++
>>   emulators/rvvm/distinfo             |  9 +++++
>>   emulators/rvvm/files/patch-Makefile | 75 +++++++++++++++++++++++++++++++++++
>>   emulators/rvvm/files/pkg-message.in | 11 ++++++
>>   emulators/rvvm/pkg-descr            |  5 +++
>>   emulators/rvvm/pkg-plist            | 30 ++++++++++++++
>>   7 files changed, 210 insertions(+)
> 
>> +MASTER_SITES=	https://github.com/LekKit/patches-misc/releases/download/rvvm-uboot-2024.7/:fw \
>> +		https://github.com/LekKit/riscv-tests/releases/download/rvvm-tests/:tests
>> +DISTFILES=	${FWFILES:.bin=.bin:fw} riscv-tests.tar.gz:tests
> 
> It would be great if we could build these firmware images from source.
> Upstream provides a patch set for U-Boot in the repository given
> in MASTER_SITES, but I don't know enough about U-Boot to generate
> the right images from that.  Maybe someone from uboot@ could help?
> 

The link you shared above is inaccessible to me, but browsing the repo I was able to find the patch against v2024.07 [1].

It basically enables a couple key things in the qemu-riscv config:
  - Simple framebuffer
  - NVMe as a default boot target

These changes have since been applied upstream, meaning the next upgrade to our u-boot ports should make the u-boot-qemu-riscv64 firmware totally usable for RVVM.

The current version (2024.07) seems to be usable, if you provide -nogui to rvvm and type 'run nvme_boot' at the u-boot command prompt.

This does not answer the question about applying patches. I don't exactly know how it works with these ports, and it is overall discouraged.

I hope this helps regardless.

Mitchell

[1] https://github.com/LekKit/patches-misc/blob/master/uboot/uboot2024.7_rvvm_support.patch

> Yours,
> Robert Clausecker
>