I have discovered that the MS ipmidrv.sys silently does not load if the IPMI hardware has register spacing on 4-byte boundaries instead of 1-byte boundaries. Apparently the driver does not think that an IPMI interface is present, so it does not log anything.
This is not resolved by the ipmidrv.sys from the service pack.
The same hardware can be recognized and used by using the Intel imbdrv.sys driver for Windows, or by using the Linux IPMI driver, because these drivers recognize the IPMI register spacing as advertised in the SMBIOS data.
This information should be detected by the IPMI driver by reading the SMBIOS data in the IPMI record (DMI type 38). The byte at offset 16 in this record contains the register spacing in its upper 2 bits as follows: 0 = 1-byte spacing, 1 = 4-byte spacing, 2 = 16-byte spacing.
The effect of the register spacing governs the difference between the KCS command and status registers, for instance:
0x0ca2, 0x0ca3 = 1-byte register spacing
0x0ca2, 0x0ca6 = 4-byte register spacing
0x0ca2, 0x0cb2 = 16-byte register spacing
Please correct this problem, as described above. If questions, feel free to email me.
Kontron America, Inc.
We use Win2008 R2 and Win2008 R2 SP1. I do not think that the version matters until register spacing is resolved in ipmidrv.sys by using the DMI type 38 record.
The list of vendors came from various customers who use IPMI on those platforms, most of those were reported against non-Microsoft OSs which support any register spacing. I believe that Dell, IBM, and Supermicro have several different IPMI firmware sources, so some have 1-byte spacing, and some have 4-byte spacing. But nearly all Kontron and Pigeon Point platforms have 4-byte spacing. I have a Kontron KTC5520/EATX motherboard in my lab that is one example.