Kernel driver eeprom
====================

Supported chips:
  * Any EEPROM chip in the designated address range
    Prefix: 'eeprom'
    Addresses scanned: I2C 0x50 - 0x57
    Datasheets: Publicly available from:
                Atmel (www.atmel.com),
                Catalyst (www.catsemi.com),
                Fairchild (www.fairchildsemi.com),
                Microchip (www.microchip.com),
                Philips (www.semiconductor.philips.com),
                Rohm (www.rohm.com),
                ST (www.st.com),
                Xicor (www.xicor.com),
                and others.

        Chip     Size (bits)    Address
        24C01     1K            0x50 (shadows at 0x51 - 0x57)
        24C01A    1K            0x50 - 0x57 (Typical device on DIMMs)
        24C02     2K            0x50 - 0x57
        24C04     4K            0x50, 0x52, 0x54, 0x56
                                (additional data at 0x51, 0x53, 0x55, 0x57)
        24C08     8K            0x50, 0x54 (additional data at 0x51, 0x52,
                                0x53, 0x55, 0x56, 0x57)
        24C16    16K            0x50 (additional data at 0x51 - 0x57)
        Sony      2K            0x57

        Atmel     34C02B  2K    0x50 - 0x57, SW write protect at 0x30-37
        Catalyst  34FC02  2K    0x50 - 0x57, SW write protect at 0x30-37
        Catalyst  34RC02  2K    0x50 - 0x57, SW write protect at 0x30-37
        Fairchild 34W02   2K    0x50 - 0x57, SW write protect at 0x30-37
        Microchip 24AA52  2K    0x50 - 0x57, SW write protect at 0x30-37
        ST        M34C02  2K    0x50 - 0x57, SW write protect at 0x30-37


Authors:
        Frodo Looijaard <frodol@dds.nl>,
        Philip Edelbrock <phil@netroedge.com>,
        Jean Delvare <jdelvare@suse.de>,
        Greg Kroah-Hartman <greg@kroah.com>,
        IBM Corp.

Description
-----------

This is a simple EEPROM module meant to enable reading the first 256 bytes
of an EEPROM (on a SDRAM DIMM for example). However, it will access serial
EEPROMs on any I2C adapter. The supported devices are generically called
24Cxx, and are listed above; however the numbering for these
industry-standard devices may vary by manufacturer.

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.

DIMMS will typically contain a 24C01A or 24C02, or the 34C02 variants.
The other devices will not be found on a DIMM because they respond to more
than one address.

DDC Monitors may contain any device. Often a 24C01, which responds to all 8
addresses, is found.

Recent Sony Vaio laptops have an EEPROM at 0x57. We couldn't get the
specification, so it is guess work and far from being complete.

The Microchip 24AA52/24LCS52, ST M34C02, and others support an additional
software write protect register at 0x30 - 0x37 (0x20 less than the memory
location). The chip responds to "write quick" detection at this address but
does not respond to byte reads. If this register is present, the lower 128
bytes of the memory array are not write protected. Any byte data write to
this address will write protect the memory array permanently, and the
device will no longer respond at the 0x30-37 address. The eeprom driver
does not support this register.

Lacking functionality:

* Full support for larger devices (24C04, 24C08, 24C16). These are not
typically found on a PC. These devices will appear as separate devices at
multiple addresses.

* Support for really large devices (24C32, 24C64, 24C128, 24C256, 24C512).
These devices require two-byte address fields and are not supported.

* 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 (potentially preventing the computer from booting)
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 /sys/bus/i2c/devices/* of names such
as "0-0050". Inside each of these is a series of files, the eeprom file
contains the binary data from EEPROM.
