Bug 6763 - ASUS Bios not detecting SMBus PCI Device
Summary: ASUS Bios not detecting SMBus PCI Device
Status: CLOSED CODE_FIX
Alias: None
Product: Drivers
Classification: Unclassified
Component: I2C (show other bugs)
Hardware: i386 Linux
: P2 low
Assignee: Jean Delvare
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-06-28 21:36 UTC by Conrad Williams
Modified: 2006-08-05 00:52 UTC (History)
0 users

See Also:
Kernel Version: 2.6.16
Subsystem:
Regression: ---
Bisected commit-id:


Attachments
Unhide the SMBus controller on the Asus PU-DLS board (2.61 KB, patch)
2006-06-30 01:44 UTC, Jean Delvare
Details | Diff
dsdt file 2.6.15-8.deb for ASUS PU-DLS mobo (9.43 KB, application/octet-stream)
2006-07-01 07:06 UTC, Conrad Williams
Details

Description Conrad Williams 2006-06-28 21:36:14 UTC
Most recent kernel where this bug did not occur: NA

Distribution: Debian Sarge 3.1 - running Deb Testing Kernel 2.6.15 compliled
from deb.source.
The changelogs in the kernel do not reference any further changes in this area
since this kernel release.

Hardware Environment:
Mobo  ASUS PU-DLS  (S for SCSI, should also apply to PU-DL) latest Bios 1008
Xeon 2.4 512M, running PCI-X.
Has SMBus connector for other devices, which is "obvously" on the I2C bus.
Main chip is an Intel E7501 (Plumas 533) MCH which I believe is the adapter;
Intel 82801CA/CAM (ICH3).

Software Environment:
sensors version 2.10.0 with libsensors version 2.10.0
I2C is compiled in as a module, in the kernel .config file, as per the 2.6
settings at lmsensors site.

Problem Description:

In a nutshell, need to turn on the SMBus PCI device for an ASUS mobo. How to
hack quirks.c and where to start for a beginner.

There was reference to this mobo, back in May 03, with the following thread;
http://lists.lm-sensors.org/pipermail/lm-sensors/2003-May/002471.html
and then again in Aug 03
http://lists.lm-sensors.org/pipermail/lm-sensors/2003-August/004177.html

Have done sensors-detect, and found only the i2c-isa bus driver, and pc87360
driver, which is not returning any sensor information. I'm prepared to get this
working, but I don't know where to start. I have as much information as I can at
this stage to get things started, and am prepared for the long haul. 

