lkml.org 
[lkml]   [2011]   [Nov]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] amd64_edac: fix size decoding error on K8
On 11/09/2011 03:42 PM, Borislav Petkov wrote:
> On Wed, Nov 09, 2011 at 03:32:58PM +0100, Niklas Söderlund wrote:
>> Use a lookup table to calculate the size of a chip select. The old
>> method of calculating size return erroneous values for some memory
>> configurations.
>
> Can you elaborate more on those erroneous values, please?
>
> Thanks.
>

The decoding table from the documentation:

cs_mode size (mb)
0 32
1 64
2 128
3 128
4 256
5 512
6 256
7 512
8 1024
9 1024
10 2048

The original code:

if (cs_mode == 3 || cs_mode == 8)
return 32 << (cs_mode - 1);
else
return 32 << cs_mode;

The code tries to compensate for the irregularity in the decoding table
but fails for cs_mode greater or equal to 4. It fails because:

- It do not consider the cumulating effect of reoccurring sizes for all
values of cs_mode. It only tries for the special cases and it only
succeeds in one.

- It do not consider the out of order values of cs_mode values 4-7: 256,
512, 256, 512.

Best Regards
// Niklas
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2011-11-09 16:15    [W:0.058 / U:2.252 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site