From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 8/8] drm/i915: Determine the stolen memory base address on gen2 Date: Thu, 28 Nov 2013 20:01:10 +0200 Message-ID: <20131128180110.GC10036@intel.com> References: <1385651710-7768-1-git-send-email-ville.syrjala@linux.intel.com> <1385651710-7768-9-git-send-email-ville.syrjala@linux.intel.com> <20131128163214.GA27806@nuc-i3427.alporthouse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 35C5BFACE9 for ; Thu, 28 Nov 2013 10:01:14 -0800 (PST) Content-Disposition: inline In-Reply-To: <20131128163214.GA27806@nuc-i3427.alporthouse.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org On Thu, Nov 28, 2013 at 04:32:14PM +0000, Chris Wilson wrote: > On Thu, Nov 28, 2013 at 05:15:10PM +0200, ville.syrjala@linux.intel.com w= rote: > > From: Ville Syrj=E4l=E4 > > = > > There doesn't seem to an explicit stolen memory base register on gen2. > > Some old comment in the code suggests we should get it via > > max_low_pfn_mapped, but that's clearly a bad idea on my MGM. > > = > > The e820 map in said machine looks like this: > > [ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009f7ff] u= sable > > [ 0.000000] BIOS-e820: [mem 0x000000000009f800-0x000000000009ffff] r= eserved > > [ 0.000000] BIOS-e820: [mem 0x00000000000ce000-0x00000000000cffff] r= eserved > > [ 0.000000] BIOS-e820: [mem 0x00000000000dc000-0x00000000000fffff] r= eserved > > [ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000001f6effff] u= sable > > [ 0.000000] BIOS-e820: [mem 0x000000001f6f0000-0x000000001f6f7fff] A= CPI data > > [ 0.000000] BIOS-e820: [mem 0x000000001f6f8000-0x000000001f6fffff] A= CPI NVS > > [ 0.000000] BIOS-e820: [mem 0x000000001f700000-0x000000001fffffff] r= eserved > > [ 0.000000] BIOS-e820: [mem 0x00000000fec10000-0x00000000fec1ffff] r= eserved > > [ 0.000000] BIOS-e820: [mem 0x00000000ffb00000-0x00000000ffbfffff] r= eserved > > [ 0.000000] BIOS-e820: [mem 0x00000000fff00000-0x00000000ffffffff] r= eserved > > = > > That makes max_low_pfn_mapped =3D 1f6f0000, so assuming our stolen memo= ry > > would start there would place it on top of some ACPI memory regions. > > So not a good idea as already stated. > > = > > The 9MB region after the ACPI regions at 0x1f700000 however looks > > promising given that the macine reports the stolen memory size to be > > 8MB. Looking at the PGTBL_CTL register, the GTT entries are at offset > > 0x1fee00000, and given that the GTT entries occupy 128KB, it looks like > > the stolen memory could start at 0x1f700000 and the GTT entries would > > occupy the last 128KB of the stolen memory. I have no idea about the > > extra 1MB after the GTT entries. > = > The base address for stolen memory is explicitly Top of Memory on gen2, > at least in 830/845 cspecs that I found (and recall). But this idea is > interesting... I have a hard time beliveing people would be nuts enough to place the GTT entries somewhere the middle of the stolen memory area rather than at the end. But I suppose I could be wrong. There's also one additional reason why I suspect the last 1MB (or .5MB on Daniel's machine) must be something else; it's covered by a UC MTRR, whereas the presumed stolen memory range is not. -- = Ville Syrj=E4l=E4 Intel OTC