[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
PAE, PCI pass-through
I did a bunch of xen-related commits yesterday, here's some words
- I fixed a size mismatch between function prototypes and assembly
implementation of bus_space when PAE is defined. With this hardware
drivers are working with PAE kernels. After fixing a few printf formats
and type mismatch it's possible to build a working PAE XEN3_DOM0
kernel. I added a XEN3PAE_DOM0 kernel config, but it's not built
by default for now. I also updated the xenkernel3 package to
install PAE xen kernels in addition to non-PAE ones.
Upgrading to PAE is just a matter of installing a PAE-enabled xen.gz
and /netbsd, and PAE kernels for domUs, no other changes are required.
- I commited the xen3 PCI front-end device. To use it, add to your
domU config file
xpci* at xenbus ?
pci* at xpci ?
and then the PCI drivers you need.
It has been succesffully tested only with ahc(4) and piixide(4).
uhci(4) failed trying to allocate a large contigous DMA buffer;
this needs to be tracked down.
For now, you need a linux dom0 to use it.
- I commited work in progress for xen3 PCI back-end device (allowing
dom0 to export PCI devices to domU). The kernel implementation is
supposed to be complete but has not been tested; xentools3 support
is missing. To play with it, add
pciback* at pci ?
to your dom0 kernel config and boot with
on the kernel's boot line (bb is PCI bus number, dd PCI device number
and f PCI function number, all in hex). The pciback driver will
attach in place of the driver that would normally handle the device.
(several devices can be specified by giving several () sequences
pciback will export device's properties to xentools via files in
What's needed now if change xentools3 to get devices properties
from /kern/xen/pci instead of /sys/bus/pci/. This should be trivial for
someone familiar with python (it's a file called pci.py or pciif.py in
xentools3). Once this is done, it should be possible to use
in a domU's config file, and have the domU see the pci device.
The kernel implementation is in pciback.c, and has 2 parts:
a PCI part which match and attaches the PCI devices to pciback* at pci ?
instances, and a xenbus part which handle requests from xend and
domUs. The glue between the 2 parts is done using linked lists.
The linux implementation has restrictions on PCI config space writes;
this is not implemented in NetBSD yes. this may be something we
want to implement in the future.
I'm now away from my deelopement boxes for 2 weeks, I won't work on this
before I'm back.
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
NetBSD: 26 ans d'experience feront toujours la difference
Main Index |
Thread Index |