Re: VirtIO MMIO for amd64

Emile 'iMil' Heitor <[email protected]>
Newsgroups gmane.os.netbsd.devel.kernel
Message-ID <[email protected]>
On 12/16/23 10:25, Emile 'iMil' Heitor wrote:
> FYI I'm on it, based on Colin Percival's work here 
> https://github.com/freebsd/freebsd-src/blob/main/sys/dev/virtio/mmio/virtio_mmio_cmdline.c
> I'm getting some results but Firecracker uses MMIO v2 and we only have
> v1 so there's still quite some work to do.

So far I get the block device and the correct geometry
is reported

[   1.0000030] virtio0 at mainbus0
[   1.0000030] kernel parameters: console=com root=ld0e 
virtio_mmio.device=4K@0xd0000000:5
[   1.0000030] viommio: 4K@0xd0000000:5
[   1.0000030] virtio0: block device (id 2, rev. 0x02)
[   1.0000030] ld0 at virtio0: features: 0x100000000<V1>
[   1.0000030] ld0: 30720 KB, 60 cyl, 16 head, 63 sec, 512 bytes/sect x 
61441 sectors
[   1.0199904] boot device: ld0

but I get stuck in sys/kern/subr_disk_open.c in opendisk() at:

error = VOP_OPEN(tmpvn, FREAD | FSILENT, NOCRED);

ideas on what could be locking here?
Maybe related: the interrupt handler function I wrote uses
softint_establish() as there's no "real" hardware behind this
block device, is this the correct way to deal with it?

Anybody wanting to have a look https://imil.net/NetBSD/mmio.patch
It applies over this branch 
https://github.com/NetBSDfr/NetBSD-src/tree/GENPVH

-- 
------------------------------------------------------------------------
Emile `iMil' Heitor <imil@{home.imil.net,NetBSD.org}> | https://imil.net
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.