Changeset 5558 for i2c-tools/trunk/eeprom/decode-dimms
- Timestamp:
- 12/11/08 17:03:31 (3 years ago)
- Files:
-
- 1 modified
-
i2c-tools/trunk/eeprom/decode-dimms (modified) (15 diffs)
Legend:
- Unmodified
- Added
- Removed
-
i2c-tools/trunk/eeprom/decode-dimms
r5557 r5558 710 710 { 711 711 my $bytes = shift; 712 my ($l, $temp);712 my $temp; 713 713 714 714 # SPD revision … … 721 721 prints("Memory Characteristics"); 722 722 723 $l = "Maximum module speed";724 723 $temp = ($bytes->[9] >> 4) + ($bytes->[9] & 0xf) * 0.1; 725 724 my $ddrclk = 2 * (1000 / $temp); … … 730 729 $pcclk = $pcclk - ($pcclk % 100); 731 730 $ddrclk = int ($ddrclk); 732 printl( $l, "${ddrclk}MHz (PC${pcclk})");731 printl("Maximum module speed", "${ddrclk}MHz (PC${pcclk})"); 733 732 734 733 #size computation … … 889 888 { 890 889 my $bytes = shift; 891 my ($l, $temp);890 my $temp; 892 891 my $ctime; 893 892 … … 901 900 prints("Memory Characteristics"); 902 901 903 $l = "Maximum module speed";904 902 $ctime = ddr2_sdram_ctime($bytes->[9]); 905 903 my $ddrclk = 2 * (1000 / $ctime); … … 910 908 $pcclk = $pcclk - ($pcclk % 100); 911 909 $ddrclk = int ($ddrclk); 912 printl( $l, "${ddrclk}MHz (PC2-${pcclk})");910 printl("Maximum module speed", "${ddrclk}MHz (PC2-${pcclk})"); 913 911 914 912 #size computation … … 1034 1032 { 1035 1033 my $bytes = shift; 1036 my $l;1037 1034 my $temp; 1038 1035 my $ctime; … … 1048 1045 prints("Memory Characteristics"); 1049 1046 1050 $l = "Fine time base";1051 1047 my $dividend = ($bytes->[9] >> 4) & 15; 1052 1048 my $divisor = $bytes->[9] & 15; 1053 printl($l, sprintf("%.3f", $dividend / $divisor) . " ps"); 1054 1055 $l = "Medium time base"; 1049 printl("Fine time base", sprintf("%.3f", $dividend / $divisor) . " ps"); 1050 1056 1051 $dividend = $bytes->[10]; 1057 1052 $divisor = $bytes->[11]; 1058 1053 my $mtb = $dividend / $divisor; 1059 printl($l, tns3($mtb)); 1060 1061 $l = "Maximum module speed"; 1054 printl("Medium time base", tns3($mtb)); 1055 1062 1056 $ctime = $bytes->[12] * $mtb; 1063 1057 my $ddrclk = 2 * (1000 / $ctime); … … 1065 1059 my $pcclk = int ($ddrclk * $tbits / 8); 1066 1060 $ddrclk = int ($ddrclk); 1067 printl( $l, "${ddrclk}MHz (PC3-${pcclk})");1061 printl("Maximum module speed", "${ddrclk}MHz (PC3-${pcclk})"); 1068 1062 1069 1063 # Size computation … … 1367 1361 { 1368 1362 my $bytes = shift; 1369 my ($l, $temp);1363 my $temp; 1370 1364 1371 1365 prints("Intel Specification"); 1372 1366 1373 $l = "Frequency";1374 1367 if ($bytes->[126] == 0x66) { $temp = "66MHz"; } 1375 1368 elsif ($bytes->[126] == 100) { $temp = "100MHz or 133MHz"; } 1376 1369 elsif ($bytes->[126] == 133) { $temp = "133MHz"; } 1377 1370 else { $temp = "Undefined!"; } 1378 printl($l, $temp); 1379 1380 $l = "Details for 100MHz Support"; 1371 printl("Frequency", $temp); 1372 1381 1373 $temp = ""; 1382 1374 if ($bytes->[127] & 1) { $temp .= "Intel Concurrent Auto-precharge\n"; } … … 1391 1383 if (($bytes->[127] & 192) == 192) { $temp .= "Double-sided DIMM\n"; } 1392 1384 elsif (($bytes->[127] & 192) != 0) { $temp .= "Single-sided DIMM\n"; } 1393 printl( $l, $temp);1385 printl("Details for 100MHz Support", $temp); 1394 1386 } 1395 1387 … … 1644 1636 my @bytes = readspd(0, 128, $dimm_list[$i]); 1645 1637 my $is_rambus = $bytes[0] < 4; # Simple heuristic 1646 my ($l , $chk_valid, $chk_spd, $chk_calc);1638 my ($label, $chk_valid, $chk_spd, $chk_calc); 1647 1639 if ($is_rambus || $bytes[2] < 9) { 1648 ($l , $chk_valid, $chk_spd, $chk_calc) =1640 ($label, $chk_valid, $chk_spd, $chk_calc) = 1649 1641 checksum(\@bytes); 1650 1642 } else { 1651 ($l , $chk_valid, $chk_spd, $chk_calc) =1643 ($label, $chk_valid, $chk_spd, $chk_calc) = 1652 1644 check_crc(\@bytes); 1653 1645 } … … 1674 1666 prints("SPD EEPROM Information"); 1675 1667 1676 printl($l , ($chk_valid ?1668 printl($label, ($chk_valid ? 1677 1669 sprintf("OK (%s)", $chk_calc) : 1678 1670 sprintf("Bad\n(found %s, calculated %s)", … … 1700 1692 } 1701 1693 1702 $l = "Fundamental Memory type";1703 1694 my $type = sprintf("Unknown (0x%02x)", $bytes[2]); 1704 1695 if ($is_rambus) { … … 1718 1709 } 1719 1710 } 1720 printl( $l, $type);1711 printl("Fundamental Memory type", $type); 1721 1712 1722 1713 # Decode next 61 bytes (3-63, depend on memory type)
