root/lm-sensors/trunk/doc/chips/eeprom @ 402

Revision 402, 4.3 KB (checked in by frodo, 14 years ago)

Updated EEPROM documentation

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1Kernel driver `eeprom.o'
2========================
3
4Status: Complete and well-tested
5
6Supported chips:
7  * Any EEPROM chip in the designated address range
8    Prefix `eeprom'
9    Addresses scanned: I2C 0x50 - 0x57 (inclusive)
10    Datasheet: Publicly available from Intel
11
12Author: Frodo Looijaard <frodol@dds.nl> and Philip Edelbrock
13        <phil@netroedge.com>
14
15
16Module Parameters
17-----------------
18
19* checksum: int
20  Only accept eeproms whose checksum is correct
21* force: short array (min = 1, max = 48)
22  List of adapter,address pairs to boldly assume to be present
23* force_eeprom: short array (min = 1, max = 48)
24  List of adapter,address pairs which are unquestionably assumed to contain
25  a `eeprom' chip
26* ignore: short array (min = 1, max = 48)
27  List of adapter,address pairs not to scan
28* ignore_range: short array (min = 1, max = 48)
29  List of adapter,start-addr,end-addr triples not to scan
30* probe: short array (min = 1, max = 48)
31  List of adapter,address pairs to scan additionally
32* probe_range: short array (min = 1, max = 48)
33  List of adapter,start-addr,end-addr triples to scan additionally
34
35
36Description
37-----------
38
39This is a simple EEPROM module meant to enable reading the first 128 bytes
40of an EEPROM (on a SDRAM DIMM).  This module will probably need to be at
41least expanded.  A /dev file interface would probably be more effective.
42This module was a programming exercise to get used to the new project
43organization laid out by Frodo, but it should be at least completely
44effective for decoding the contents of EEPROMs on DIMMs.
45
46Lacking functionality:
47
48* Read past byte 128.  There is no technical restriction for not doing
49this, but making a zillion dataxx-xx files would be a bit rediculous.
50EEPROMs on DIMMs shouldn't use the contents past byte 128, so we are fine.
51
52* Enable Writing.  Again, no technical reason why not, but making it easy
53to change the contents of the EEPROMs (on DIMMs anyway) also makes it easy
54to disable the DIMMs until the values are restored somehow.
55
56Use:
57
58After inserting the module (and any other required smbus/i2c modules), you
59should have some EEPROM directories in /proc/sys/dev/sensors/ of names such
60as "eeprom-i2c-0-50".  Inside each of these is a series of files which
61represent 16 bytes blocks from the EEPROM.  The data is in decimal (base
6210) delimited by spaces.
63
64Note:
65
66EEPROMs reported are not nessesarily all from DIMMs.  Xeon processors, for
67example, have serial EEPROMs in them connected to the SMBus which will be
68found by the module.  Take care to ignore the output of decode_dimms.pl for
69these EEPROMs.
70
71
72DECODE_DIMMS.PL
73---------------
74
75This Perl script attempts to make sense of the first 128 bytes of a SDRAM
76PC-100 DIMM.  Using the 'Serial Presence Detect (SPD)' Spec (Rev1.2a)** from
77Intel.  When finished, it will decode and report all the values defined in
78the spec.  Much of the information is technical timing and interfacing info
79(probably not all used by the Bios or clocking IC.
80
81Note: During testing, we noticed that many DIMMs have trucated SPD records.
82I'm not sure if these conform to an old spec, or if the manufacturers are
83simply just taking short-cuts.  But, many DIMMs have all zeros stored past
84byte 21.  I asked an Intel SDRAM tester, Sat Kolli (skolli@smartm.com),
85about this and this is what he had to say:
86
87"[...] Now in terms of SPD contents, you are right that people do all kinds
88of things. The way to insure that any module works is to look for the most
89basic information, such as module bank density, number of banks, and device
90addresses. That will give you the module size and what devices are used. It
91is very difficult to verify if the module is PC-100, because of
92inconsistencies between spd data from different manufacturers. You could
93read the timing information or the special Intel bytes (126 & 127) but I do
94not know how many program that information.These inconsistencies may be
95minimized if you or your customers stay with some of the better known
96manufacturers."  (Thanks goes to Sat Kolli for his comments and help)
97
98Use:
99
100After inserting the nessesary modules, run the script!
101
102Notes:
103
104The script assumes that Perl can be found at /usr/bin/perl.  If different,
105you will need to adjust the first line of the file accordingly, or else
106you will get a strange "decode_dimms.pl: no such file or directory" error.
107
108Also note that the script assumes that _all_ the eeproms belong to DIMMs,
109which may not be the case.
Note: See TracBrowser for help on using the browser.