Browse Source

Reformat "at CAS N" output so that it no longer breaks the

side-by-side mode.


git-svn-id: http://lm-sensors.org/svn/i2c-tools/trunk@5704 7894878c-1315-0410-8ee3-d5d059ff63e0
tags/v3.0.3
Jean Delvare 17 years ago
parent
commit
de0313bdc0
  1. 77
      eeprom/decode-dimms

77
eeprom/decode-dimms

@ -652,11 +652,13 @@ sub decode_sdr_sdram($)
else { $temp = "None"; } else { $temp = "None"; }
printl("Supported WE Latencies", $temp); printl("Supported WE Latencies", $temp);
my ($cycle_time, $access_time);
if (@cas >= 1) { if (@cas >= 1) {
printl("Cycle Time at CAS ".$cas[$#cas], "$ctime ns");
$cycle_time = "$ctime ns at CAS ".$cas[$#cas];
$temp = ($bytes->[10] >> 4) + ($bytes->[10] & 0xf) * 0.1; $temp = ($bytes->[10] >> 4) + ($bytes->[10] & 0xf) * 0.1;
printl("Access Time at CAS ".$cas[$#cas], "$temp ns");
$access_time = "$temp ns at CAS ".$cas[$#cas];
} }
if (@cas >= 2 && spd_written(@$bytes[23..24])) { if (@cas >= 2 && spd_written(@$bytes[23..24])) {
@ -667,7 +669,7 @@ sub decode_sdr_sdram($)
$temp += ($bytes->[23] & 0xf) * 0.1; $temp += ($bytes->[23] & 0xf) * 0.1;
$temp .= " ns"; $temp .= " ns";
} }
printl("Cycle Time at CAS ".$cas[$#cas-1], $temp);
$cycle_time .= "\n$temp ns at CAS ".$cas[$#cas-1];
$temp = $bytes->[24] >> 4; $temp = $bytes->[24] >> 4;
if ($temp == 0) { $temp = "Undefined!"; } if ($temp == 0) { $temp = "Undefined!"; }
@ -676,7 +678,7 @@ sub decode_sdr_sdram($)
$temp += ($bytes->[24] & 0xf) * 0.1; $temp += ($bytes->[24] & 0xf) * 0.1;
$temp .= " ns"; $temp .= " ns";
} }
printl("Access Time at CAS ".$cas[$#cas-1], $temp);
$access_time .= "\n$temp ns at CAS ".$cas[$#cas-1];
} }
if (@cas >= 3 && spd_written(@$bytes[25..26])) { if (@cas >= 3 && spd_written(@$bytes[25..26])) {
@ -686,7 +688,7 @@ sub decode_sdr_sdram($)
$temp += ($bytes->[25] & 0x3) * 0.25; $temp += ($bytes->[25] & 0x3) * 0.25;
$temp .= " ns"; $temp .= " ns";
} }
printl("Cycle Time at CAS ".$cas[$#cas-2], $temp);
$cycle_time .= "\n$temp ns at CAS ".$cas[$#cas-2];
$temp = $bytes->[26] >> 2; $temp = $bytes->[26] >> 2;
if ($temp == 0) { $temp = "Undefined!"; } if ($temp == 0) { $temp = "Undefined!"; }
@ -694,9 +696,12 @@ sub decode_sdr_sdram($)
$temp += ($bytes->[26] & 0x3) * 0.25; $temp += ($bytes->[26] & 0x3) * 0.25;
$temp .= " ns"; $temp .= " ns";
} }
printl("Access Time at CAS ".$cas[$#cas-2], $temp);
$access_time .= "\n$temp ns at CAS ".$cas[$#cas-2];
} }
printl_cond(defined $cycle_time, "Cycle Time", $cycle_time);
printl_cond(defined $access_time, "Access Time", $access_time);
$temp = ""; $temp = "";
if ($bytes->[21] & 1) { $temp .= "Buffered Address/Control Inputs\n"; } if ($bytes->[21] & 1) { $temp .= "Buffered Address/Control Inputs\n"; }
if ($bytes->[21] & 2) { $temp .= "Registered Address/Control Inputs\n"; } if ($bytes->[21] & 2) { $temp .= "Registered Address/Control Inputs\n"; }
@ -848,30 +853,31 @@ sub decode_ddr_sdram($)
printl("Supported WE Latencies", $temp); printl("Supported WE Latencies", $temp);
# timings # timings
if (exists $cas{$highestCAS}) {
printl("Minimum Cycle Time at CAS $highestCAS",
"$ctime ns");
my ($cycle_time, $access_time);
printl("Maximum Access Time at CAS $highestCAS",
(($bytes->[10] >> 4) * 0.1 + ($bytes->[10] & 0xf) * 0.01) . " ns");
if (exists $cas{$highestCAS}) {
$cycle_time = "$ctime ns at CAS $highestCAS";
$access_time = (($bytes->[10] >> 4) * 0.1 + ($bytes->[10] & 0xf) * 0.01)
. " ns at CAS $highestCAS";
} }
if (exists $cas{$highestCAS-0.5} && spd_written(@$bytes[23..24])) { if (exists $cas{$highestCAS-0.5} && spd_written(@$bytes[23..24])) {
printl("Minimum Cycle Time at CAS ".($highestCAS-0.5),
(($bytes->[23] >> 4) + ($bytes->[23] & 0xf) * 0.1) . " ns");
printl("Maximum Access Time at CAS ".($highestCAS-0.5),
(($bytes->[24] >> 4) * 0.1 + ($bytes->[24] & 0xf) * 0.01) . " ns");
$cycle_time .= "\n".(($bytes->[23] >> 4) + ($bytes->[23] & 0xf) * 0.1)
. " ns at CAS ".($highestCAS-0.5);
$access_time .= "\n".(($bytes->[24] >> 4) * 0.1 + ($bytes->[24] & 0xf) * 0.01)
. " ns at CAS ".($highestCAS-0.5);
} }
if (exists $cas{$highestCAS-1} && spd_written(@$bytes[25..26])) { if (exists $cas{$highestCAS-1} && spd_written(@$bytes[25..26])) {
printl("Minimum Cycle Time at CAS ".($highestCAS-1),
(($bytes->[25] >> 4) + ($bytes->[25] & 0xf) * 0.1) . " ns");
printl("Maximum Access Time at CAS ".($highestCAS-1),
(($bytes->[26] >> 4) * 0.1 + ($bytes->[26] & 0xf) * 0.01) . " ns");
$cycle_time .= "\n".(($bytes->[25] >> 4) + ($bytes->[25] & 0xf) * 0.1)
. " ns at CAS ".($highestCAS-1);
$access_time .= "\n".(($bytes->[26] >> 4) * 0.1 + ($bytes->[26] & 0xf) * 0.01)
. " ns at CAS ".($highestCAS-1);
} }
printl_cond(defined $cycle_time, "Minimum Cycle Time", $cycle_time);
printl_cond(defined $access_time, "Maximum Access Time", $access_time);
# module attributes # module attributes
if ($bytes->[47] & 0x03) { if ($bytes->[47] & 0x03) {
if (($bytes->[47] & 0x03) == 0x01) { $temp = "1.125\" to 1.25\""; } if (($bytes->[47] & 0x03) == 0x01) { $temp = "1.125\" to 1.25\""; }
@ -1034,26 +1040,31 @@ sub decode_ddr2_sdram($)
printl("Supported CAS Latencies (tCL)", cas_latencies(keys %cas)); printl("Supported CAS Latencies (tCL)", cas_latencies(keys %cas));
# timings # timings
my ($cycle_time, $access_time);
if (exists $cas{$highestCAS}) { if (exists $cas{$highestCAS}) {
printl("Minimum Cycle Time at CAS $highestCAS (tCK min)",
tns($ctime));
printl("Maximum Access Time at CAS $highestCAS (tAC)",
tns(ddr2_sdram_atime($bytes->[10])));
$cycle_time = tns($ctime) . " at CAS $highestCAS (tCK min)";
$access_time = tns(ddr2_sdram_atime($bytes->[10]))
. " at CAS $highestCAS (tAC)";
} }
if (exists $cas{$highestCAS-1} && spd_written(@$bytes[23..24])) { if (exists $cas{$highestCAS-1} && spd_written(@$bytes[23..24])) {
printl("Minimum Cycle Time at CAS ".($highestCAS-1),
tns(ddr2_sdram_ctime($bytes->[23])));
printl("Maximum Access Time at CAS ".($highestCAS-1),
tns(ddr2_sdram_atime($bytes->[24])));
$cycle_time .= "\n".tns(ddr2_sdram_ctime($bytes->[23]))
. " at CAS ".($highestCAS-1);
$access_time .= "\n".tns(ddr2_sdram_atime($bytes->[24]))
. " at CAS ".($highestCAS-1);
} }
if (exists $cas{$highestCAS-2} && spd_written(@$bytes[25..26])) { if (exists $cas{$highestCAS-2} && spd_written(@$bytes[25..26])) {
printl("Minimum Cycle Time at CAS ".($highestCAS-2),
tns(ddr2_sdram_ctime($bytes->[25])));
printl("Maximum Access Time at CAS ".($highestCAS-2),
tns(ddr2_sdram_atime($bytes->[26])));
$cycle_time .= "\n".tns(ddr2_sdram_ctime($bytes->[25]))
. " at CAS ".($highestCAS-2);
$access_time .= "\n".tns(ddr2_sdram_atime($bytes->[26]))
. " at CAS ".($highestCAS-2);
} }
printl_cond(defined $cycle_time, "Minimum Cycle Time", $cycle_time);
printl_cond(defined $access_time, "Maximum Access Time", $access_time);
printl("Maximum Cycle Time (tCK max)", printl("Maximum Cycle Time (tCK max)",
tns(ddr2_sdram_ctime($bytes->[43]))); tns(ddr2_sdram_ctime($bytes->[43])));

Loading…
Cancel
Save