[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 07 of 16] amd iommu: Add 2 hypercalls for libxc
>>> On 14.12.11 at 16:29, Wei Wang <wei.wang2@xxxxxxx> wrote: > # HG changeset patch > # User Wei Wang <wei.wang2@xxxxxxx> > # Date 1323875772 -3600 > # Node ID ef5698887d044ad58293bee3549eaa20310c2b17 > # Parent fbed4e6011fce13d3a521bbc339f4959bf32a06c > amd iommu: Add 2 hypercalls for libxc > > iommu_set_msi: used by qemu to inform hypervisor iommu vector number in > guest > space. Hypervisor needs this vector to inject msi into guest when PPR > logging > happens. And this cannot be done with the existing MSI emulation? > iommu_bind_bdf: used by xl to bind guest bdf number to machine bdf number. > IOMMU emulations codes receives commands from guest iommu driver and > forwards > them to host iommu. But virtual device id from guest should be converted > into > physical before sending to real hardware. The whole logic here needs to take the segment into account. No new code should again ignore the segment numbers. > --- a/xen/include/public/domctl.h Wed Dec 14 16:16:11 2011 +0100 > +++ b/xen/include/public/domctl.h Wed Dec 14 16:16:12 2011 +0100 > @@ -848,6 +848,31 @@ struct xen_domctl_set_access_required { > typedef struct xen_domctl_set_access_required > xen_domctl_set_access_required_t; > DEFINE_XEN_GUEST_HANDLE(xen_domctl_set_access_required_t); > > +#if defined(__i386__) || defined(__x86_64__) What is x86-specific about these? Jan > +/* Support for guest iommu emulation */ > +struct xen_domctl_guest_iommu_op { > + /* XEN_DOMCTL_GUEST_IOMMU_OP_* */ > +#define XEN_DOMCTL_GUEST_IOMMU_OP_SET_MSI 0 > +#define XEN_DOMCTL_GUEST_IOMMU_OP_BIND_BDF 1 > + uint8_t op; > + union { > + struct iommu_msi { > + uint8_t vector; > + uint8_t dest; > + uint8_t dest_mode; > + uint8_t delivery_mode; > + uint8_t trig_mode; > + } msi; > + struct bdf_bind { > + uint32_t g_bdf; > + uint32_t m_bdf; > + } bdf_bind; > + } u; > +}; > +typedef struct xen_domctl_guest_iommu_op xen_domctl_guest_iommu_op_t; > +DEFINE_XEN_GUEST_HANDLE(xen_domctl_guest_iommu_op_t); > +#endif > + > struct xen_domctl { > uint32_t cmd; > #define XEN_DOMCTL_createdomain 1 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |