mirror of
https://github.com/lm-sensors/lm-sensors.git
synced 2026-10-17 10:59:31 +00:00
to add more up-to-date documentation. git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@108 7894878c-1315-0410-8ee3-d5d059ff63e0
84 lines
3.5 KiB
Plaintext
84 lines
3.5 KiB
Plaintext
Some quick notes about the eeprom.o module and decode_dimms.pl.
|
|
|
|
EEPROM Module
|
|
-------------
|
|
|
|
This is a simple EEPROM module meant to enable reading the first 128 bytes
|
|
of an EEPROM (on a SDRAM DIMM). This module will probably need to be at
|
|
least expanded. A /dev file interface would probably be more effective.
|
|
This module was a programming exercise to get used to the new project
|
|
organization laid out by Frodo, but it should be at least completely
|
|
effective for decoding the contents of EEPROMs on DIMMs.
|
|
|
|
Lacking functionality:
|
|
|
|
* Read past byte 128. There is no technical restriction for not doing
|
|
this, but making a zillion dataxx-xx files would be a bit rediculous.
|
|
EEPROMs on DIMMs shouldn't use the contents past byte 128, so we are fine.
|
|
|
|
* Enable Writing. Again, no technical reason why not, but making it easy
|
|
to change the contents of the EEPROMs (on DIMMs anyway) also makes it easy
|
|
to disable the DIMMs until the values are restored somehow.
|
|
|
|
Use:
|
|
|
|
After inserting the module (and any other required smbus/i2c modules), you
|
|
should have some EEPROM directories in /proc/sys/dev/sensors/ of names such
|
|
as "eeprom-i2c-0-50". Inside each of these is a series of files which
|
|
represent 16 bytes blocks from the EEPROM. The data is in decimal (base
|
|
10) delimited by spaces.
|
|
|
|
Note:
|
|
|
|
EEPROMs reported are not nessesarily all from DIMMs. Xeon processors, for
|
|
example, have serial EEPROMs in them connected to the SMBus which will be
|
|
found by the module. Take care to ignore the output of decode_dimms.pl for
|
|
these EEPROMs.
|
|
|
|
|
|
DECODE_DIMMS.PL
|
|
---------------
|
|
|
|
This Perl script attempts to make sense of the first 128 bytes of a SDRAM
|
|
PC-100 DIMM. Using the 'Serial Presence Detect (SPD)' Spec (Rev1.2a)** from
|
|
Intel. When finished, it will decode and report all the values defined in
|
|
the spec. Much of the information is technical timing and interfacing info
|
|
(probably not all used by the Bios or clocking IC.
|
|
|
|
Note: During testing, we noticed that many DIMMs have trucated SPD records.
|
|
I'm not sure if these conform to an old spec, or if the manufacturers are
|
|
simply just taking short-cuts. But, many DIMMs have all zeros stored past
|
|
byte 21. I asked an Intel SDRAM tester, Sat Kolli (skolli@smartm.com),
|
|
about this and this is what he had to say:
|
|
|
|
"[...] Now in terms of SPD contents, you are right that people do all kinds
|
|
of things. The way to insure that any module works is to look for the most
|
|
basic information, such as module bank density, number of banks, and device
|
|
addresses. That will give you the module size and what devices are used. It
|
|
is very difficult to verify if the module is PC-100, because of
|
|
inconsistencies between spd data from different manufacturers. You could
|
|
read the timing information or the special Intel bytes (126 & 127) but I do
|
|
not know how many program that information.These inconsistencies may be
|
|
minimized if you or your customers stay with some of the better known
|
|
manufacturers." (Thanks goes to Sat Kolli for his comments and help)
|
|
|
|
Use:
|
|
|
|
After inserting the nessesary modules, run the script!
|
|
|
|
Notes:
|
|
|
|
The script assumes that Perl can be found at /usr/bin/perl. If different,
|
|
you will need to adjust the first line of the file accordingly, or else
|
|
you will get a strange "decode_dimms.pl: no such file or directory" error.
|
|
|
|
Also note that the script assumes that _all_ the eeproms belong to DIMMs,
|
|
which may not be the case.
|
|
|
|
|
|
------------------------------------------------------------------------
|
|
** PDF is available from Intel or our web site (spdsd12a.pdf):
|
|
http://www.netroedge.com/~lm78
|
|
|
|
"eeprom" doc created Dec. 14, 1998 by Philip Edelbrock
|