From mboxrd@z Thu Jan 1 00:00:00 1970 From: Keir Fraser Subject: Re: [PATCH] hvmloader: Intel GPU passthrough, reverse OpRegion Date: Thu, 24 Nov 2011 09:56:47 +0000 Message-ID: References: <20111124093551.GC22563@spongy.cam.xci-test.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20111124093551.GC22563@spongy.cam.xci-test.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Jean Guyader Cc: "xen-devel@lists.xensource.com" , "allen.m.kay@intel.com" List-Id: xen-devel@lists.xenproject.org On 24/11/2011 09:35, "Jean Guyader" wrote: > On 23/11 05:20, Keir Fraser wrote: >> On 23/11/2011 16:07, "Jean Guyader" wrote: >> >>> >>> The Intel GPU uses a two pages NVS region called OpRegion. >>> In order to get full support for the driver in the guest >>> we need to map this region. >>> >>> This patch reserves 2 pages on the top of the RAM and >>> mark this region as NVS in the e820. Then we write the >>> address to the config space (offset 0xfc) so the device >>> model can map the OpRegion at this address in the guest. >> >> Please use mem_hole_alloc() rather than adjusting {low,high}_mem_pgend. >> > > I'm calling mem_hole_alloc() in pci_setup (see patch attached), > but that causes an overlap in e820, is that expected? You'll have to adjust your changes to build_e820_table() to split the range RESERVED_MEMBASE-0x10000000 into two pieces partitioned by your NVS region. The region starting at RESERVED_MEMBASE comes *before* your NVS region. Then you add an another reserved region up to 0x1000000 if your NVS region exists. -- Keir > (XEN) HVM5: E820 table: > (XEN) HVM5: [00]: 00000000:00000000 - 00000000:0009e000: RAM > (XEN) HVM5: [01]: 00000000:0009e000 - 00000000:000a0000: RESERVED > (XEN) HVM5: HOLE: 00000000:000a0000 - 00000000:000e0000 > (XEN) HVM5: [02]: 00000000:000e0000 - 00000000:00100000: RESERVED > (XEN) HVM5: [03]: 00000000:00100000 - 00000000:3f800000: RAM > (XEN) HVM5: HOLE: 00000000:3f800000 - 00000000:feff8000 > (XEN) HVM5: [04]: 00000000:feff8000 - 00000000:feffa000: NVS > (XEN) HVM5: OVERLAP!! > (XEN) HVM5: [05]: 00000000:fc000000 - 00000001:00000000: RESERVED > > Jean