Port-xen archive

[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
about it:

- 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
  to pciback.hide)
  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

Home | Main Index | Thread Index | Old Index