Alex Williamson <alex.williamson <at> redhat.com> writes: > > On Sun, 2013-04-07 at 19:19 +0000, zhengfei wrote: > > Hi, > > > > I'm writing a driver for a SR-IOV device on the PCI bus. My architecture is > > a 64-bit X86 of intel Sandy bridge. > > > > In my device driver, I want to configure the device to transfer data to/from > > X86.I get the the device BAR MMIO base address with the command "lspci - s > > 04:00.03 -xxx" in the guest os(kvm). > > But after I ioremap() that MMIO base address,I failed to access the BAR MMIO > > space in the guest os(kvm). > > > > Is there a function which show mapping between the real PCI address stored in > > the BAR and the emulated address stored in the BAR? > > Is this a userspace driver or a kernel driver? I can't figure out why > you would use lspci to get a static BAR address, then use ioremap() to > map it. If it's a kernel driver, the sequence you want is something > like: > > pci_enable_device > pci_request_selected_regions > pci_iomap > > Thanks, > Alex > > It is a userspace driver on guest os.To be simply,I got the BAR0 address(gpa) on guest os,but I failed to access real BAR0 MMIO address space of the device with the gpa.So what can I do next? and in which source code file,could I find the procedure of mapping the real BAR address space(hpa) to gpa? Thanks -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html