Browse Source

DDR3: Decode and print reference card revision.

git-svn-id: http://lm-sensors.org/svn/i2c-tools/trunk@6138 7894878c-1315-0410-8ee3-d5d059ff63e0
tags/v4.0
Jean Delvare 12 years ago
parent
commit
acd43b1773
  1. 1
      CHANGES
  2. 10
      eeprom/decode-dimms

1
CHANGES

@ -30,6 +30,7 @@ SVN HEAD
Don't print the DDR3 time bases Don't print the DDR3 time bases
Decode the FTB fields of DDR3 tCk, tAA, tRCD, tRP and tRC Decode the FTB fields of DDR3 tCk, tAA, tRCD, tRP and tRC
Fix speed and PC3 number of high-speed DDR3 modules Fix speed and PC3 number of high-speed DDR3 modules
Decode DDR3 reference card revision
i2cdetect: Do a best effort detection if functionality is missing i2cdetect: Do a best effort detection if functionality is missing
Clarify the SMBus commands used for probing by default Clarify the SMBus commands used for probing by default
i2c-dev.h: Minimize differences with kernel flavor i2c-dev.h: Minimize differences with kernel flavor

10
eeprom/decode-dimms

@ -1340,15 +1340,17 @@ sub ddr3_mtb_ftb($$$$)
return $byte1 * $mtb + $byte2 * $ftb / 1000; return $byte1 * $mtb + $byte2 * $ftb / 1000;
} }
sub ddr3_reference_card($)
sub ddr3_reference_card($$)
{ {
my ($rrc) = @_;
my ($rrc, $ext) = @_;
my $alphabet = "ABCDEFGHJKLMNPRTUVWY"; my $alphabet = "ABCDEFGHJKLMNPRTUVWY";
my $ref = $rrc & 0x1f; my $ref = $rrc & 0x1f;
my $revision = $ext >> 5;
my $ref_card; my $ref_card;
return "ZZ" if $ref == 0x1f; return "ZZ" if $ref == 0x1f;
$ref += 0x1f if $rrc & 0x80; $ref += 0x1f if $rrc & 0x80;
$revision = (($rrc >> 5) & 0x03) if $revision == 0;
if ($ref < length($alphabet)) { if ($ref < length($alphabet)) {
# One letter reference card # One letter reference card
@ -1361,7 +1363,7 @@ sub ddr3_reference_card($)
substr($alphabet, $ref, 1); substr($alphabet, $ref, 1);
} }
return $ref_card;
return "$ref_card revision $revision";
} }
# Parameter: EEPROM bytes 0-127 (using 3-76) # Parameter: EEPROM bytes 0-127 (using 3-76)
@ -1539,7 +1541,7 @@ sub decode_ddr3_sdram($)
(($bytes->[61] >> 4) & 15) +1)); (($bytes->[61] >> 4) & 15) +1));
printl("Module Width (mm)", ($bytes->[3] <= 2) ? 133.5 : printl("Module Width (mm)", ($bytes->[3] <= 2) ? 133.5 :
($bytes->[3] == 3) ? 67.6 : "TBD"); ($bytes->[3] == 3) ? 67.6 : "TBD");
printl("Module Reference Card", ddr3_reference_card($bytes->[62]));
printl("Module Reference Card", ddr3_reference_card($bytes->[62], $bytes->[60]));
} }
if ($bytes->[3] == 1 || $bytes->[3] == 5) { if ($bytes->[3] == 1 || $bytes->[3] == 5) {

Loading…
Cancel
Save