I have read the README.p4b, and about  driver `i2c-i801.o' and the 2.6 kernel
calling the quirks.c code. I have looked at the quirks code, and not found
anything relating specifically to this system or chip in this code.


lspci
0000:00:00.0 Host bridge: Intel Corp. E7501 Memory Controller Hub (rev 01)
0000:00:00.1 ff00: Intel Corp. E7500/E7501 Host RASUM Controller (rev 01)
0000:00:02.0 PCI bridge: Intel Corp. E7500/E7501 Hub Interface B PCI-to-PCI
Bridge (rev 01)
0000:00:1d.0 USB Controller: Intel Corp. 82801CA/CAM USB (Hub #1) (rev 02)
0000:00:1d.1 USB Controller: Intel Corp. 82801CA/CAM USB (Hub #2) (rev 02)
0000:00:1d.2 USB Controller: Intel Corp. 82801CA/CAM USB (Hub #3) (rev 02)
0000:00:1e.0 PCI bridge: Intel Corp. 82801 PCI Bridge (rev 42)
0000:00:1f.0 ISA bridge: Intel Corp. 82801CA LPC Interface Controller (rev 02)
0000:00:1f.1 IDE interface: Intel Corp. 82801CA Ultra ATA Storage Controller
(rev 02)
0000:01:1c.0 PIC: Intel Corp. 82870P2 P64H2 I/OxAPIC (rev 04)
0000:01:1d.0 PCI bridge: Intel Corp. 82870P2 P64H2 Hub PCI Bridge (rev 04)
0000:01:1e.0 PIC: Intel Corp. 82870P2 P64H2 I/OxAPIC (rev 04)
0000:01:1f.0 PCI bridge: Intel Corp. 82870P2 P64H2 Hub PCI Bridge (rev 04)
0000:03:03.0 Ethernet controller: Intel Corp. 82544GC Gigabit Ethernet
Controller (LOM) (rev 02)
0000:03:05.0 RAID bus controller: 3ware Inc 3ware ATA-RAID
0000:04:01.0 Ethernet controller: Intel Corp. 82540EM Gigabit Ethernet
Controller (rev 02)
0000:04:02.0 VGA compatible controller: ATI Technologies Inc Rage XL (rev 27)

lspci -n
0000:00:00.0 0600: 8086:254c (rev 01)
0000:00:00.1 ff00: 8086:2541 (rev 01)
0000:00:02.0 0604: 8086:2543 (rev 01)
0000:00:1d.0 0c03: 8086:2482 (rev 02)
0000:00:1d.1 0c03: 8086:2484 (rev 02)
0000:00:1d.2 0c03: 8086:2487 (rev 02)
0000:00:1e.0 0604: 8086:244e (rev 42)
0000:00:1f.0 0601: 8086:2480 (rev 02)
0000:00:1f.1 0101: 8086:248b (rev 02)
0000:01:1c.0 0800: 8086:1461 (rev 04)
0000:01:1d.0 0604: 8086:1460 (rev 04)
0000:01:1e.0 0800: 8086:1461 (rev 04)
0000:01:1f.0 0604: 8086:1460 (rev 04)
0000:03:03.0 0200: 8086:100d (rev 02)
0000:03:05.0 0104: 13c1:1002
0000:04:01.0 0200: 8086:100e (rev 02)
0000:04:02.0 0300: 1002:4752 (rev 27)

lsmod  # reduced set of modules.
Module                  Size  Used by
dm_mod                 53624  6
pc87360                20784  0
hwmon_vid               2528  1 pc87360
i2c_isa                 4832  1 pc87360
i2c_core               19952  2 pc87360,i2c_isa
shpchp                 42592  0
pci_hotplug            26132  1 shpchp
piix                    9700  0 [permanent]
thermal                13640  0
processor              23680  1 thermal
fan                     4612  0

# sensors-detect revision 1.413 (2006/01/19 20:28:00)

Do you want to scan the ISA bus? (YES/no):
Probing for `National Semiconductor LM78'
  Trying address 0x0290... Failed!
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 W83627EHF'
  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 IT8712F'
  Trying address 0x0290... Failed!
Probing for `ITE IT8705F / SiS 950'
  Trying address 0x0290... Failed!
Probing for `IPMI BMC KCS'
  Trying address 0x0ca0... Failed!
Probing for `IPMI BMC SMIC'
  Trying address 0x0ca8... Failed!

Do you want to scan for Super I/O sensors? (YES/no):
Probing for `ITE 8702F Super IO Sensors'
  Failed! (0xe115)
Probing for `ITE 8705F Super IO Sensors'
  Failed! (0xe115)
Probing for `ITE 8712F Super IO Sensors'
  Failed! (0xe115)
Probing for `Nat. Semi. PC87351 Super IO Fan Sensors'
  Failed! (0xe1)
Probing for `Nat. Semi. PC87360 Super IO Fan Sensors'
  Success... found at address 0xecc0
Probing for `Nat. Semi. PC87363 Super IO Fan Sensors'
  Failed! (0xe1)
Probing for `Nat. Semi. PC87364 Super IO Fan Sensors'
  Failed! (0xe1)
Probing for `Nat. Semi. PC87365 Super IO Fan Sensors'
  Failed! (0xe1)
Probing for `Nat. Semi. PC87365 Super IO Voltage Sensors'
  Failed! (0xe1)
Probing for `Nat. Semi. PC87365 Super IO Thermal Sensors'
  Failed! (0xe1)
Probing for `Nat. Semi. PC87366 Super IO Fan Sensors'
  Failed! (0xe1)
