bhyve/aarch64 Major Progress

From: Michael Dexter <editor_at_callfortesting.org>
Date: Wed, 22 May 2024 06:05:04 UTC
All,

Recent bhyve for aarch64 (ARM64) is *really* impressive.

System: ThunderX with gic0: <ARM Generic Interrupt Controller v3.0>

OS VM-IMAGE camdd'd to a physical disk and the same image used for a VM:

FreeBSD-15.0-CURRENT-arm64-aarch64-zfs-20240516-d7adf3b47a05-270169.raw.xz

Package: u-boot-bhyve-arm64

Syntax:

#!/bin/sh
[ -e /dev/vmm/arm64 ] && \
	{ /usr/sbin/bhyvectl --destroy --vm=arm64 ; sleep 1 ; }

kldstat -q -m vmm || kldload vmm

bhyve -m 4G -c 4 -D \
-s 0,hostbridge \
-s 2,virtio-blk,/root/FreeBSD-15.0-CURRENT-arm64-aarch64-zfs.raw \
-o bootrom=/usr/local/share/u-boot/u-boot-bhyve-arm64/u-boot.bin \
-o console=stdio \
arm64

Result: Works amazingly well, supporting up to 16 vCPUs, virtio-blk, and 
virtio-net. NVMe emulation is not yet implemented and there is more to 
test, but it's providing a useful environments for simultaneous 
buildworlds on the host and in the guest. Even bhyve(8) is updated!

Thank you Andrew, Mark, and everyone else who has made this possible!

Michael