summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkhali <khali@7894878c-1315-0410-8ee3-d5d059ff63e0>2013-04-15 12:24:23 +0000
committerkhali <khali@7894878c-1315-0410-8ee3-d5d059ff63e0>2013-04-15 12:24:23 +0000
commitc93dd97d6fe821fdda2cc6b999f5e03836aad703 (patch)
treea8fdfd29e99bc14f34e080fa44ab6f2727293a22
parent9cc02674ef94146af5b8590d397031835df0fb90 (diff)
downloadi2c-tools-c93dd97d6fe821fdda2cc6b999f5e03836aad703.tar.gz
DDR3: Add support for Load Reduced DIMM (LRDIMM).
git-svn-id: http://lm-sensors.org/svn/i2c-tools/trunk@6147 7894878c-1315-0410-8ee3-d5d059ff63e0
-rw-r--r--CHANGES1
-rwxr-xr-xeeprom/decode-dimms19
2 files changed, 19 insertions, 1 deletions
diff --git a/CHANGES b/CHANGES
index 201e7d4..fd82f9d 100644
--- a/CHANGES
+++ b/CHANGES
@@ -34,6 +34,7 @@ SVN HEAD
Print width of all known DDR3 module types
Print physical characteristics for all DDR3 module types
Don't print raw SSTE32882 register values
+ Add support for Load Reduced DIMM (LRDIMM) DDR3 modules
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 6fc7df4..a5f56f7 100755
--- a/eeprom/decode-dimms
+++ b/eeprom/decode-dimms
@@ -5,7 +5,7 @@
# Copyright 1998, 1999 Philip Edelbrock <phil@netroedge.com>
# modified by Christian Zuckschwerdt <zany@triq.net>
# modified by Burkart Lingner <burkart@bollchen.de>
-# Copyright (C) 2005-2012 Jean Delvare <khali@linux-fr.org>
+# Copyright (C) 2005-2013 Jean Delvare <khali@linux-fr.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -1595,6 +1595,23 @@ sub decode_ddr3_sdram($)
"Register revision", ddr3_revision_number($bytes->[67]));
printl("Heat spreader", $bytes->[64] & 0x80 ? "Yes" : "No");
}
+
+ if ($module_types[$bytes->[3]]->{family} == DDR3_LOAD_REDUCED) {
+ prints("Load Reduced DIMM");
+
+ my @rows = ("Undefined", 1, 2, "Reserved");
+ printl("# DRAM Rows", $rows[($bytes->[63] >> 2) & 3]);
+ my @mirroring = ("None", "Odd ranks", "Reserved", "Reserved");
+ printl("Mirroring", $mirroring[$bytes->[63] & 3]);
+ printl("Rank Numbering", $bytes->[63] & 0x20 ? "Even only" : "Contiguous");
+ printl("Buffer Orientation", $bytes->[63] & 0x10 ? "Horizontal" : "Vertical");
+ printl("Register manufacturer",
+ manufacturer_ddr3($bytes->[65], $bytes->[66]));
+ printl_cond($bytes->[64] != 0xff,
+ "Buffer Revision", ddr3_revision_number($bytes->[64]));
+ printl("Heat spreader", $bytes->[63] & 0x80 ? "Yes" : "No");
+ }
+
}
# Parameter: EEPROM bytes 0-127 (using 4-5)