Probing for `Nat. Semi. PC87366 Super IO Voltage Sensors'
  Failed! (0xe1)
Probing for `Nat. Semi. PC87366 Super IO Thermal Sensors'
  Failed! (0xe1)
Probing for `Nat. Semi. PC87372 Super IO Fan Sensors'
  Failed! (0xe1)
Probing for `Nat. Semi. PC87373 Super IO Fan Sensors'
  Failed! (0xe1)
Probing for `Nat. Semi. PC87591 Super IO'
  Failed! (0xe1)
Probing for `Nat. Semi. PC87371 Super IO'
  Failed! (0xe1)
Probing for `Nat. Semi. PC97371 Super IO'
  Failed! (0xe1)
Probing for `Nat. Semi. PC8739x Super IO'
  Failed! (0xe1)
Probing for `Nat. Semi. PC8741x Super IO'
  Failed! (0xe1)
Probing for `Nat. Semi. PCPC87427 Super IO'
  Failed! (0xe1)
Probing for `SMSC 47B27x Super IO Fan Sensors'
  Failed! (0xe1)
Probing for `SMSC 47M10x/13x Super IO Fan Sensors'
  Failed! (0xe1)
Probing for `SMSC 47M14x Super IO Fan Sensors'
  Failed! (0xe1)
Probing for `SMSC 47M15x/192/997 Super IO Fan Sensors'
  Failed! (0xe1)
Probing for `SMSC 47S42x Super IO Fan Sensors'
  Failed! (0xe1)
Probing for `SMSC 47S45x Super IO Fan Sensors'
  Failed! (0xe1)
Probing for `SMSC 47M172 Super IO'
  Failed! (0xe1)
Probing for `SMSC LPC47B397-NC Super IO'
  Failed! (0xe1)
Probing for `SMSC SCH5307-NS Super IO'
  Failed! (0xe1)
Probing for `VT1211 Super IO Sensors'
  Failed! (0xe1)
Probing for `Winbond W83627HF Super IO Sensors'
  Failed! (0xe1)
Probing for `Winbond W83627THF Super IO Sensors'
  Failed! (0xe1)
Probing for `Winbond W83637HF Super IO Sensors'
  Failed! (0xe1)
Probing for `Winbond W83687THF Super IO Sensors'
  Failed! (0xe1)
Probing for `Winbond W83697HF Super IO Sensors'
  Failed! (0xe1)
Probing for `Winbond W83697SF/UF Super IO PWM'
  Failed! (0xe1)
Probing for `Winbond W83L517D Super IO'
  Failed! (0xe1)
Probing for `Fintek F71805F/FG Super IO Sensors'
  Failed! (0xe115)
Probing for `Winbond W83627EHF/EHG Super IO Sensors'
  Failed! (0xe115)
  
Do you want to scan for secondary Super I/O sensors? (YES/no):
Probing for `ITE8702F Super IO Sensors'
  Failed! (skipping family)
Probing for `Nat. Semi. PC87351 Super IO Fan Sensors'
  Failed! (skipping family)
Probing for `SMSC 47B27x Super IO Fan Sensors'
  Failed! (skipping family)
Probing for `VT1211 Super IO Sensors'
  Failed! (skipping family)
Probing for `Winbond W83627EHF/EHG Super IO Sensors'
  Failed! (skipping family)

 Now follows a summary of the probes I have just done.
 Just press ENTER to continue:
