Re: Quartz64: vmm: No vgic found

From: Andrew Turner <andrew_at_fubar.geek.nz>
Date: Tue, 20 Jan 2026 12:32:56 UTC

> On 19 Jan 2026, at 18:03, Roman Bogorodskiy <novel@freebsd.org> wrote:
> 
>  Mark Johnston wrote:
> 
>> On Sat, Jan 17, 2026 at 06:19:47PM +0100, Roman Bogorodskiy wrote:
>>>  Mark Johnston wrote:
>>> 
>>>> On Thu, Jan 15, 2026 at 06:42:10PM +0100, Roman Bogorodskiy wrote:
>>>>> But bhyve does not start:
>>>>> [...]
>>>>> Does the board need something in addition to GICv3 that is missing that
>>>>> is needed to make vmm(4) work, or is that a configuration or vmm(4)
>>>>> issue?
>>>> 
>>>> The vgic driver is refusing to attach, apparently because we don't
>>>> detect virtualization support when probing the controller.  When booting
>>>> from a FDT we look for an "interrupts" property to determine this, but
>>>> it's not clear to me whether that's totally right.  Can you share the
>>>> device tree you're using with this board?
>>> 
>>> Not sure what's the right way to share the device tree, so I used the
>>> command I found on wiki (https://wiki.freebsd.org/FlattenedDeviceTree),
>>> that is: sysctl -b hw.fdt.dtb | dtc -I dtb
>>> 
>>> It's lengthy, so I uploaded it here:
>>> 
>>> https://people.freebsd.org/~novel/misc/quartz64_devicetree.txt
>> 
>> So, from what I can tell, gic_v3_ofw_bus_attach() should be attaching a
>> child vgic device.  Are you loading vmm.ko after the kernel has booted?
>> Does anything change if you load it from loader.conf, or compile vmm
>> into the kernel?
> 
> I was loading vmm.ko manually, i.e. by running `kldload vmm`.
> Nothing changes when I load it via vmm_load="YES" in /boot/loader.conf:
> 
> vmm: No vgic found
> module_register_init: MOD_LOAD (vmm, 0xffff0000014391f0, 0) error 19
> 
> I'll test adding that to the kernel once I have an established procedure
> of building a kernel for this board.

Can you try the patch in https://reviews.freebsd.org/D54791? It fixes an issue where the vgic driver isn’t attached if there is no ITS on the board. This appears to be the case with the Quartz64.

Andrew