[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] How to register a 64 bit BAR
On Wed, Sep 24, 2014 at 03:57:58PM +0300, Pasi Kärkkäinen wrote: > On Wed, Sep 24, 2014 at 12:47:01PM +0000, Zytaruk, Kelly wrote: > > Thanks Anthony, you have saved me hours of searching through the source > > code. > > > > I am working with Xen 4.2 qemu-traditional. I checked the source code for > > upstream xen (qemu-xen-dir) and I didn't even find any support for the > > pci_register_io_region() function. Apparently BAR remapping callbacks > > aren't supported in this version. This is most unfortunate :-( > > > > Hmm.. I wonder if this old patch would be of any help? > > http://lists.xen.org/archives/html/xen-devel/2012-08/msg01168.html > And the two other patches from the "xen/tools: Add 64 bits big bar support" thread (3 patches total). -- Pasi > > > Thanks for the help, > > Kelly > > > > > -----Original Message----- > > > From: Anthony PERARD [mailto:anthony.perard@xxxxxxxxxx] > > > Sent: Wednesday, September 24, 2014 5:53 AM > > > To: Zytaruk, Kelly > > > Cc: xen-devel@xxxxxxxxxxxxx > > > Subject: Re: [Xen-devel] How to register a 64 bit BAR > > > > > > On Tue, Sep 23, 2014 at 08:33:08PM +0000, Zytaruk, Kelly wrote: > > > > I have used pci_register_io_region() to register 32 bit BARs but how do > > > > I > > > register a 64 bit BAR? > > > > > > > > Let's say my region uses BAR 2 and BAR 3 for a 64 bit address. Do I > > > > register them separately as in > > > > > > > > pci_register_io_region (dev, 2, region_size, PCI_ADDRESS_SPACE_MEM, > > > > &my_func); pci_register_io_region (dev, 3, region_size, ???, > > > > &my_func); > > > > > > No, that would register two different BARs. > > > > > > > What would I specify as a region type for BAR 3? > > > > > > Nothing, since you don't want two different BARs. > > > > > > > Or is QEMU smart enough for me to register just BAR 2 and it will know > > > somehow that it is a 64 bit BAR? > > > > > > Nop. > > > > > > > I also want to call cpu_register_physical_memory() from within the > > > > callback > > > but the callback only takes a uint32_t as a physical address. > > > > I am having difficulty finding an example that uses a 64 bit BAR > > > > address. > > > > > > Look for where PCI_ADDRESS_SPACE_MEM is define, and you will find how to > > > register a 64bit BAR. > > > Unless your are speaking about qemu-traditional and I'm not sure that is > > > possible. > > > > > > After looking in the source code of qemu-traditional, it does not appear > > > to > > > support 64bit BAR. Only QEMU upstream handle them (also called qemu-xen). > > > > > > -- > > > Anthony PERARD > > > > _______________________________________________ > > Xen-devel mailing list > > Xen-devel@xxxxxxxxxxxxx > > http://lists.xen.org/xen-devel > > _______________________________________________ > Xen-devel mailing list > Xen-devel@xxxxxxxxxxxxx > http://lists.xen.org/xen-devel _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |