PCI passthrough in vancouver

Salscheider, Niels Ole niels.ole.salscheider at ...208...
Wed Oct 23 16:46:22 CEST 2013


> > For PCI passthrough, I have to handle MessageHostOp::OP_ATTACH_MSI
> > (amongst others). This requires modifications to the Irq_connection /
> > Irq_session. My current plan is to pass the bdf value through to the
> > Irq_proxy_component, where I can use it to get the pci config space.
> I would advise to obtain the pci config space information (physical
> address respectively a dataspace to it) directly in Seoul/Vancouver via
> the pci_session.
> Then you can pass this information as parameter (so, either the physical
> address or better the dataspace capability) to the Irq::connection
> request and Core can establish a valid memory mapping for issuing later
> on the assign_gsi syscall.

This is what I tried at first, but just passing the physical address to
the system call does not work because the assign_gsi syscall expects the
address to be mapped.
Passing the dataspace capability should work, but I cannot do so in the
constructor of Irq_connection since the latter passes all arguments in a
string to Irq_session.

I could of course add a function to set the dataspace capability for the
pci config space and wait until it has been called before assigning the
gsi, but I have hoped for a cleaner solution.


Intel GmbH
Dornacher Strasse 1
85622 Feldkirchen/Muenchen, Deutschland
Sitz der Gesellschaft: Feldkirchen bei Muenchen
Geschaeftsfuehrer: Christian Lamprechter, Hannes Schwaderer, Douglas Lusk
Registergericht: Muenchen HRB 47456
Ust.-IdNr./VAT Registration No.: DE129385895
Citibank Frankfurt a.M. (BLZ 502 109 00) 600119052

More information about the users mailing list