smb driver for Nvidia ION (intel ATOM) chipset

Oliver Lehmann lehmann at ans-netz.de
Thu Jan 7 18:52:17 UTC 2010


Jeremy Chadwick wrote:

> If you'd like, I can code up something that uses LPC/ISA to communicate
> with this IC via port 0x290 based on the datasheet.

I now was able to "hack up" mbmon to communicate with my it8720 sensor.
I've attached the patch for sens_it87.c
I also added to Makefile to the DEFS = line "-DIT8720" of course. This
made mbmon working with ISA-IO mode working. I'm now getting the
following outputs:

Temp.= 32.0, 34.0, 22.0; Rot.= 4591, 1298,    0
Vcore = 1.10, 1.81; Volt. = 3.39, 4.95, 11.93, -11.93, -4.99

I can nearly verify all values with the BIOS and they are matching. I
XXed in the following output (same as above) all values out I was not
able to verify because the BIOS-HWM does not show their values:

Temp.= 32.0, XXX, XXX; Rot.= 4591, 1298,    0
Vcore = 1.10, XXXX; Volt. = 3.39, 4.95, 11.93, -11.93, XXXXX

For the remaining values I'm pretty sure they are correct.
I enabled the 16Bit RPM mode for the 8720. In this case no devisor is
needed for calculating the RPM. I was not able to get the 2nd FAN-RPM
right in the 8Bit mode. The 1st one was correct even in the 8Bit mode.
About the voltage multipliers... I'm not sure about the last one because
I'm not able to verify this (I could with a multimeter of course but this
would create other deviations).
I'm also not sure why the multipliers (for my board?) are different. I
wonder why they are hardcoded there anyway. I can imagine that they are
depending the board layout or am I mistaken? I mean the IT spec says only
that the input of the pins need to be in the range between 0 and VCC. So
I can choose whatever multiplier I like as long as the resulting voltage
keeps within this range. Keeping the measured voltage somewhere in the
middle of 0 and VCC with the multiplier for the expected value makes
sense but this is no "must be" I guess

Now - since ISA-IO is working I want to get smbus working too ;)
First I patched src/sys/pci/nfsmb.c to detect the known remaning nforce
SMB controllers including mine.
I then added the device-id of this controller to the pci_pm.h file of
mbmon to make it detect my controller.
But now it still fails to find the it87 sensor on the bus. I guess the
bus can have many "slaves" and mbmon just needs to test all to find out
which identifies itself as it87? (reading from Adress 0x58 should return
0x90 - at least in ISA mode)

root at nudel xmbmon205> ./mbmon -S -D -p it87
Probe Request: it87
>>> Testing Reg's at SMBus <<<
 SMBus slave 0xA0(0x50) found...
 SMBus slave 0xA2(0x51) found...
 SMBus slave 0xA4(0x52) found...
 SMBus slave 0xA6(0x53) found...
 SMBus slave 0xA8(0x54) found...
 SMBus slave 0xAA(0x55) found...
 SMBus slave 0xAC(0x56) found...
 SMBus slave 0xAE(0x57) found...
SMBus[NVidia nForce2] found, but No HWM available on it!!
InitMBInfo: Device not configured
Exit 1
root at nudel xmbmon205> ./mbmon -S -s1 -D -p it87
Probe Request: it87
>>> Testing Reg's at SMBus <<<
 SMBus slave 0xA0(0x50) found...
 SMBus slave 0xA2(0x51) found...
 SMBus slave 0xE0(0x70) found...
SMBus[NVidia nForce2] found, but No HWM available on it!!
InitMBInfo: Device not configured
Exit 1
root at nudel xmbmon205> 

But it looks like at least the smb detection code for it87 is not working
for mine...

Any ideas how to proceed here?

(I have basic C skills and know something about electronics (can build a
Z80 SBC for example ;))

-- 
 Oliver Lehmann
  http://www.pofo.de/
  http://wishlist.ans-netz.de/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: sens_it87.c.diff
Type: text/x-diff
Size: 5288 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20100107/a6f81299/sens_it87.c.bin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: nfsmb.c.diff
Type: text/x-diff
Size: 1257 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20100107/a6f81299/nfsmb.c.bin


More information about the freebsd-stable mailing list