From mboxrd@z Thu Jan 1 00:00:00 1970 From: Keir Fraser Subject: Re: Re: Accessing PCI BAR space directly from XEN hypervisor Date: Tue, 14 Jun 2011 07:38:55 +0100 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: quoted-printable Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: veerasena reddy , xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org On 14/06/2011 04:25, "veerasena reddy" wrote: > Hi, >=20 > Can someone please throw some light on this >=20 > Thanks in advance. You'll have to set up a fixmap slot and use set_fixmap and fix_to_virt. Xen doesn't have ioremap. -- Keir > Regards, > VSR. > On Mon, Jun 13, 2011 at 2:24 PM, veerasena reddy w= rote: >> Hi, >>=20 >> I am doing an experiment to see if I can get more throughput by moving t= he Tx >> ring update and doorbell ring mechanism to hypervisor and provide a hype= rcall >> to HVM Guest. When there is a Tx packet ready, the HVM guest invokes the >> hypercall along with the packet address as argument. The hypercall funct= ion >> will write the packet address to the Tx ring and rings the doorbell dire= ctly >> without involving dom0. >>=20 >> AS part of this, i need to access IO Memory BAR region of the PCI networ= k >> device from XEN hypervisor (hypercall handler). For this, i tried conver= ting >> the BAR Physical address (captured from lspci as shown below) of the PCI >> device to MFN, but got all F's (invalid entry). Even pfn_valid(0xf090400= 0) >> failed on this address. Where as I could successfully map a dom0 page >> (allocated using vmalloc()) and access in hypervisor using >> map_domain_page(mfn). >>=20 >> Could any one please suggest how to access the BAR regions of a PCI devi= ce >> from hypervisor? how to do mapping and read/write operations? >>=20 >> Also, Could you please explain the difference between mapping locally >> allocated pages and PCI BAR memory of dom0 in hypervisor? >>=20 >> Thanks in advance. >>=20 >> Regards, >> VSR. >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> [root@fc13 xen]# lspci -vvs 09:00.0 >> 09:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/816= 8B >> PCI Express Gigabit Ethernet controller (rev 03) >> =A0=A0=A0 Subsystem: Lenovo Device 2131 >> =A0=A0=A0 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- >> Stepping- SERR+ FastB2B- DisINTx+ >> =A0=A0=A0 Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=3Dfast >TAbort- > SERR- > =A0=A0=A0 Latency: 0, Cache Line Size: 64 bytes >> =A0=A0=A0 Interrupt: pin A routed to IRQ 1247 >> =A0=A0=A0 Region 0: I/O ports at 4000 [size=3D256] >> =A0=A0=A0 Region 2: Memory at f0904000 (64-bit, prefetchable) [size=3D4K] >> =A0=A0=A0 Region 4: Memory at f0900000 (64-bit, prefetchable) [size=3D16K] >> =A0=A0=A0 [virtual] Expansion ROM at f0920000 [disabled] [size=3D128K] >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >=20 >=20 >=20 > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel