I2C crash - ADM1021

Peter Hyman pete4abw at comcast.net
Fri Oct 10 23:04:56 CEST 2003


Hi Jean!

You wrote:
> In your original mail, you said the line was:
> options adm1021 ignore=0,0x18,0,0x4c,0,0x4e
> That is, all potential addresses disabled.
> 

If that's the case, I goofed! because in my original modules.conf, I had
left out the 0x4e! Maybe that is what caused the failure?  When I ignore
all three addresses and type sensors, it says no sensors found.  I
suppose I'm loading the driver and telling it to skip everything it
would poll?
bash-2.05b# lsmod
Module                  Size  Used by    Tainted: P
adm1021                 7224   0  (unused)
i2c-proc                8244   0  [adm1021]
i2c-isa                 1324   0  (unused)
i2c-viapro              4300   0  (unused)
i2c-core               20676   0  [adm1021 i2c-proc i2c-isa i2c-viapro]

ANYWAY.......

I got the latest sensors-detect, and have attached the output.  It still
prompts me to install the adm1021 driver, and here is the probing
output.

Client found at address 0x18
Probing for `Analog Devices ADM1021'... Failed!
Probing for `Analog Devices ADM1021A/ADM1023'... Failed!
Probing for `Maxim MAX1617'... Failed!
Probing for `Maxim MAX1617A'... Failed!
Probing for `TI THMC10'... Failed!
Probing for `National Semiconductor LM84'... Failed!
Probing for `Genesys Logic GL523SM'... Failed!
Probing for `Onsemi MC1066'... Failed!
Probing for `National Semiconductor LM82'... Failed!
Probing for `National Semiconductor LM83'... Failed!
Client found at address 0x37
Client found at address 0x4c
Probing for `National Semiconductor LM75'... Failed!
Probing for `Dallas Semiconductor DS1621'... Failed!
Probing for `Analog Devices ADM1021'... Failed!
Probing for `Analog Devices ADM1021A/ADM1023'... Failed!
Probing for `Maxim MAX1617'... Success!
    (confidence 3, driver `adm1021')
....clipped

If you notice, the chip Maxim MAX1617 is listed twice.  Near the top,
the probe fails.  At the bottom where I clipped the listing, it
succeeds!

I don't recall if this is what occurred previously.  I think I had
emailed you a sensors-detect listing though, so you can check there if
you need to.  As of now, the sensors-detect changes are still missing
something on my config.

Nonetheless, I really do appreciate your taking the time to respond!

Best wishes, and enjoy the weekend!!!

On Fri, 2003-10-10 at 16:24, Jean Delvare wrote:
> > Just a quick FYI update.
> 
> Nice to you to keep us informed :)
> 
> > Today, I updated all source for I2C and lmsensors from CVS.
> 
> Which basically means you have 2.8.1 - since almost no changes have been
> made since we released it.
> 
> > When running sensors-detect, it had slightly different settings
> > for the OPTIONS line in modules.conf for the adm1021 driver.
> > 
> > Previously, the line read
> > options adm1021 ignore=0,0x18,0,0x4c
> > 
> > Now, the instructions correctly show
> > options adm1021 ignore=0,0x4c,0,0x4e
> 
> In your original mail, you said the line was:
> options adm1021 ignore=0,0x18,0,0x4c,0,0x4e
> That is, all potential addresses disabled.
> 
> Now, if 0x4e wasn't actually disabled, it explains how your system could
> possibly crash. (Not that we undestand why it did, but at least it had a
> "chance" to.)
> 
> > The difference being that the driver was polling a port it had no
> > business doing and I believe this is what caused my system to crash!
> 
> Makes sense.
> 
> > Now, the irony is that the information from port 0x18 is totally
> > useless as it shows system and cpu temperature at -41C!
> > 
> > /sbin/modprobe adm1021 ignore=0,0x4c,0,0x4e
> > 
> > sensors
> > ----------------
> > lm84-i2c-0-18
> > Adapter: SMBus Via Pro adapter at 5000
> > Algorithm: Non-I2C SMBus adapte
> > Board:       -41°C  (low =   -1°C, high =  -17°C)
> > CPU:         -41°C  (low =  +60°C, high =   -1°C)
> 
> The LM84 has a somewhat weak identification method, and is often
> misdetected. There's not much we can do about it. Maybe we could decide
> that the following conditions make us drop it:
> * Board or CPU temp below 0.
> * low limit > high limit
> * high limits below 0
> In your example, the 6 conditions are met, so we could reasonably decide
> not to detect it. Even with, say, 3 or 4 conditions, I guess we could
> drop it.
> 
> I just made these changes to sensors-detect, would you be kind enough,
> give it a try and confirm that it now doesn't tell you to load adm1021
> anymore? Thanks.
> 
> > But thank you anyway for making that minor correction!  I hope it was
> > only me that had the disk trashing trouble!
> 
> We had no other reports, hopefully because nobody experienced the same.
> 
> > One interesting note is that when rebooting, I had to completely do a
> > cold start.
> 
> The chip as 0x18 is not a LM84. Maybe it is some other chip that did not
> like what the adm1021 driver did to him, and had its revendge at
> shutdown time ;)
> 
> > Let me know if I can provide you with any additional detail.
> 
> Great that the changes I made to sensors-detect prevent your system from
> crashing.
> 
> Thanks for the update :)
-- 
Peter Hyman
Home:(609)395-1211 Office: (609)655-1184, Fax:(609)655-0285
Stop Telemarketers.  Sign up for Do Not Call at http://donotcall.gov
-------------- next part --------------
bash-2.05b# ./prog/detect/sensors-detect

This program will help you determine which I2C/SMBus modules you need to
load to use lm_sensors most effectively. You need to have i2c and
lm_sensors installed before running this program.
Also, you need to be `root', or at least have access to the /dev/i2c-*
files, for most things.
If you have patched your kernel and have some drivers built-in, you can
safely answer NO if asked to load some modules. In this case, things may
seem a bit confusing, but they will still work.

 BIOS vendor (ACPI): KT400
 System vendor (DMI): VIA Technologies, Inc.
 BIOS version (DMI): 6.00 PG
 We can start with probing for (PCI) I2C or SMBus adapters.
 You do not need any special privileges for this.
 Do you want to probe now? (YES/no):
Probing for PCI bus adapters...
Use driver `i2c-viapro' for device 00:11.0: VIA Technologies VT8233A/8235 South
Bridge
Probe succesfully concluded.

 We will now try to load each adapter module in turn.
Load `i2c-viapro' (say NO if built into your kernel)? (YES/no):
Module loaded succesfully.
 Do you now want to be prompted for non-detectable adapters? (yes/NO):
 To continue, we need module `i2c-dev' to be loaded.
 If it is built-in into your kernel, you can safely skip this.
 i2c-dev is not loaded. Do you want to load it now? (YES/no):
 Module loaded succesfully.

 We are now going to do the adapter probings. Some adapters may hang halfway
 through; we can't really help that. Also, some chips will be double detected;
 we choose the one with the highest confidence value in that case.
 If you found that the adapter hung after probing a certain address, you can
 specify that address to remain unprobed. That often
 includes address 0x69 (clock chip).

Next adapter: SMBus Via Pro adapter at 5000 (Non-I2C SMBus adapter)
Do you want to scan it? (YES/no/selectively):
Client found at address 0x18
Probing for `Analog Devices ADM1021'... Failed!
Probing for `Analog Devices ADM1021A/ADM1023'... Failed!
Probing for `Maxim MAX1617'... Failed!
Probing for `Maxim MAX1617A'... Failed!
Probing for `TI THMC10'... Failed!
Probing for `National Semiconductor LM84'... Failed!
Probing for `Genesys Logic GL523SM'... Failed!
Probing for `Onsemi MC1066'... Failed!
Probing for `National Semiconductor LM82'... Failed!
Probing for `National Semiconductor LM83'... Failed!
Client found at address 0x37
Client found at address 0x4c
Probing for `National Semiconductor LM75'... Failed!
Probing for `Dallas Semiconductor DS1621'... Failed!
Probing for `Analog Devices ADM1021'... Failed!
Probing for `Analog Devices ADM1021A/ADM1023'... Failed!
Probing for `Maxim MAX1617'... Success!
    (confidence 3, driver `adm1021')
Probing for `Maxim MAX1617A'... Failed!
Probing for `TI THMC10'... Failed!
Probing for `National Semiconductor LM84'... Failed!
Probing for `Genesys Logic GL523SM'... Failed!
Probing for `Onsemi MC1066'... Failed!
Probing for `National Semiconductor LM82'... Failed!
Probing for `National Semiconductor LM83'... Failed!
Probing for `National Semiconductor LM90'... Success!
    (confidence 8, driver `lm90')
Probing for `National Semiconductor LM89'... Failed!
Probing for `National Semiconductor LM86'... Failed!
Probing for `Analog Devices ADM1032'... Failed!
Probing for `Maxim MAX6657/MAX6658'... Failed!
Probing for `Philips Semiconductors PCF8591'... Success!
    (confidence 1, driver `pcf8591')
Client found at address 0x4e
Probing for `National Semiconductor LM75'... Success!
    (confidence 3, driver `lm75')
Probing for `Dallas Semiconductor DS1621'... Failed!
Probing for `Analog Devices ADM1021'... Failed!
Probing for `Analog Devices ADM1021A/ADM1023'... Failed!
Probing for `Maxim MAX1617'... Success!
    (confidence 3, driver `adm1021')
Probing for `Maxim MAX1617A'... Failed!
Probing for `TI THMC10'... Failed!
Probing for `National Semiconductor LM84'... Success!
    (confidence 6, driver `adm1021')
Probing for `Genesys Logic GL523SM'... Failed!
Probing for `Onsemi MC1066'... Failed!
Probing for `National Semiconductor LM82'... Failed!
Probing for `National Semiconductor LM83'... Failed!
Probing for `Philips Semiconductors PCF8591'... Success!
    (confidence 1, driver `pcf8591')
Client found at address 0x52
Probing for `SPD EEPROM'... Success!
    (confidence 8, driver `eeprom')
Client found at address 0x69

 Some chips are also accessible through the ISA bus. ISA probes are
 typically a bit more dangerous, as we have to write to I/O ports to do
 this.  Do you want to scan the ISA bus? (YES/no):
Probing for `National Semiconductor LM78'
  Trying address 0x0290... Success!
    (confidence 7, driver `lm78')
Probing for `National Semiconductor LM78-J'
  Trying address 0x0290... Failed!
Probing for `National Semiconductor LM79'
  Trying address 0x0290... Failed!
Probing for `Winbond W83781D'
  Trying address 0x0290... Failed!
Probing for `Winbond W83782D'
  Trying address 0x0290... Failed!
Probing for `Winbond W83627HF'
  Trying address 0x0290... Failed!
Probing for `Winbond W83697HF'
  Trying address 0x0290... Failed!
Probing for `Silicon Integrated Systems SIS5595'
  Trying general detect... Failed!
Probing for `VIA Technologies VT82C686 Integrated Sensors'
  Trying general detect... Failed!
Probing for `VIA Technologies VT8231 Integrated Sensors'
  Trying general detect... Failed!
Probing for `ITE IT8705F / IT8712F / SiS 950'
  Trying address 0x0290... Success!
    (confidence 8, driver `it87')
Probing for `IPMI BMC KCS'
  Trying address 0x0ca0... Failed!
Probing for `IPMI BMC SMIC'
  Trying address 0x0ca8... Failed!

 Some Super I/O chips may also contain sensors. Super I/O probes are
 typically a bit more dangerous, as we have to write to I/O ports to do
 this.  Do you want to scan for Super I/O sensors? (YES/no):
Probing for `SMSC 47M10x Super IO Fan Sensors'
  Failed!
Probing for `SMSC 47M14x Super IO Fan Sensors'
  Failed!
Probing for `VT1211 Super IO Sensors'
  Failed!
Probing for `Winbond W83627HF Super IO Sensors'
  Failed!
Probing for `Winbond W83627THF Super IO Sensors'
  Failed!
Probing for `Winbond W83697HF Super IO Sensors'
  Failed!

 Now follows a summary of the probes I have just done.
 Just press ENTER to continue:

Driver `adm1021' (should be inserted but causes problems):
  Detects correctly:
  * Bus `SMBus Via Pro adapter at 5000' (Non-I2C SMBus adapter)
    Busdriver `i2c-viapro', I2C address 0x4e
    Chip `National Semiconductor LM84' (confidence: 6)
  Misdetects:
  * Bus `SMBus Via Pro adapter at 5000' (Non-I2C SMBus adapter)
    Busdriver `i2c-viapro', I2C address 0x4c
    Chip `Maxim MAX1617' (confidence: 3)
  * Bus `SMBus Via Pro adapter at 5000' (Non-I2C SMBus adapter)
    Busdriver `i2c-viapro', I2C address 0x4e
    Chip `Maxim MAX1617' (confidence: 3)

Driver `lm90' (should be inserted):
  Detects correctly:
  * Bus `SMBus Via Pro adapter at 5000' (Non-I2C SMBus adapter)
    Busdriver `i2c-viapro', I2C address 0x4c
    Chip `National Semiconductor LM90' (confidence: 8)

Driver `pcf8591' (may not be inserted):
  Misdetects:
  * Bus `SMBus Via Pro adapter at 5000' (Non-I2C SMBus adapter)
    Busdriver `i2c-viapro', I2C address 0x4c
    Chip `Philips Semiconductors PCF8591' (confidence: 1)
  * Bus `SMBus Via Pro adapter at 5000' (Non-I2C SMBus adapter)
    Busdriver `i2c-viapro', I2C address 0x4e
    Chip `Philips Semiconductors PCF8591' (confidence: 1)

Driver `lm75' (may not be inserted):
  Misdetects:
  * Bus `SMBus Via Pro adapter at 5000' (Non-I2C SMBus adapter)
    Busdriver `i2c-viapro', I2C address 0x4e
    Chip `National Semiconductor LM75' (confidence: 3)

Driver `eeprom' (should be inserted):
  Detects correctly:
  * Bus `SMBus Via Pro adapter at 5000' (Non-I2C SMBus adapter)
    Busdriver `i2c-viapro', I2C address 0x52
    Chip `SPD EEPROM' (confidence: 8)

Driver `lm78' (may not be inserted):
  Misdetects:
  * ISA bus address 0x0290 (Busdriver `i2c-isa')
    Chip `National Semiconductor LM78' (confidence: 7)

Driver `it87' (should be inserted):
  Detects correctly:
  * ISA bus address 0x0290 (Busdriver `i2c-isa')
    Chip `ITE IT8705F / IT8712F / SiS 950' (confidence: 8)


 I will now generate the commands needed to load the I2C modules.
 Sometimes, a chip is available both through the ISA bus and an I2C bus.
 ISA bus access is faster, but you need to load an additional driver module
 for it. If you have the choice, do you want to use the ISA bus or the
 I2C/SMBus (ISA/smbus)?

To make the sensors modules behave correctly, add these lines to
/etc/modules.conf:

#----cut here----
# I2C module options
alias char-major-89 i2c-dev
options adm1021 ignore=0,0x4c,0,0x4e
#----cut here----

To load everything that is needed, add this to some /etc/rc* file:

#----cut here----
# I2C adapter drivers
modprobe i2c-viapro
modprobe i2c-isa
# I2C chip drivers
modprobe adm1021
modprobe lm90
modprobe eeprom
modprobe it87
# sleep 2 # optional
/usr/local/bin/sensors -s # recommended
#----cut here----

WARNING! If you have some things built into your kernel, the list above
will contain too many modules. Skip the appropriate ones! You really should
try these commands right now to make sure everything is working properly.
Monitoring programs won't work until it's done.

Do you want to generate /etc/sysconfig/lm_sensors? (YES/no):
Copy prog/init/lm_sensors.init to /etc/rc.d/init.d/lm_sensors
for initialization at boot time.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 193 bytes
Desc: This is a digitally signed message part
URL: <http://lists.lm-sensors.org/pipermail/lm-sensors/attachments/20031010/5d744600/attachment.sig>


More information about the lm-sensors mailing list