On Thu, Apr 22, 2021 at 11:49:43AM +0200, Daniel Vetter wrote:
On Wed, Apr 21, 2021 at 06:34:01PM +0300, Ville Syrjala wrote:
From: Ville Syrjälä ville.syrjala@linux.intel.com
Currently we try to detect a symmetric memory configurations using a magic DCC2_MODIFIED_ENHANCED_DISABLE bit. That bit is either only set on a very specific subset of machines or it just does not exist (it's not mentioned in any public chipset datasheets I've found). As it happens my CL/CTG machines never set said bit, even if I populate the channels with identical sticks.
So let's do the L-shaped memory detection the same way as the desktop variants, ie. just look at the DRAM rank boundary registers to see if both channels have an identical size.
With this my CL/CTG no longer claim L-shaped memory when I use identical sticks. Also tested with non-matching sticks just to make sure the L-shaped memory is still properly detected.
And for completeness let's update the debugfs code to dump the correct set of registers on each platform.
Cc: Chris Wilson chris@chris-wilson.co.uk Signed-off-by: Ville Syrjälä ville.syrjala@linux.intel.com
Did you check this with the swapping igt? I have some vague memories of bug reports where somehow the machine was acting like it's L-shaped memory despite that banks were populated equally. I've iirc tried all kinds of tricks to figure it out, all to absolutely no avail.
BTW looking at the patches/dumps in eg. https://bugs.freedesktop.org/show_bug.cgi?id=28813 I can't immediately see a single thing that is actually using the correct register offsets for cl/ctg. So I'm a bit sceptical about how well this was researched in the past.