On Fri, Jan 10, 2020 at 03:58:16AM +0000, Joseph Mayer wrote: > Maybe this topic is better suited for tech@, you tell: > > Is there some way I can implement PCI drivers in userland in OpenBSD?
In light of the other responses I think the best you could expect is PCI passthrough to a virtual machine. But you'd first need to add support for IOMMU and SR-IOV to OpenBSD vmm(4). Judging by some passing mailing-list comments, I believe such support is welcome in principle. In some ways such a setup is rather elegant, ignoring the incredible hardware and firmware complexity hidden in the CPU and controllers. You don't get to expose the device through typical subsystem interfaces (unless there's a userland bridge like vscsi(4) or fuse(4)), but the driver could otherwise look and interact like any other process, supporting UNIX domain sockets and other common userland IPC interfaces.