From d55998b01755f963473087867c5f7ecee3e20a27 Mon Sep 17 00:00:00 2001 From: khali Date: Sun, 14 Apr 2013 17:31:52 +0000 Subject: DDR3: Print width of all known module types. git-svn-id: http://lm-sensors.org/svn/i2c-tools/trunk@6139 7894878c-1315-0410-8ee3-d5d059ff63e0 --- CHANGES | 1 + eeprom/decode-dimms | 27 +++++++++++++++++++-------- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/CHANGES b/CHANGES index fca43f1..ceea7fe 100644 --- a/CHANGES +++ b/CHANGES @@ -31,6 +31,7 @@ SVN HEAD Decode the FTB fields of DDR3 tCk, tAA, tRCD, tRP and tRC Fix speed and PC3 number of high-speed DDR3 modules Decode DDR3 reference card revision + Print width of all known DDR3 module types i2cdetect: Do a best effort detection if functionality is missing Clarify the SMBus commands used for probing by default i2c-dev.h: Minimize differences with kernel flavor diff --git a/eeprom/decode-dimms b/eeprom/decode-dimms index fad04eb..82876ba 100755 --- a/eeprom/decode-dimms +++ b/eeprom/decode-dimms @@ -1375,14 +1375,25 @@ sub decode_ddr3_sdram($) my ($ftb, $mtb); my $ii; - my @module_types = ("Undefined", "RDIMM", "UDIMM", "SO-DIMM", - "Micro-DIMM", "Mini-RDIMM", "Mini-UDIMM", - "Mini-CDIMM", "72b-SO-UDIMM", "72b-SO-RDIMM", - "72b-SO-CDIMM", "LRDIMM", "16b-SO-DIMM", - "32b-SO-DIMM"); + my @module_types = ( + { type => "Undefined", width => "Unknown" }, + { type => "RDIMM", width => 133.35 }, + { type => "UDIMM", width => 133.35 }, + { type => "SO-DIMM", width => 67.6 }, + { type => "Micro-DIMM", width => "TBD" }, + { type => "Mini-RDIMM", width => 82.0 }, + { type => "Mini-UDIMM", width => 82.0 }, + { type => "Mini-CDIMM", width => 67.6 }, + { type => "72b-SO-UDIMM", width => 67.6 }, + { type => "72b-SO-RDIMM", width => 67.6 }, + { type => "72b-SO-CDIMM", width => 67.6 }, + { type => "LRDIMM", width => 133.35 }, + { type => "16b-SO-DIMM", width => 67.6 }, + { type => "32b-SO-DIMM", width => 67.6 }, + ); printl("Module Type", ($bytes->[3] <= $#module_types) ? - $module_types[$bytes->[3]] : + $module_types[$bytes->[3]]->{type} : sprintf("Reserved (0x%.2X)", $bytes->[3])); # time bases @@ -1539,8 +1550,8 @@ sub decode_ddr3_sdram($) printl("Module Thickness (mm)", sprintf("%d front, %d back", ($bytes->[61] & 15) + 1, (($bytes->[61] >> 4) & 15) +1)); - printl("Module Width (mm)", ($bytes->[3] <= 2) ? 133.5 : - ($bytes->[3] == 3) ? 67.6 : "TBD"); + printl("Module Width (mm)", $bytes->[3] <= $#module_types ? + $module_types[$bytes->[3]]->{width} : "TBD"); printl("Module Reference Card", ddr3_reference_card($bytes->[62], $bytes->[60])); } -- cgit v1.2.1