SMBus and devices

Discussion of development and patch submission.

Moderator: Owners

Post Reply
User avatar
RichardG
Posts: 3
Joined: Fri Jun 05, 2020 9:54 pm

SMBus and devices

Post by RichardG »

This is the development tracking thread for System Management Bus and the devices that use it.

Current notes for v2.10:
  • SMBus interface
    • Current smbus_piix4 implementation answers immediately if no device is found, or 10ms later if a device is found. Measuring in real hardware would be a good idea.
    • VIA 586B I2C interface is off the radar, as it's bit-banged I2C through GPIO. The datasheet is vague but the Linux source confirms it is bit-banged.
    • Some VIA 596B boards expect SMBus at 5000h by default, which appears to defy the datasheet. Needs to be investigated when 596B is reworked.
  • Hardware Monitoring
    • Winbond W83781D datasheet is not 100% clear on how register BANKSEL (4Eh) works. Supermicro boards behave in a way that suggests it's a 3-bit value and not a bitfield.
    • ASUS KN97 reports half the fan speed (fan divisor issue?) so we have it set to 6000 which reports 3000 RPM.
    • Genesys Logic GL518SM (AOpen AX6BC) has two chip revisions: 0x00 and 0x80. We emulate 0x80, which is capable of monitoring and providing readouts for all voltage inputs, but the AX6BC appears to have 0x00, which can monitor all voltages but only read one, 3.3V in this case. Linux's gl518sm driver supports both revisions.
    • AOpen AX6BC has no hardware monitoring utility in the BIOS. AOpen instead provides their own Hardware Monitor 95/NT, which fakes the 12V and 5V readouts (confirmed through reverse engineering) due to the aforementioned GL518SM revision 0x00 limitation. It also reads undocumented register 0Eh but appears to do nothing with the value.
  • SPD
    • EDO SPD does exist (Google for pictures of EDO DIMMs and you'll see the 8-pin ROM package) but it appears only SIV32 can make sense of it.
    • Bank density for asymmetric modules is technically inaccurate, because otherwise tools report twice or half the module's capacity (can't remember right now).
    • Manufacture week/year is BCD by spec, but decoded as a decimal by most tools, except decode-dimms on Linux.
    • Revision is set to the emulator version, but only decode-dimms on Linux will display it, as a hex word.
Post Reply