Hello,
On 23.10.2013 14:36, Salscheider, Niels Ole wrote:
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.
However, my current implementation hangs when I try to get the first device from a Pci::Connection in Irq_proxy_component.
You try effectively to call from Core (where Irq_proxy is running in) an outer great great child (pci server). Probably somewhere in the routing request resolving you block/deadlock, since Core never/has no way to use services of children.
Regards,
Alexander Boettcher.