diff --git a/doc/chips/ddcmon b/doc/chips/ddcmon index 7795647d..cac87813 100644 --- a/doc/chips/ddcmon +++ b/doc/chips/ddcmon @@ -8,6 +8,21 @@ Supported chips: Prefix `ddcmon' Addresses scanned: I2C 0x50 Standards: available for purchase from VESA http://www.vesa.org + Datasheets: Publicly available from Atmel (www.atmel.com), + Fairchild (www.fairchildsemi.com), and + Microchip (www.microchip.com) + + Chip Size (bits) Address + 24C01 1K 0x50 (shadows at 0x51 - 0x57) + (Typical device in monitors) + 24C01A 1K 0x50 - 0x57 (Typical device in monitors) + 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) + Authors: Frodo Looijaard , Philip Edelbrock , and Mark Studebaker @@ -20,8 +35,7 @@ Module Parameters * force: short array (min = 1, max = 48) List of adapter,address pairs to boldly assume to be present * force_ddcmon: short array (min = 1, max = 48) - List of adapter,address pairs which are unquestionably assumed to contain - a `ddcmon' chip + Same as 'force' * ignore: short array (min = 1, max = 48) List of adapter,address pairs not to scan * ignore_range: short array (min = 1, max = 48) @@ -94,9 +108,15 @@ Notes: eeproms because it checks for a DDC 'signature' at the beginning of the DDC Monitor's eeprom. +- If a DDC monitor eeprom lacks the 'signature', you may use the + 'force' parameter (modprobe ddcmon force=x,0x50 where 'x' is the + i2c bus number). + - This module requires a bus driver for your video chip to access the - DDC bus. Currently drivers exist for Voodoo3/Banshee chips and - Matrox chips only. See documentation for those drivers in ../busses. + DDC bus. In this package, drivers exist for Voodoo3/Banshee chips. + See documentation for those drivers in ../busses. Other drivers + (Matrox and NVidia, for example) are available in the kernel or + elsewhere. See our 'Supported Devices' web page for details. - There is a checksum over the 128 bytes in the eeprom but the driver does not check it. @@ -104,9 +124,13 @@ Notes: - More information is available in the eeprom which could be made available by enhancing the driver. To see the entire eeprom, use the eeprom.o module instead of ddcmon.o. + However, then you lose the DDC-specific formatting. - This driver does not support the DDC/CI (DDC2Bi) bidirectional communications channel to the monitor for controlling the monitor. - The driver caches the data from the monitor and only rereads it from the eeprom if the cache is more than 5 minutes old. + +- X 4.0 also accesses the DDC monitor EEPROM to auto-configure itself. + There could possibly be conflicts from these multiple accesses. diff --git a/doc/chips/eeprom b/doc/chips/eeprom index 75e12f35..00b09d4b 100644 --- a/doc/chips/eeprom +++ b/doc/chips/eeprom @@ -7,7 +7,20 @@ Supported chips: * Any EEPROM chip in the designated address range Prefix `eeprom' Addresses scanned: I2C 0x50 - 0x57 (inclusive) - Datasheet: Publicly available from Intel + Datasheets: Publicly available from Atmel (www.atmel.com), + Fairchild (www.fairchildsemi.com), and + Microchip (www.microchip.com) + + 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) + Author: Frodo Looijaard and Philip Edelbrock @@ -37,22 +50,44 @@ Description ----------- 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. +of an EEPROM (on a SDRAM DIMM). However, it will access serial EEPROMs +on any I2C adapter. This module will probably need to be +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. +DIMMS will typically contain a 24C01A or 24C02. 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. See the 'ddcmon' driver which has +specialized /proc entries for DDC monitors. If the eeprom driver is +loaded before the ddcmon driver and there is no 'ignore' line in the +/etc/sensors.conf file, the eeprom driver will latch onto the DDC monitor +eeprom. + + Lacking functionality: -* Read past byte 128. There is no technical restriction for not doing +* Read bytes 128-255. 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. +* 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, with every other 128-byte block inaccessable +because of the missing 128-255 functionality. + +* Support for really large devices (24C32, 24C64, 24C128, 24C256, 24C5412). +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 until the values are restored somehow. + Use: After inserting the module (and any other required smbus/i2c modules), you