Thanks guys. I just finally found Jake’s old posts on the subject - now that I understand the history of the whole thing, I can stop looking for an easy solution.
To future searchers on this topic, search the ntdev archive for ‘Oshins SMBus’. In a reply made on 28 Feb 2005, Jake Oshins gives a most useful quick history and summary of the problem and current lack of general solutions.
The ultimate answer to my problem is that I either have to get a driver out of Tyan (they have one, they use it for their monitoring software, but I don’t know that I can get it from them), or I have to write my own driver. I will continue to work on them.
So far, Tyan hasn’t even given me the the register map for the smbus controller. When I got the smbus addresses for the chips out of them, they did say they could only provide the chip addresses, so I may continue to get nothing from them.
I will have to find a way to dump the ACPI tables on this system and try to insure that there is nothing in the ACPI that could help me. I expect there isn’t, because if there was, it would be in the WMI.
If I have to write my own driver, I can probably figure out the IOPorts and what not by tearing into the lm_sensors code - lm_sensors knows how to talk to this motherboard’s sensors. If I can figure out how, then I can duplicate their technique in my own driver. Obviously this would leave me open to all sorts of possible bad effects if I conflict with the BIOS, and I’m going to have to assess with product management whether it’s worth the effort and product level risk.
Thank you.
Michael Kohne
xxxxx@kohne.org
“You must be smarter than the equipment you are trying to operate.”
-------Original Message-------
From: zeppelin@io.com
Subject: Re:[ntdev] SMBus access on Tyan S2892 motherboard, nVidia nForce chip set. What driver?
Sent: Oct 20 '06 02:10
Hi Jake,
Your right, if you don’t have access to a particular systems
architecture you can run into problems. I used to be in the server
management firmware group at Intel and wrote drivers to access these types
of resources. You are correct that if an smbus interrupt is routed to SMI
things get sticky . Generally though, the system should only being going
into SMI if a limit condition is reached or some other error condition
occurs. Once Windows is booted the BIOS should no longer be interacting
with hardware independently other than to service SMI’s, which should be
rare. If the BIOS is actively polling these devices, I recommend throwing
your board in the trash. On many systems, this stuff can be accessed via
I/O without an interrupt. If your going to implement your own driver
you’ll want to disable BIOS monitoring of the hardware if possible.
Without a hardware specification, a lot of this can not be done easily.
-z
At 07:32 PM 10/19/2006, you wrote:
SMBus is generally used mostly by the BIOS. There isn’t a Windows driver
because there’s no Windows component that accesses those devices.
We’ve experimented in the past with native access of SMBus within Windows
(as opposed to accessing it through the ACPI BIOS, for instance) and
we’ve
mostly ended up in conflict with the BIOS for little gain. Furthermore,
the
hardware itself is often not conducive to control by Windows. ALi
chipsets,
for instance, can only surface the SMBus interrupt as a System Management
Interrupt, which can only be fielded by the BIOS.
If you want a lot more detail on this topic search the archives for my
past
posts.
- Jake Oshins
Windows Kernel Team
“Michael Kohne” wrote in message [LINK:
> news:xxxxx@ntdev] news:xxxxx@ntdev…
> > I’m attempting to access the motherboard hardware health monitoring on
> a
> > Tyan motherboard (Tyan S2892, based on the nVidia nForce Pro 2200 chip
> > set). After lots of begging, Tyan gave me the SMBus addresses of the
> two
> > chips I need to talk to, and said they don’t have an SDK or anything
> for
> > gathering this information, just go read it from the chips yourself.
> >
> > This is fine, except that I’m having trouble figuring out SMBus access
> > under windows.
> >
> > I’ve asked for a little more guidance (like ‘what driver do I use’),
> but
> > so far, I’ve just gotten more silence.
> >
> > When I look at the system in question, I find that there is a device
> > manager entry for the ‘NVIDIA nForce PCI System Management’, which
> appears
> > to be the SMBus controller. When I look at the driver package, I find
> an
> > ‘nvsmbus.inf’ file, but it doesn’t install any files, it just does
> > ‘Include=machine.inf’ and ‘needs=NO_DRV’. Anyone have any
> idea
> > why nVidia doesn’t just include a driver? They just don’t want to
> support
> > it?
> >
> > Does anyone know what the proper procedure is for accessing the SMBus
> in
> > cases like this is? I’ve found the DDK docs about SMBus client drivers,
>
> > but since the system doesn’t seem to have the SMB class driver or the
> SMB
> > Host Controller driver installed, I don’t think that’s going to help
> me.
> > Unless someone can tell me how I might get them installed.
> >
> > Obviously, either they simply don’t provide a driver, or I’m missing
> > something. Can someone point me in the direction of the things I’m
> > missing?
> >
> > Thanks!
> >
> >
> >
> > Michael Kohne
> > xxxxx@kohne.org
> > “You must be smarter than the equipment you are trying to operate.”
> >
>
>
> —
> Questions? First check the Kernel Driver FAQ at [LINK:
> http://www.osronline.com/article.cfm?id=256]
> http://www.osronline.com/article.cfm?id=256
>
> To unsubscribe, visit the List Server section of OSR Online at [LINK:
> http://www.osronline.com/page.cfm?name=ListServer]
> http://www.osronline.com/page.cfm?name=ListServer
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer