Finally I get W83795ADG working on my proliant microserver
The patch is based on i2c-amd756-s4882.c and adapted for sb800 southbus.
Karsten, please try it too...
root@proliant:/usr/src/lm-sensors/eddi# i2cdetect -l
i2c-0 smbus SMBus piix4 adapter (SDA0) SMBus
adapter
i2c-1 smbus SMBus piix4 adapter (SDA2) SMBus
adapter
i2c-2 smbus SMBus piix4 adapter (SDA3) SMBus
adapter
i2c-3 smbus SMBus piix4 adapter (SDA4) SMBus
adapter
root@proliant:/usr/src/lm-sensors/eddi#
yes SDA1 is reserved... so i can't multiplex it
root@proliant:/usr/src/lm-sensors/eddi# sensors
k10temp-pci-00c3
Adapter: PCI adapter
temp1: +24.5°C (high = +70.0°C, crit = +100.0°C)
w83795adg-i2c-1-2f
Adapter: SMBus piix4 adapter (SDA2)
in0: +1.02 V (min = +0.00 V, max = +2.05 V)
in1: +1.52 V (min = +0.00 V, max = +2.05 V)
in2: +1.10 V (min = +0.00 V, max = +2.05 V)
in3: +0.89 V (min = +0.00 V, max = +2.05 V)
in12: +3.35 V (min = +0.00 V, max = +6.14 V)
in13: +3.28 V (min = +0.00 V, max = +6.14 V)
fan1: 703 RPM (min = 329 RPM)
temp1: +23.0°C (high = +109.0°C, hyst = +109.0°C)
(crit = +109.0°C, hyst = +109.0°C) sensor =
thermal diode
temp2: +33.2°C (high = +105.0°C, hyst = +105.0°C)
(crit = +105.0°C, hyst = +105.0°C) sensor =
thermal diode
temp5: +14.0°C (high = +39.0°C, hyst = +39.0°C)
(crit = +44.0°C, hyst = +44.0°C) sensor =
thermistor
beep_enable:disabled
jc42-i2c-0-18
Adapter: SMBus piix4 adapter (SDA0)
temp1: +20.5°C (low = +0.0°C, high = +0.0°C) ALARM
(crit = +0.0°C, hyst = +0.0°C) ALARM
root@proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 0
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root@proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- UU
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- 61 -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root@proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 2
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- 4c -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root@proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 3
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
pay attention that the msleep seems to be really needed...
Regards, Eddi
On Tue, Aug 16, 2011 at 9:26 AM, Eddi De Pieri<eddi@xxxxxxxxxxx> wrote:
Hi Jean...
The bios show fan rpm and temperature. Since my own proliant
microserver lacks of ipmi card, I doubt the bios give me the results
using ipmi call.
The HP Proliant Microserver chipset (SB820M) have a multiplexed
smbus like your.
http://support.amd.com/it/Embedded_TechDocs/47283_sb820m_ds_pub_2.00.pdf
Here is technical document from amd...
at p52/53 they say:
(1) The SDA1 and SCL1 SMBus interface is dedicated for ASF devices
only. It should not be used to
connect to any other devices.
(2) There are only two SMBus controllers. The SCL1/SDA1 pair is
controlled by SMBus controller 1.
SCL0/SDA0, SCL2/SDA2, SCL3/SDA3 and SCL4/SDA4 are multiplexed pins
that are all controlled by
SMBus controller 0, and only 1 pair of those pins can be active at
any time.
I can't understand how to enable 2, 3 and 4 muxed bus..
If you consolidate a solution for i2c-i801.c I hope we can be
replicated for i2c-piix4.c too..
Hi Karsten,
On Fri, 22 Oct 2010 16:04:10 +0200, karsten at maxi-dsl.de wrote:
hi Jean,
The w83795 driver uses the same detection mechanism used in
sensors-detect. So if sensors-detect doesn't see your chip, I am not
surprised that the driver didn't either.
The full output of sensors-detect is needed to diagnose your problem
further. It could be that your SMBus controller isn't supported, or
maybe you are supposed to access the chip through IPMI.
IPMI is probably the key..
From the sensors-detect output:
"Warning: the required module ipmisensors is not currently installed
on your system. If it is built into the kernel then it's OK.
Otherwise, checkhttp://www.lm-sensors.org/wiki/Devices for
driver availability" (full ouput attached)
I did see the output before, but didn't really understand the
implications (IPMI seems to be an alternative way of accessing the
monitoring chips?)
Yes. The strength of IPMI access is that it can be used remotely too,
for example from a BMC plugged into your system.
The suggested ipmisensors driver however does not seem to be
available, right?
(http://lm-sensors.org/wiki/Devices says "(2004-12-12) Port to Linux
2.6 in progress by Yani Ioannou")
That project is essentially dead. At the time being, the best way to
retrieve IPMI-based sensor values is using "ipmitool sensor". The
drawback is that this isn't integrated with libsensors, so the usually
monitoring applications won't work.
If you have a BMC or are otherwise already using IPMI on your machine,
just use ipmitool and you're done.
If not, then it might be worth trying ipmitool once, and then try
sensors-detect again. There is a small chance that, once ipmitool
managed to access the monitoring device, sensors-detect will see it. My
own mainboard which has a W83795ADG chip has a multiplexed SMBus, and I
can only see the W83795ADG in sensors-detect when the multiplexer is
set properly. Otherwise I would see the memory modules, which _do_
appear in your sensors-detect output. So maybe your board has a
multiplexed SMBus too.
If the trick doesn't work, you may want to try the new jc42 driver
which can monitor the temperature of some DDR3 memory modules. I
suspect your memory modules have such sensors. A more recent version of
sensors-detect would confirm that:
http://dl.lm-sensors.org/lm-sensors/files/sensors-detect
I also see that sensors-detect suggested to use the k10temp driver,
which your kernel doesn't have. You can try the standalone flavor of
the drivers which I maintain at:
http://khali.linux-fr.org/devel/misc/k10temp/
The accuracy of the CPU internal sensors is limited, but that's still
better than nothing.
--
Jean Delvare
http://khali.linux-fr.org/wishlist.html