Changeset 5552

Show
Ignore:
Timestamp:
12/11/08 13:45:57 (4 years ago)
Author:
khali
Message:

Do not decode DDR3 manufacturing data fields which have been left
blank.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • i2c-tools/trunk/eeprom/decode-dimms

    r5551 r5552  
    12901290{ 
    12911291        my $bytes = shift; 
     1292        my ($l, $temp); 
    12921293 
    12931294        prints "Manufacturer Data"; 
     
    12961297                manufacturer_ddr3($bytes->[117], $bytes->[118]); 
    12971298 
    1298         printl "DRAM Manufacturer", 
    1299                 manufacturer_ddr3($bytes->[148], $bytes->[149]); 
    1300  
    1301         my $l = "Manufacturing Location"; 
    1302         my $temp = (chr($bytes->[119]) =~ m/^[\w\d]$/) ? chr($bytes->[119]) 
    1303               : sprintf("0x%.2X", $bytes->[119]); 
    1304         printl $l, $temp; 
    1305  
    1306         $l = "Manufacturing Date"; 
    1307         printl $l, manufacture_date($bytes->[120], $bytes->[121]); 
    1308  
    1309         $l = "Assembly Serial Number"; 
    1310         $temp = sprintf("0x%02X%02X%02X%02X\n", $bytes->[122], $bytes->[123], 
    1311                 $bytes->[124], $bytes->[125]); 
    1312         printl $l, $temp; 
     1299        if (spd_written(@{$bytes}[148..149])) { 
     1300                printl "DRAM Manufacturer", 
     1301                        manufacturer_ddr3($bytes->[148], $bytes->[149]); 
     1302        } 
     1303 
     1304        if (spd_written($bytes->[119])) { 
     1305                $l = "Manufacturing Location Code"; 
     1306                my $temp = (chr($bytes->[119]) =~ m/^[\w\d]$/) ? chr($bytes->[119]) 
     1307                      : sprintf("0x%.2X", $bytes->[119]); 
     1308                printl $l, $temp; 
     1309        } 
     1310 
     1311        if (spd_written(@{$bytes}[120..121])) { 
     1312                $l = "Manufacturing Date"; 
     1313                printl $l, manufacture_date($bytes->[120], $bytes->[121]); 
     1314        } 
     1315 
     1316        if (spd_written(@{$bytes}[122..125])) { 
     1317                $l = "Assembly Serial Number"; 
     1318                $temp = sprintf("0x%02X%02X%02X%02X\n", $bytes->[122], $bytes->[123], 
     1319                        $bytes->[124], $bytes->[125]); 
     1320                printl $l, $temp; 
     1321        } 
    13131322 
    13141323        $l = "Part Number"; 
     
    13191328        printl $l, $temp; 
    13201329 
    1321         $l = "Revision"; 
    1322         $temp = sprintf("0x%02X%02X\n", $bytes->[146], $bytes->[147]); 
    1323         printl $l, $temp; 
     1330        if (spd_written(@{$bytes}[146..147])) { 
     1331                $l = "Revision Code"; 
     1332                $temp = sprintf("0x%02X%02X\n", $bytes->[146], $bytes->[147]); 
     1333                printl $l, $temp; 
     1334        } 
    13241335} 
    13251336