Browse Source

DDR3: Don't print the medium and fine time bases, they aren't directly

useful to the user. Simply store them for later use.


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

1
CHANGES

@ -27,6 +27,7 @@ SVN HEAD
Fix DDR3 tRAS decoding Fix DDR3 tRAS decoding
Fix DDR3 core timings rounding Fix DDR3 core timings rounding
Round down PC3 numbers to comply with Jedec Round down PC3 numbers to comply with Jedec
Don't print the DDR3 time bases
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

18
eeprom/decode-dimms

@ -1335,6 +1335,7 @@ sub decode_ddr3_sdram($)
my $bytes = shift; my $bytes = shift;
my $temp; my $temp;
my $ctime; my $ctime;
my ($ftb, $mtb);
my @module_types = ("Undefined", "RDIMM", "UDIMM", "SO-DIMM", my @module_types = ("Undefined", "RDIMM", "UDIMM", "SO-DIMM",
"Micro-DIMM", "Mini-RDIMM", "Mini-UDIMM", "Micro-DIMM", "Mini-RDIMM", "Mini-UDIMM",
@ -1346,18 +1347,17 @@ sub decode_ddr3_sdram($)
$module_types[$bytes->[3]] : $module_types[$bytes->[3]] :
sprintf("Reserved (0x%.2X)", $bytes->[3])); sprintf("Reserved (0x%.2X)", $bytes->[3]));
# time bases
if (($bytes->[9] & 0x0f) == 0 || $bytes->[11] == 0) {
print STDERR "Invalid time base divisor, can't decode\n";
return;
}
$ftb = ($bytes->[9] >> 4) / ($bytes->[9] & 0x0f);
$mtb = $bytes->[10] / $bytes->[11];
# speed # speed
prints("Memory Characteristics"); prints("Memory Characteristics");
my $dividend = ($bytes->[9] >> 4) & 15;
my $divisor = $bytes->[9] & 15;
printl("Fine time base", sprintf("%.3f", $dividend / $divisor) . " ps");
$dividend = $bytes->[10];
$divisor = $bytes->[11];
my $mtb = $dividend / $divisor;
printl("Medium time base", tns3($mtb));
$ctime = $bytes->[12] * $mtb; $ctime = $bytes->[12] * $mtb;
my $ddrclk = 2 * (1000 / $ctime); my $ddrclk = 2 * (1000 / $ctime);
my $tbits = 1 << (($bytes->[8] & 7) + 3); my $tbits = 1 << (($bytes->[8] & 7) + 3);

Loading…
Cancel
Save