Changeset 5011

Show
Ignore:
Timestamp:
11/11/07 21:05:29 (1 year ago)
Author:
khali
Message:

decode-dimms: Fix DDR2 SDRAM module speed decoding.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • i2c-tools/trunk/CHANGES

    r5005 r5011  
    33 
    44SVN 
     5  decode-dimms: Fix DDR2 SDRAM module speed decoding 
    56  i2cset: Final status messages go to stdout 
    67          Return success even when readback fails or doesn't match 
  • i2c-tools/trunk/eeprom/decode-dimms.pl

    r4493 r5011  
    7070#  use more user-friendly labels 
    7171#  fix HTML formatted output on checksum error 
     72# Version 1.5  2007-11-08  Jean Delvare <khali@linux-fr.org> 
     73#  fix module speed (DDR2 SDRAM) 
    7274# 
    7375# 
     
    864866        my $bytes = shift; 
    865867        my ($l, $temp); 
     868        my $ctime; 
    866869 
    867870# SPD revision 
     
    875878 
    876879        $l = "Maximum module speed"; 
    877         $temp = ($bytes->[9] >> 4) + ($bytes->[9] & 0xf) * 0.1
    878         my $ddrclk = 4 * (1000 / $temp); 
     880        $ctime = ddr2_sdram_ctime($bytes->[9])
     881        my $ddrclk = 2 * (1000 / $ctime); 
    879882        my $tbits = ($bytes->[7] * 256) + $bytes->[6]; 
    880         if (($bytes->[11] == 2) || ($bytes->[11] == 1)) { $tbits = $tbits - 8; } 
     883        if ($bytes->[11] & 0x03) { $tbits = $tbits - 8; } 
    881884        my $pcclk = int ($ddrclk * $tbits / 8); 
    882         $pcclk += 100 if ($pcclk % 100) >= 50; # Round properly 
     885        # Round down to comply with Jedec 
    883886        $pcclk = $pcclk - ($pcclk % 100); 
    884887        $ddrclk = int ($ddrclk); 
    885         printl $l, "${ddrclk}MHz (PC${pcclk})"; 
     888        printl $l, "${ddrclk}MHz (PC2-${pcclk})"; 
    886889 
    887890#size computation 
     
    911914        my $trp; 
    912915        my $tras; 
    913         my $ctime; 
    914          
    915         $ctime = ddr2_sdram_ctime($bytes->[9]); 
    916916         
    917917        $trcd =($bytes->[29] >> 2)+(($bytes->[29] & 3)*0.25);