Browse Source

DDR3: Fully decode the SDRAM Device Type field.

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

1
CHANGES

@ -35,6 +35,7 @@ SVN HEAD
Print physical characteristics for all DDR3 module types
Don't print raw SSTE32882 register values
Add support for Load Reduced DIMM (LRDIMM) DDR3 modules
Fully decode the DDR3 SDRAM Device Type field
i2cdetect: Do a best effort detection if functionality is missing
Clarify the SMBus commands used for probing by default
i2c-dev.h: Minimize differences with kernel flavor

30
eeprom/decode-dimms

@ -1377,6 +1377,32 @@ sub ddr3_revision_number($)
return sprintf("%c%d", ord('A') + $h - 0xa, $l);
}
sub ddr3_device_type($)
{
my $byte = shift;
my $type = $byte & 0x80 ? "Non-Standard" : "Standard Monolithic";
my $die_count = ($byte >> 4) & 0x07;
my $loading = ($byte >> 2) & 0x03;
if ($die_count == 1) {
$type .= "\nSingle die";
} elsif ($die_count == 2) {
$type .= "\n2 die";
} elsif ($die_count == 3) {
$type .= "\n4 die";
} elsif ($die_count == 4) {
$type .= "\n8 die";
}
if ($loading == 1) {
$type .= "\nMulti load stack";
} elsif ($loading == 2) {
$type .= "\nSingle load stack";
}
return $type;
}
use constant DDR3_UNBUFFERED => 1;
use constant DDR3_REGISTERED => 2;
use constant DDR3_CLOCKED => 3;
@ -1555,9 +1581,7 @@ sub decode_ddr3_sdram($)
($bytes->[31] & 128) ? "Yes" : "No");
printl("Module Thermal Sensor",
($bytes->[32] & 128) ? "Yes" : "No");
printl("SDRAM Device Type",
($bytes->[33] & 128) ? sprintf($bytes->[33] & 127) :
"Standard Monolithic");
printl("SDRAM Device Type", ddr3_device_type($bytes->[33]));
# Following bytes are type-specific, so don't continue if type
# isn't known.

Loading…
Cancel
Save