For a few months I have wanted to write a driver for an upcoming
sensor device... but we have never seen any of them in the real world.
There is something exciting about writing a driver for devices before
they hit the market.
JEDEC JC-42.4 defines a temperature sensor that is wired onto a memory
SO-DIMM. This sensor chip is supposed to be wired onto the i2c bus in
parallel with the SPD-encoded serial eeprom, or, there are some
vendors who have started making single chips that contain both
functions in one package. Look at any dimm -- bunch of big memory
chips and one little 8-pin chip? That is the SPD that tells your
system what the characteristics of that memory are.
However, I couldn't find any of these fancy new dimms on the market.
Well, eventually I did find one, but I did not order one:
download.micron.com/pdf/datasheets/modules/ddr2/hvf9c64_128x72rh.pdf
Unfortunately, noone has mailed in a dmesglog entry which indicated
that their machine might have these (that is why those iic debug
messages persist in dmesglogs; we are still trying to write drivers
for devices found in the wild). But I did find the docs for the chips
on the net (well -- 5 out of 6 products), and finally had a friend
help me by ordering some chips.
Armed with a new soldering iron which had a much smaller tip and good
temperature control, I attached one of these chips onto a DIMM, and
managed to get it to work in my machine.
http://theos.com/deraadt/jc-42.4-pic1.jpg
http://theos.com/deraadt/jc-42.4-pic2.jpg
As soon as I was able to see registers in the debug logs, I wrote a
driver to support the chip.
One of the chips I got (NPX SE98) has a .65mm pitch between the 2mm
long legs, and that was a total bear to solder -- in fact I killed one
of the two chips that I received. The other (ATD7408) had a .5mm
pitch but was leg-less, and I have determined that soldering these by
hand is completely impossible.
>From the new sdtemp(4) manual page:
Current sensor chips include the NPX SE97, NPX SE98, Microchip MCP9805,
Microchip MCP98242, and AD ADT7408.
(at least I hope it will work on the others I did not test yet)
There is another chip by st.com called the STTS424 which I have not
been able to find any documentation for (I need to know the
vendor/product numbers for two of the registers). Perhaps someone can
bug st.com on my behalf and get a useful data sheet out of them which
describes the registers in detail.
All these chips just supply one temperature sensor.