Files
lm-sensors/prog/hotplug/README.p4b
T
Jean Delvare dc9d483940 p4b_smbus: Add support for the ICH5. The Asus P4P800-X motherboard that
was given to our project by Winbond has its SMBus hidden and needs this.
Also update the documentation a bit.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@4282 7894878c-1315-0410-8ee3-d5d059ff63e0
2007-01-06 10:55:02 +00:00

100 lines
2.8 KiB
Plaintext

What is it?
-----------
NOTE:
This module is for 2.4 kernels only. For 2.6 kernels,
activation is handled by the code in drivers/pci/quirks.c
in the kernel source. If you have the latest 2.6 kernel and
the quirks code does not activate your SMBus, try adding support
in quirks.c, recompile and test your new kernel, and then
submit a patch to us. Contact us if you need assistance.
This is just a quick and dirty hack to get the hardware monitoring working
on the ASUS P4B board under Linux.
It works by turning on the SMBus PCI device.
It is implemented as a module, p4b_smbus.o.
It works with the following chips:
* ICH2 (82801BA)
* ICH2-M (82801BAM)
* ICH4 (82801DB)
* ICH4-M (82801DBM)
* ICH5 (82801EB)
ASUS switches off the SMBus PCI Device in the i801 ICH chip. I spoke twice
with the German support and learned that: "We do not want the users to be
irritated by just another PCI Device in the Win98 device manager."
Really funny :-).
NOTE: As of kernel 2.4.23, the kernel activates the SMBus PCI device
on the following boards:
* Asus P4B
* Asus P4B533
* Asus P4PE
* Asus P4T533
* Asus P4G8X Deluxe
So this module is no longer required for these boards. For the other
affected boards, it still is.
What does the module do?
------------------------
(Note: the following instructions assume the ICH2. For the ICH4,
the PCI IDs are 24C0 and 24C3)
It turnes off (!) the bits number 8 and 3 in the LPC register of the ICH2.
This you can also try as root with setpci and pcitweak.
First do a:
setpci -d 8086:2440 f2.w
You will get an hex number VAL - in my case 148 (Hex)-, where you have to
erase the two bits - in my case you get 40 (Hex).
Then do a:
setpci -d 8086:2440 f2.w=VAL
Running "lspci -n" you will not see any new device, but with "pcitweak -l" you
should get a line similar to this in the output:
PCI: 00:1f:3: chip 8086,2443 card 1043,8028 rev 12 class 0c,05,00 hdr 00
The important thing is the "8086,2443" here.
The device is activated, but not included in /proc/pci and
/proc/bus/pci/devices. This is the reason for running the module.
What are the system requirements?
---------------------------------
- Obviously a board with Intel i801BA/DB/EB ICH2/4/5 with broken BIOS.
- A linux working with a 2.4 kernel AND hotplug support in it!
- A installed kernel tree and gcc.
- i2c and sensor modules installed.
How to install?
---------------
Simply do a:
make -f Makefile.p4b
insmod p4b_smbus.o
modprobe i2c-core
modprobe i2c-i801
modprobe i2c-dev
modprobe i2c-proc
Then run your sensor:
modprobe w83781d
What should i never do?
-----------------------
Do not try to do a "rmmod p4b_smbus" before a "rmmod i2c-i801".
The other way around should be okay. Otherwise you remove the PCI device
without notifying the i2c driver.
-------------------------------
Ilja Rauhut <IljaRauhut@web.de>