> This seems possible, yet quite complicated (I’d need to convince the customer to customize DSDT). Is that the only
way?
This whole area is rather dark and unsupported, with BIOS/mobo vendors create custom solutions not recommended by MS for temperature/voltage/fan control (like AsusProbe and its ATK0110 pseudo-device, and this is not the worst colution - the worst solutions use PortIO-style drivers to ping the SMBus controller’s ports directly).
For instance, let’s talk about exposing ACPI facilities for fans and temperature/voltage probes to WMI. I think only Intel’s expensive servers use this. I personally never ever saw a laptop or a motherboard where this works.
Also note there is some “Intel SMBus Controller driver”. I don’t know how it works and what software is using it.
So, you have the following picture:
- MS insists that all SMBus stuff must be BIOS-controlled, i.e. ACPI-controlled, and that the software should operate with SMBus via ACPI or even WMI.
- nevertheless, the BIOS vendors do not provide this facility in their BIOSes, so MS-recommended ACPI- and WMI- ways of operating SMBus just plain do not work on anything except possible expensive Intel’s servers.
- and, since MS does not provide any BIOS-independent SMBus stuff (it used to do so, but, in Win7 WDK, this stuff was revoked) - then you have just plain no SMBus architecture support in Windows at all.
- and the only solutions are chipset-dependent and mobo-dependent.
This is a significant weak point of the Windows ecosystem. Actually, the joint policy of MS and the hardware makers lead this particular thing to undocumened unstable close-to-hardware hackery.
Effectively, the status of SMBus in Windows is: Windows does not support SMBus, use hardware-dependent hacks of your own.
–
Maxim S. Shatskih
Windows DDK MVP
xxxxx@storagecraft.com
http://www.storagecraft.com