Driver `pc87360' (should be inserted):
  Detects correctly:
  * ISA bus address 0xecc0 (Busdriver `i2c-isa')
    Chip `Nat. Semi. PC87360 Super IO Fan Sensors' (confidence: 9)


I will now generate the commands needed to load the I2C modules.

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

#----cut here----
# I2C adapter drivers
i2c-isa
# I2C chip drivers
pc87360
#----cut here----

Output from sensors;

pc87360-isa-ecc0
Adapter: ISA adapter

In the log/messages file; following may be of note;
PCI quirk: region e400-e47f claimed by ICH4 ACPI/GPIO/TCO
PCI quirk: region ec00-ec3f claimed by ICH4 GPIO
PCI: Ignoring BAR0-3 of IDE controller 0000:00:1f.1
PCI: Transparent bridge - 0000:00:1e.0
PCI: If a device doesn't work, try "pci=routeirq".  If it helps, post a report
## What does the above mean, does it relate to hidden PCI device?

ls /sys/bus/i2c/devices/
9191-ecc0

ls /sys/bus/i2c/devices/9191-ecc0
bus  driver  hwmon:hwmon0  name  power  uevent

Steps to reproduce:
Follow the standard lm-sensors install directions.
Comment 1 Jean Delvare 2006-06-29 14:06:21 UTC
> In the log/messages file; following may be of note;
> PCI quirk: region e400-e47f claimed by ICH4 ACPI/GPIO/TCO
> PCI quirk: region ec00-ec3f claimed by ICH4 GPIO
> PCI: Ignoring BAR0-3 of IDE controller 0000:00:1f.1
> PCI: Transparent bridge - 0000:00:1e.0
> PCI: If a device doesn't work, try "pci=routeirq".  If it helps, post a report
> ## What does the above mean, does it relate to hidden PCI device?

No, it doesn't.

Please provide the output of "lspci -vn".

Beware that unhiding the SMBus may cause conflicts with ACPI on some systems. Do
you have anything under /proc/acpi/fan, /proc/acpi/embedded_controller or
/proc/acpi/thermal_zone?
Comment 2 Conrad Williams 2006-06-29 16:24:44 UTC
Output from lspci -vn

0000:00:00.0 0600: 8086:254c (rev 01)
        Subsystem: 1043:80c9
        Flags: bus master, fast devsel, latency 0
        Capabilities: [40] #09 [1105]

0000:00:00.1 ff00: 8086:2541 (rev 01)
        Subsystem: 1043:80c9
        Flags: fast devsel

0000:00:02.0 0604: 8086:2543 (rev 01)
        Flags: bus master, 66MHz, fast devsel, latency 64
        Bus: primary=00, secondary=01, subordinate=03, sec-latency=0
        I/O behind bridge: 0000c000-0000dfff
        Memory behind bridge: fb000000-fddfffff
        Prefetchable memory behind bridge: fdf00000-febfffff

0000:00:1d.0 0c03: 8086:2482 (rev 02)
        Subsystem: 1043:80c8
        Flags: bus master, medium devsel, latency 0, IRQ 169
        I/O ports at b800 [size=32]

0000:00:1d.1 0c03: 8086:2484 (rev 02)
        Subsystem: 1043:80c8
        Flags: bus master, medium devsel, latency 0, IRQ 177
        I/O ports at b400 [size=32]

0000:00:1d.2 0c03: 8086:2487 (rev 02)
        Subsystem: 1043:80c8
        Flags: bus master, medium devsel, latency 0, IRQ 185
        I/O ports at b000 [size=32]

0000:00:1e.0 0604: 8086:244e (rev 42)
        Flags: bus master, fast devsel, latency 0
        Bus: primary=00, secondary=04, subordinate=04, sec-latency=32
        I/O behind bridge: 0000a000-0000afff
        Memory behind bridge: f8800000-fa7fffff
        Prefetchable memory behind bridge: fde00000-fdefffff

0000:00:1f.0 0601: 8086:2480 (rev 02)
        Flags: bus master, medium devsel, latency 0

0000:00:1f.1 0101: 8086:248b (rev 02) (prog-if 8a [Master SecP PriP])
        Subsystem: 1043:80c8
        Flags: bus master, medium devsel, latency 0, IRQ 185
        I/O ports at <ignored>
        I/O ports at <ignored>
        I/O ports at <ignored>
        I/O ports at <ignored>
        I/O ports at 8400 [size=16]
        Memory at 30000000 (32-bit, non-prefetchable) [size=1K]

0000:01:1c.0 0800: 8086:1461 (rev 04) (prog-if 20)
        Subsystem: 1043:80cb
        Flags: bus master, 66MHz, fast devsel, latency 0
        Memory at fd000000 (32-bit, non-prefetchable) [size=4K]
        Capabilities: [50] PCI-X non-bridge device.

0000:01:1d.0 0604: 8086:1460 (rev 04)
        Flags: bus master, 66MHz, fast devsel, latency 64
        Bus: primary=01, secondary=02, subordinate=02, sec-latency=64
        Capabilities: [50] PCI-X bridge device.

0000:01:1e.0 0800: 8086:1461 (rev 04) (prog-if 20)
        Subsystem: 1043:80cb
        Flags: bus master, 66MHz, fast devsel, latency 0
        Memory at fc800000 (32-bit, non-prefetchable) [size=4K]
        Capabilities: [50] PCI-X non-bridge device.

0000:01:1f.0 0604: 8086:1460 (rev 04)
        Flags: bus master, 66MHz, fast devsel, latency 64
        Bus: primary=01, secondary=03, subordinate=03, sec-latency=0
        I/O behind bridge: 0000d000-0000dfff
        Memory behind bridge: fb000000-fc7fffff
        Prefetchable memory behind bridge: 00000000fdf00000-00000000feb00000
        Capabilities: [50] PCI-X bridge device.

0000:03:03.0 0200: 8086:100d (rev 02)
        Subsystem: 8086:110d
        Flags: bus master, 66MHz, medium devsel, latency 32, IRQ 193
        Memory at fc000000 (32-bit, non-prefetchable) [size=128K]
        Memory at fb800000 (32-bit, non-prefetchable) [size=128K]
        I/O ports at d800 [size=32]
        Expansion ROM at febe0000 [disabled] [size=128K]
        Capabilities: [dc] Power Management version 2
        Capabilities: [e4] PCI-X non-bridge device.
        Capabilities: [f0] Message Signalled Interrupts: 64bit+ Queue=0/0 Enable
-

0000:03:05.0 0104: 13c1:1002
        Subsystem: 13c1:1002
        Flags: bus master, 66MHz, medium devsel, latency 32, IRQ 209
        I/O ports at d400 [size=256]
        Memory at fb000000 (64-bit, non-prefetchable) [size=256]
        Memory at fe000000 (64-bit, prefetchable) [size=8M]
        Expansion ROM at fdf00000 [disabled] [size=64K]
        Capabilities: [40] PCI-X non-bridge device.
        Capabilities: [48] Power Management version 2

0000:04:01.0 0200: 8086:100e (rev 02)
        Subsystem: 8086:100e
        Flags: bus master, 66MHz, medium devsel, latency 32, IRQ 201
        Memory at fa000000 (32-bit, non-prefetchable) [size=128K]
        I/O ports at a800 [size=64]
        Capabilities: [dc] Power Management version 2
        Capabilities: [e4] PCI-X non-bridge device.
        Capabilities: [f0] Message Signalled Interrupts: 64bit+ Queue=0/0 Enable
-

0000:04:02.0 0300: 1002:4752 (rev 27)
        Subsystem: 1002:8008
        Flags: bus master, stepping, medium devsel, latency 32, IRQ 9
        Memory at f9000000 (32-bit, non-prefetchable) [size=16M]
        I/O ports at a400 [size=256]
        Memory at f8800000 (32-bit, non-prefetchable) [size=4K]
        Expansion ROM at fdee0000 [disabled] [size=128K]
        Capabilities: [5c] Power Management version 2


/proc/acpi/fan, /proc/acpi/embedded_controller or /proc/acpi/thermal_zone are
empty directories.

ls -lR /proc/acpi/
/proc/acpi/:
total 0
-rw-r--r--  1 root root 0 2006-06-30 09:23 alarm
-r--------  1 root root 0 2006-06-30 09:23 dsdt
dr-xr-xr-x  2 root root 0 2006-06-30 09:23 embedded_controller
-r--------  1 root root 0 2006-06-30 09:23 event
-r--------  1 root root 0 2006-06-30 09:23 fadt
dr-xr-xr-x  2 root root 0 2006-06-30 09:23 fan
-r--r--r--  1 root root 0 2006-06-30 09:23 info
dr-xr-xr-x  2 root root 0 2006-06-30 09:23 power_resource
dr-xr-xr-x  3 root root 0 2006-06-30 09:23 processor
dr-xr-xr-x  2 root root 0 2006-06-30 09:23 thermal_zone
-rw-r--r--  1 root root 0 2006-06-30 09:23 wakeup

/proc/acpi/embedded_controller:
total 0

/proc/acpi/fan:
total 0

/proc/acpi/power_resource:
total 0

/proc/acpi/processor:
total 0
dr-xr-xr-x  2 root root 0 2006-06-30 09:23 CPU0

/proc/acpi/processor/CPU0:
total 0
-r--r--r--  1 root root 0 2006-06-30 09:23 info
-rw-r--r--  1 root root 0 2006-06-30 09:23 limit
-r--r--r--  1 root root 0 2006-06-30 09:23 power
-rw-r--r--  1 root root 0 2006-06-30 09:23 throttling

/proc/acpi/thermal_zone:
total 0

Of note, this is a dual procesor mobo, but I am only running 1 processor.
Comment 3 Jean Delvare 2006-06-29 23:46:35 UTC
Please also provide a copy of /proc/acpi/dsdt.
Comment 4 Jean Delvare 2006-06-30 01:44:26 UTC
Created attachment 8460 [details]
Unhide the SMBus controller on the Asus PU-DLS board

Please test this patch and report. It was generated against 2.6.16.22 but
should work fine with newer kernels as well.
Comment 5 Conrad Williams 2006-07-01 07:06:26 UTC
Created attachment 8469 [details]
dsdt file 2.6.15-8.deb for ASUS PU-DLS mobo
Comment 6 Conrad Williams 2006-07-01 07:10:37 UTC
Thankyou. It works. Have attached dsdt fyi

From dmesg:
PCI: Enabled i801 SMBus device

command# sensors
pc87360-isa-ecc0
Adapter: ISA adapter

as99127f-i2c-0-2d
Adapter: SMBus I801 adapter at e800

VCore 1:   +1.49 V  (min =  +1.14 V, max =  +1.55 V)
VCore 2:   +1.52 V  (min =  +1.14 V, max =  +1.55 V)
+3.3V:     +3.30 V  (min =  +2.96 V, max =  +3.63 V)
+5V:       +4.65 V  (min =  +4.49 V, max =  +5.51 V)
+12V:     +11.98 V  (min =  +9.55 V, max = +14.41 V)
-12V:      -2.16 V  (min =  -4.07 V, max =  -0.32 V)
-5V:       -1.28 V  (min =  -1.76 V, max =  -0.82 V)
fan1:     4720 RPM  (min = 2721 RPM, div = 2)
fan2:        0 RPM  (min = 3970 RPM, div = 2)
fan3:        0 RPM  (min = 1454 RPM, div = 8)
M/B Temp:    +29
Comment 7 Jean Delvare 2006-07-01 08:45:30 UTC
From the dsdt data and the lack of hardware monitoring information in
/proc/acpi, I think that the unhiding quirk should be safe for this machine.
Let's wait a few weeks to make sure it has no undesired side effects, then I
will push it upstream. If anything bad happens, please report.
Comment 8 Jean Delvare 2006-07-30 01:07:23 UTC
Conrad, no problem so far?
Comment 9 Conrad Williams 2006-07-30 05:18:18 UTC
No side effects on patch applied. sensorsd has worked "continuously" without
fault. Just need to tune lmsensors still...

Thanks
Comment 10 Jean Delvare 2006-08-05 00:52:09 UTC
Patch committed (321311af25cbb65d3cc177e3777fedd526814ecc).

Note You need to log in before you can comment on or make changes to this bug.