From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manish Jaggi Subject: Re: PCI Pass-through in Xen ARM - Draft 2. Date: Mon, 6 Jul 2015 16:39:47 +0530 Message-ID: <559A61FB.9070707@caviumnetworks.com> References: <55903F12.7010908@caviumnetworks.com> <55911E66.2040009@citrix.com> <5598C6CD.2040207@caviumnetworks.com> <559A5BE4.1060707@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <559A5BE4.1060707@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Julien Grall , "xen-devel@lists.xen.org" , Ian Campbell , Konrad Rzeszutek Wilk , Stefano Stabellini , "Kulkarni, Ganapatrao" , Prasun Kapoor , "Kumar, Vijaya" List-Id: xen-devel@lists.xenproject.org On Monday 06 July 2015 04:13 PM, Julien Grall wrote: > On 05/07/15 06:55, Manish Jaggi wrote: >>>> 4.3 Hypercall for bdf mapping notification to xen >>>> ----------------------------------------------- >>>> #define PHYSDEVOP_map_sbdf 43 >>>> typedef struct { >>>> u32 s; >>>> u8 b; >>>> u8 df; >>>> u16 res; >>>> } sbdf_t; >>>> struct physdev_map_sbdf { >>>> int domain_id; >>>> sbdf_t sbdf; >>>> sbdf_t gsbdf; >>>> }; >>>> >>>> Each domain has a pdev list, which contains the list of all pci devices. >>>> The >>>> pdev structure already has a sbdf information. The arch_pci_dev is >>>> updated to >>>> contain the gsbdf information. (gs- guest segment id) >>>> >>>> Whenever there is trap from guest or an interrupt has to be injected, >>>> the pdev >>>> list is iterated to find the gsbdf. >>> Can you give more background for this section? i.e: >>> - Why do you need this? >>> - How xen will translate the gbdf to a vDeviceID? >> In the context of the hypercall processing. > That wasn't my question. I asked, how Xen will find the mapping between > the gdbf and vDeviceID? He doesn't have access to the firmware table and > therefore not able to find the right one. I believe gsbdf and vDeviceID would be same. In the hypercall processing its_assign_device would be called with params its_assign_device(sbdf, gsbdf, domid) > > Regards, >