Re: [Question] Failed to access the BAR MMIO space of PCI device

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 2013-04-11 at 17:15 +0000, zhengfei wrote:
> 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?

The guest doesn't have access to the hpa, nor should it need it.  To map
BAR0 from guest userspace
mmap /sys/bus/pci/devices/xxxx:xx:xx.x/resource0.  Thanks,

Alex


--
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




[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux