Re: Quartz64: vmm: No vgic found

Roman Bogorodskiy <[email protected]>
Newsgroups gmane.os.freebsd.devel.virtualization,gmane.os.freebsd.devel.arm
Message-ID <aWvEs2_2aN0Gz67l@tulp>
  Mark Johnston wrote:

> On Thu, Jan 15, 2026 at 06:42:10PM +0100, Roman Bogorodskiy wrote:
> > Hi,
> > 
> > Loading of the vmm(4) module shows errors like:
> > 
> > Jan 15 17:32:10 generic kernel: vmm: No vgic found
> > Jan 15 17:32:10 generic kernel: module_register_init: MOD_LOAD (vmm, 0xffff0000e12931f0, 0) error 19
> > 
> > The module is listed in kldstat:
> > 
> > $ kldstat |grep vmm
> >  7    1 0xffff0000e1268000    4f000 vmm.ko
> > $
> 
> This is due to a bug.  vmm.ko should unload itself after the error you
> observed above: https://reviews.freebsd.org/D54750

Thanks for the fix.

> > But bhyve does not start:
> > 
> > # bhyve -o bootrom=/usr/local/share/u-boot/u-boot-bhyve-arm64/u-boot.bin -s 1,virtio-blk,./FreeBSD-15.0-RELEASE-arm64-aarch64-ufs.raw -o console=stdio vm0
> > bhyve: vm_openf: No such file or directory
> > #
> > 
> > Host system is:
> > 
> > Pine64 Quartz64 Model A
> > FreeBSD 15.0-RELEASE arm64
> > 
> > gic0: <ARM Generic Interrupt Controller v3.0> mem 0xfd400000-0xfd40ffff,0xfd460000-0xfd4dffff irq 12 on ofwbus0
> > gic0: using for IPIs
> > 
> > CPU  0: ARM Cortex-A55 r2p0 affinity:  0  0
> >                    Cache Type = <64 byte CWG,64 byte ERG,64 byte D-cacheline,VIPT I-cache,64 byte I-cacheline>
> >  Instruction Set Attributes 0 = <DP,RDM,Atomic,CRC32,SHA2,SHA1,AES+PMULL>
> >  Instruction Set Attributes 1 = <RCPC-8.3,DCPoP>
> >  Instruction Set Attributes 2 = <>
> >          Processor Features 0 = <RAS,GIC,AdvSIMD+HP,FP+HP,EL3 32,EL2 32,EL1 32,EL0 32>
> >          Processor Features 1 = <MTE_frac,PSTATE.SSBS>
> >          Processor Features 2 = <>
> >       Memory Model Features 0 = <TGran4,TGran64,TGran16,SNSMem,BigEnd,16bit ASID,1TB PA>
> >       Memory Model Features 1 = <XNX,PAN+ATS1E1,LO,HPD+TTPBHA,VH,16bit VMID,HAF+DS>
> >       Memory Model Features 2 = <32bit CCIDX,48bit VA,IESB,UAO,CnP>
> >       Memory Model Features 3 = <>
> >       Memory Model Features 4 = <>
> >              Debug Features 0 = <DoubleLock,2 CTX BKPTs,4 Watchpoints,6 Breakpoints,PMUv3p1,Debugv8p2>
> >              Debug Features 1 = <>
> >          Auxiliary Features 0 = <>
> >          Auxiliary Features 1 = <>
> > AArch32 Instruction Set Attributes 5 = <RDM,CRC32,SHA2,SHA1,AES+VMULL,SEVL>
> > AArch32 Media and VFP Features 0 = <FPRound,FPSqrt,FPDivide,DP VFPv3+v4,SP VFPv3+v4,AdvSIMD>
> > AArch32 Media and VFP Features 1 = <SIMDFMAC,FPHP Arith,SIMDHP Arith,SIMDSP,SIMDInt,SIMDLS,FPDNaN,FPFtZ>
> > CPU  1: ARM Cortex-A55 r2p0 affinity:  1  0
> > CPU  2: ARM Cortex-A55 r2p0 affinity:  2  0
> > CPU  3: ARM Cortex-A55 r2p0 affinity:  3  0
> > 
> > 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

And some more details. Until today I was using u-boot,
sysutils/u-boot-quartz64-a specifically.

Then I tried using Tianocore EDK2. Apparently, it supports three modes
for devices:

 - ACPI
 - ACPI + devicetree
 - Devicetree

The devicetree mode behaves the same way as u-boot, i.e. the vgic fails
to attach.

In the ACPI (and ACPI + devicetree) mode I can actually start a bhyve
VM.

However, in this mode Ethernet interface is not detected.

Earlier it was available as:

eqos0: <DesignWare EQOS Gigabit ethernet> mem 0xfe010000-0xfe01ffff irq 28,29 on ofwbus0

and now it's completely missing, though I can see it in the device tree.
Does it get confused by ACPI presence?

Roman
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.