t-8ch / linux-gigabyte-wmi-driver

Linux Driver for WMI on Gigabyte Mainboards. LEGACY. New development happens in mainline Linux.
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/platform/x86/gigabyte-wmi.c
30 stars 4 forks source link

Dumped WMI table decompilation #10

Closed JakubVanek closed 2 years ago

JakubVanek commented 2 years ago

Hi!

I've managed to decompile the _WDG and WQCC methods from the linked ssdt8.dsl file using the wmidump and bmfdec tools. I've found the output to be interesting; I don't have much free time to tinker with this further, but I wanted to share the results.

_WDG from wmidump ``` 05901221-D566-11D1-B2F0-00A0C9062910: object_id: CC instance_count: 1 flags: 0 DEADBEEF-1000-0000-00A0-C90629100000: object_id: AA instance_count: 1 flags: 0x1 ACPI_WMI_EXPENSIVE DEADBEEF-2001-0000-00A0-C90629100000: object_id: BB instance_count: 1 flags: 0x2 ACPI_WMI_METHOD DEADBEEF-4002-0000-00A0-C90629100000: notify_id: 0xE2 instance_count: 1 flags: 0x8 ACPI_WMI_EVENT ```
WQCC from bmf2mof ``` #pragma namespace("root\\wmi") [WMI, Locale("MS\\0x409"), Description("This class contains the definition of the package used in other classes"), guid("{DEADBEEF-0100-0000-00A0-C90629100000}")] class GSA1_P0 { [WmiDataId(1), read, write, Description("16 bytes of data")] uint8 Bytes[16]; }; #pragma namespace("root\\wmi") [WMI, Locale("MS\\0x409"), Description("This class contains the definition of the package used in other classes"), guid("{DEADBEEF-0101-0000-00A0-C90629100000}")] class GSA1_P1 { [WmiDataId(1), read, write, Description("16 bytes of data")] uint8 Bytes[16]; [WmiDataId(2), read, write, Description("16 bytes of data")] uint8 Status; }; #pragma namespace("root\\wmi") class WMIEvent : __ExtrinsicEvent { }; #pragma namespace("root\\wmi") [WMI, Locale("MS\\0x409"), Description("This class contains the definition of the package used in other classes"), guid("{DEADBEEF-0000-0000-00A0-C90629100000}")] class GSA1_Package { [WmiDataId(1), read, write, Description("16 bytes of data")] uint8 Bytes[16]; }; #pragma namespace("root\\wmi") [WMI, Locale("MS\\0x409"), Description("This class contains the definition of the package used in other classes"), guid("{DEADBEEF-0001-0000-00A0-C90629100000}")] class GSA1_SpdData { [WmiDataId(1), read, write, Description("512 bytes data")] uint8 Bytes[512]; }; #pragma namespace("root\\wmi") [WMI, Locale("MS\\0x409"), Description("This class contains the definition of the package used in other classes"), guid("{DEADBEEF-0002-0000-00A0-C90629100000}")] class GSA1_Buff516 { [WmiDataId(1), read, write, Description("")] uint16 Status; [WmiDataId(2), read, write, Description("")] uint16 Length; [WmiDataId(3), read, write, Description("512 bytes data")] uint8 Bytes[512]; }; #pragma namespace("root\\wmi") [WMI, Locale("MS\\0x409"), Description("This class contains the definition of the package used in other classes"), guid("{DEADBEEF-0003-0000-00A0-C90629100000}")] class GSA1_Buff1028 { [WmiDataId(1), read, write, Description("")] uint16 Status; [WmiDataId(2), read, write, Description("")] uint16 Length; [WmiDataId(3), read, write, Description("1024 bytes data")] uint8 Bytes[1024]; }; #pragma namespace("root\\wmi") [WMI, Locale("MS\\0x409"), Description("This class contains the definition of the package used in other classes"), guid("{DEADBEEF-0004-0000-00A0-C90629100000}")] class GSA1_Buff4100 { [WmiDataId(1), read, write, Description("")] uint16 Status; [WmiDataId(2), read, write, Description("")] uint16 Length; [WmiDataId(3), read, write, Description("4096 bytes data")] uint8 Bytes[4096]; }; #pragma namespace("root\\wmi") [WMI, Locale("MS\\0x409"), Description("This class contains the definition of the package used in other classes"), guid("{DEADBEEF-0005-0000-00A0-C90629100000}")] class GSA1_Buff256 { [WmiDataId(1), read, write, Description("256 bytes of data")] uint8 Bytes[256]; }; #pragma namespace("root\\wmi") [WMI, Locale("MS\\0x409"), Description("This class contains the definition of the package used in other classes"), guid("{DEADBEEF-0006-0000-00A0-C90629100000}")] class GSA1_Buff260 { [WmiDataId(1), read, write, Description("")] uint16 Status; [WmiDataId(2), read, write, Description("")] uint16 Length; [WmiDataId(3), read, write, Description("256 bytes data")] uint8 Bytes[256]; }; #pragma namespace("root\\wmi") [WMI, Locale("MS\\0x409"), Description("This class contains the definition of the package used in other classes"), guid("{DEADBEEF-0007-0000-00A0-C90629100000}")] class GSA1_ret8 { [WmiDataId(1), read, write, Description("")] uint8 data; }; #pragma namespace("root\\wmi") [WMI, Locale("MS\\0x409"), Description("This class contains the definition of the package used in other classes"), guid("{DEADBEEF-0008-0000-00A0-C90629100000}")] class GSA1_ret16 { [WmiDataId(1), read, write, Description("")] uint8 data[2]; }; #pragma namespace("root\\wmi") [WMI, Locale("MS\\0x409"), Description("This class contains the definition of the package used in other classes"), guid("{DEADBEEF-0009-0000-00A0-C90629100000}")] class GSA1_ret32 { [WmiDataId(1), read, write, Description("")] uint32 data; }; #pragma namespace("root\\wmi") [WMI, Dynamic, Provider("WmiProv"), Locale("MS\\0x409"), Description("Class used to operate All methods "), guid("{DEADBEEF-2001-0000-00A0-C90629100000}")] class GSA1_ACPIMethod { [key, read] string InstanceName; [read] boolean Active; [WmiMethodId(1), Implemented, read, write, Description("")] void GsaTest([out, Description("")] GSA1_Package Data); [WmiMethodId(2), Implemented, read, write, Description("")] void GsaGetHWIDString([out, Description("")] string Value); [WmiMethodId(3), Implemented, read, write, Description("")] void GsaGetFWTagString([out, Description("")] string Value); [WmiMethodId(4), Implemented, read, write, Description("")] void GsaGetFWVerString([out, Description("")] string Value); [WmiMethodId(5), Implemented, read, write, Description("")] void GsaGetFWPrjString([out, Description("")] string Value); [WmiMethodId(6), Implemented, read, write, Description("")] void GsaGetFlashSize([out, Description("")] uint32 Value); [WmiMethodId(7), Implemented, read, write, Description("")] void GsaGetCapabilityD0([out, Description("")] uint32 Value); [WmiMethodId(8), Implemented, read, write, Description("")] void GsaGetGSAVersion([out, Description("")] string Value); [WmiMethodId(9), Implemented, read, write, Description("")] void EZVGetVersion([out, Description("")] string Value); [WmiMethodId(10), Implemented, read, write, Description("")] void GsaGetHWConfig([in, Description("")] uint32 id, [out, Description("")] uint32 Value); [WmiMethodId(11), Implemented, read, write, Description("")] void GsaGetDBLocate([out, Description("")] uint32 Value); [WmiMethodId(12), Implemented, read, write, Description("")] void GsaSetDBLocate([in, Description("")] uint32 in, [out, Description("")] uint32 Value); [WmiMethodId(13), Implemented, read, write, Description("")] void GsaSpeakerBeep([in, Description("")] uint16 code, [in, Description("")] uint16 value, [in, Description("")] uint16 durtion); [WmiMethodId(14), Implemented, read, write, Description("")] void GsaPTS([in, Description("")] uint32 id); [WmiMethodId(15), Implemented, read, write, Description("")] void GsaWAK([in, Description("")] uint32 id); [WmiMethodId(80), Implemented, read, write, Description("")] void Mytest1([out, Description("")] string Value); [WmiMethodId(81), Implemented, read, write, Description("")] void Mytest2([out, Description("")] string Value); [WmiMethodId(82), Implemented, read, write, Description("")] void Mytest3([out, Description("")] string Value); [WmiMethodId(92), Implemented, read, write, Description("")] void I2CBaseMemAddr([in, Description("")] uint8 I2cN, [out, Description("")] uint32 data); [WmiMethodId(93), Implemented, read, write, Description("")] void I2CBusTest([in, Description("")] uint8 bus, [in, Description("")] uint8 addr, [in, Description("")] uint8 data[260], [out, Description("")] GSA1_Buff260 ret); [WmiMethodId(95), Implemented, read, write, Description("")] void I2CWriteRead([in, Description("")] uint8 I2cN, [in, Description("")] uint8 addr, [out, Description("")] GSA1_ret32 ret); [WmiMethodId(96), Implemented, read, write, Description("")] void I2CWriteReadBlock([in, Description("")] uint8 I2cN, [in, Description("")] uint8 addr, [out, Description("")] GSA1_ret32 ret); [WmiMethodId(97), Implemented, read, write, Description("")] void SMBBaseAddr([in, Description("")] uint8 bus, [out, Description("")] uint32 data); [WmiMethodId(98), Implemented, read, write, Description("")] void SMBQuickWrite([in, Description("")] uint8 bus, [in, Description("")] uint8 addr, [out, Description("")] GSA1_ret32 ret); [WmiMethodId(99), Implemented, read, write, Description("")] void SMBQuickRead([in, Description("")] uint8 bus, [in, Description("")] uint8 addr, [out, Description("")] GSA1_ret32 ret); [WmiMethodId(100), Implemented, read, write, Description("")] void SMBIoBaseAddr([out, Description("")] uint16 data); [WmiMethodId(101), Implemented, read, write, Description("")] void SMBSendByte([in, Description("")] uint8 bus, [in, Description("")] uint8 addr, [in, Description("")] uint8 data, [out, Description("")] GSA1_ret32 ret); [WmiMethodId(102), Implemented, read, write, Description("")] void SMBReceiveByte([in, Description("")] uint8 bus, [in, Description("")] uint8 addr, [out, Description("")] GSA1_ret32 ret); [WmiMethodId(103), Implemented, read, write, Description("")] void SMBWriteByte([in, Description("")] uint8 bus, [in, Description("")] uint8 addr, [in, Description("")] uint8 cmd, [in, Description("")] uint8 data, [out, Description("")] GSA1_ret32 ret); [WmiMethodId(104), Implemented, read, write, Description("")] void SMBReadByte([in, Description("")] uint8 bus, [in, Description("")] uint8 addr, [in, Description("")] uint8 cmd, [out, Description("")] GSA1_ret32 ret); [WmiMethodId(105), Implemented, read, write, Description("")] void SMBWriteWord([in, Description("")] uint8 bus, [in, Description("")] uint8 addr, [in, Description("")] uint8 cmd, [in, Description("")] uint16 data, [out, Description("")] GSA1_ret32 ret); [WmiMethodId(106), Implemented, read, write, Description("")] void SMBReadWord([in, Description("")] uint8 bus, [in, Description("")] uint8 addr, [in, Description("")] uint8 cmd, [out, Description("")] GSA1_ret32 ret); [WmiMethodId(107), Implemented, read, write, Description("")] void SMBBlockWrite([in, Description("")] uint8 bus, [in, Description("")] uint8 addr, [in, Description("")] uint8 cmd, [in, Description("")] uint8 data[260], [out, Description("")] GSA1_ret32 ret); [WmiMethodId(108), Implemented, read, write, Description("")] void SMBBlockRead([in, Description("")] uint8 bus, [in, Description("")] uint8 addr, [in, Description("")] uint8 cmd, [out, Description("")] GSA1_Buff260 ret); [WmiMethodId(109), Implemented, read, write, Description("")] void SMBBlockWriteE32B([in, Description("")] uint8 bus, [in, Description("")] uint8 addr, [in, Description("")] uint8 cmd, [in, Description("")] uint8 data[260], [out, Description("")] GSA1_ret32 ret); [WmiMethodId(110), Implemented, read, write, Description("")] void PIORead8([in, Description("")] uint16 port, [out, Description("")] uint8 data); [WmiMethodId(111), Implemented, read, write, Description("")] void PIOWrite8([in, Description("")] uint16 port, [in, Description("")] uint8 data); [WmiMethodId(112), Implemented, read, write, Description("")] void PIORead16([in, Description("")] uint16 port, [out, Description("")] uint16 data); [WmiMethodId(113), Implemented, read, write, Description("")] void PIOWrite16([in, Description("")] uint16 port, [in, Description("")] uint16 data); [WmiMethodId(114), Implemented, read, write, Description("")] void PIORead32([in, Description("")] uint16 port, [out, Description("")] uint32 data); [WmiMethodId(115), Implemented, read, write, Description("")] void PIOWrite32([in, Description("")] uint16 port, [in, Description("")] uint32 data); [WmiMethodId(120), Implemented, read, write, Description("")] void PCIGetPcieMmioBaseAddr([out, Description("")] uint32 data); [WmiMethodId(121), Implemented, read, write, Description("")] void PCIRead8([in, Description("")] uint8 bus, [in, Description("")] uint8 function, [in, Description("")] uint8 device, [in, Description("")] uint16 offset, [out, Description("")] uint8 data); [WmiMethodId(122), Implemented, read, write, Description("")] void PCIWrite8([in, Description("")] uint8 bus, [in, Description("")] uint8 function, [in, Description("")] uint8 device, [in, Description("")] uint16 offset, [in, Description("")] uint8 data); [WmiMethodId(123), Implemented, read, write, Description("")] void PCIRead16([in, Description("")] uint8 bus, [in, Description("")] uint8 function, [in, Description("")] uint8 device, [in, Description("")] uint16 offset, [out, Description("")] uint16 data); [WmiMethodId(124), Implemented, read, write, Description("")] void PCIWrite16([in, Description("")] uint8 bus, [in, Description("")] uint8 function, [in, Description("")] uint8 device, [in, Description("")] uint16 offset, [in, Description("")] uint16 data); [WmiMethodId(125), Implemented, read, write, Description("")] void PCIRead32([in, Description("")] uint8 bus, [in, Description("")] uint8 function, [in, Description("")] uint8 device, [in, Description("")] uint16 offset, [out, Description("")] uint32 data); [WmiMethodId(126), Implemented, read, write, Description("")] void PCIWrite32([in, Description("")] uint8 bus, [in, Description("")] uint8 function, [in, Description("")] uint8 device, [in, Description("")] uint16 offset, [in, Description("")] uint32 data); [WmiMethodId(127), Implemented, read, write, Description("")] void PCIRead32Bits([in, Description("")] uint8 bus, [in, Description("")] uint8 function, [in, Description("")] uint8 device, [in, Description("")] uint16 offset, [in, Description("")] uint8 start, [in, Description("")] uint8 width, [out, Description("")] uint32 data); [WmiMethodId(128), Implemented, read, write, Description("")] void PCIWrite32Bits([in, Description("")] uint8 bus, [in, Description("")] uint8 function, [in, Description("")] uint8 device, [in, Description("")] uint16 offset, [in, Description("")] uint8 start, [in, Description("")] uint8 width, [in, Description("")] uint32 data); [WmiMethodId(130), Implemented, read, write, Description("")] void MEMRead8([in, Description("")] uint32 addr, [out, Description("")] uint8 data); [WmiMethodId(131), Implemented, read, write, Description("")] void MEMWrite8([in, Description("")] uint32 addr, [in, Description("")] uint8 data); [WmiMethodId(132), Implemented, read, write, Description("")] void MEMRead16([in, Description("")] uint32 addr, [out, Description("")] uint16 data); [WmiMethodId(133), Implemented, read, write, Description("")] void MEMWrite16([in, Description("")] uint32 addr, [in, Description("")] uint16 data); [WmiMethodId(134), Implemented, read, write, Description("")] void MEMRead32([in, Description("")] uint32 addr, [out, Description("")] uint32 data); [WmiMethodId(135), Implemented, read, write, Description("")] void MEMWrite32([in, Description("")] uint32 addr, [in, Description("")] uint32 data); [WmiMethodId(136), Implemented, read, write, Description("")] void MEMRead32Bits([in, Description("")] uint32 addr, [in, Description("")] uint8 start, [in, Description("")] uint8 width, [out, Description("")] uint32 data); [WmiMethodId(137), Implemented, read, write, Description("")] void MEMWrite32Bits([in, Description("")] uint32 addr, [in, Description("")] uint8 start, [in, Description("")] uint8 width, [in, Description("")] uint32 data); [WmiMethodId(138), Implemented, read, write, Description("")] void MEMRead32Buffer([in, Description("")] uint32 addr, [in, Description("")] uint32 size, [in, Description("")] uint8 start, [in, Description("")] uint8 width, [out, Description("")] uint32 data); [WmiMethodId(139), Implemented, read, write, Description("")] void MEMWrite32Buffer([in, Description("")] uint32 addr, [in, Description("")] uint32 size, [in, Description("")] uint8 start, [in, Description("")] uint8 width, [in, Description("")] uint32 data); [WmiMethodId(190), Implemented, read, write, Description("")] void BROADCAST_SendEvent([out, Description("")] uint32 value); [WmiMethodId(220), Implemented, read, write, Description("")] void ADJGetStage([out, Description("")] uint16 value); [WmiMethodId(221), Implemented, read, write, Description("")] void ADJGetHwId([out, Description("")] uint8 value); [WmiMethodId(230), Implemented, read, write, Description("")] void ETBEnable([in, Description("")] uint8 value); [WmiMethodId(231), Implemented, read, write, Description("")] void ETBGetMode([out, Description("")] uint8 value); [WmiMethodId(232), Implemented, read, write, Description("")] void ETBSetMode([in, Description("")] uint8 value); [WmiMethodId(233), Implemented, read, write, Description("")] void ETBGetHwId([out, Description("")] uint8 value); [WmiMethodId(240), Implemented, read, write, Description("")] void USWGetStatus([out, Description("")] uint8 value); [WmiMethodId(241), Implemented, read, write, Description("")] void USWSetStatus([in, Description("")] uint8 value); [WmiMethodId(242), Implemented, read, write, Description("")] void USWGetHwId([out, Description("")] uint8 value); [WmiMethodId(250), Implemented, read, write, Description("")] void NCTGetChipInfo([in, Description("")] uint8 Addr, [out, Description("")] uint16 value); [WmiMethodId(251), Implemented, read, write, Description("off,pulse,Color Cycle,")] void NCTGetVRFReg([in, Description("")] uint8 Addr, [in, Description("")] uint8 Index, [out, Description("")] uint8 Value); [WmiMethodId(252), Implemented, read, write, Description("")] void NCTSetVRFReg([in, Description("")] uint8 Addr, [in, Description("")] uint8 Index, [in, Description("")] uint8 Value); [WmiMethodId(280), Implemented, read, write, Description("")] void EZVGetVoltage([in, Description("")] sint32 Id, [out, Description("")] sint32 Value); [WmiMethodId(281), Implemented, read, write, Description("")] void EZVSetVoltage([in, Description("")] sint32 Id, [in, Description("")] sint32 Value); [WmiMethodId(282), Implemented, read, write, Description("")] void EZVGetHwId([out, Description("")] uint8 value); [WmiMethodId(283), Implemented, read, write, Description("")] void EZVHwValue2ItemValue([in, Description("")] sint32 Id, [in, Description("")] sint32 InV, [out, Description("")] uint32 value); [WmiMethodId(284), Implemented, read, write, Description("")] void EZVItemValue2HwValue([in, Description("")] sint32 Id, [in, Description("")] sint32 InV, [out, Description("")] uint32 value); [WmiMethodId(285), Implemented, read, write, Description("")] void EZVGetUIInfo([in, Description("")] sint32 Id, [out, Description("")] string value); [WmiMethodId(286), Implemented, read, write, Description("")] void EZVHwValue2ItemStr([in, Description("")] sint32 Id, [in, Description("")] uint32 InV, [out, Description("")] string value); [WmiMethodId(287), Implemented, read, write, Description("")] void EZVItemStr2HwValue([in, Description("")] sint32 Id, [in, Description("")] string InV, [out, Description("")] uint32 value); [WmiMethodId(288), Implemented, read, write, Description("")] void EZVGetItem([in, Description("")] sint32 Id, [out, Description("")] string Value); [WmiMethodId(289), Implemented, read, write, Description("")] void EZVSetItem([in, Description("")] sint32 Id, [in, Description("")] string Value); [WmiMethodId(1000), Implemented, read, write, Description("")] void EZVAAA([in, Description("")] sint32 Id, [in, Description("")] string Value); [WmiMethodId(290), Implemented, read, write, Description("")] void ZFCGetHwId([out, Description("")] uint8 value); [WmiMethodId(291), Implemented, read, write, Description("")] void ZFCGetFanStopStatus([in, Description("")] uint8 id, [out, Description("")] uint8 ison); [WmiMethodId(292), Implemented, read, write, Description("")] void ZFCSetFanStopStatus([in, Description("")] uint8 id, [in, Description("")] uint8 ison); [WmiMethodId(293), Implemented, read, write, Description("")] void ZFCGetCurrentTemp([in, Description("")] uint8 id, [out, Description("")] uint8 value); [WmiMethodId(294), Implemented, read, write, Description("")] void ZFCSetVirtualTemp([in, Description("")] uint8 value); [WmiMethodId(295), Implemented, read, write, Description("")] void ZFCGetFanTargetTemp([in, Description("")] uint8 id, [out, Description("")] uint8 tempid); [WmiMethodId(296), Implemented, read, write, Description("")] void ZFCSetFanTargetTemp([in, Description("")] uint8 id, [in, Description("")] uint8 tempid); [WmiMethodId(297), Implemented, read, write, Description("")] void ZFCGetFanTempLimit([in, Description("")] uint8 id, [out, Description("")] uint8 off, [out, Description("")] uint8 on); [WmiMethodId(298), Implemented, read, write, Description("")] void ZFCSetFanTempLimit([in, Description("")] uint8 id, [in, Description("")] uint8 off, [in, Description("")] uint8 on, [out, Description("")] string value); [WmiMethodId(299), Implemented, read, write, Description("")] void ZFCFanOnOff([in, Description("")] uint8 id, [in, Description("")] uint8 flag); [WmiMethodId(300), Implemented, read, write, Description("")] void DDRGetCapable([out, Description("")] uint8 spd, [out, Description("")] uint8 rgb, [out, Description("")] uint8 temp); [WmiMethodId(310), Implemented, read, write, Description("")] void DDRGetSpdData([in, Description("")] uint8 Index, [out, Description("")] GSA1_Buff516 data); [WmiMethodId(320), Implemented, read, write, Description("")] void IotPinMode([in, Description("")] uint8 pin, [in, Description("")] uint8 mode); [WmiMethodId(321), Implemented, read, write, Description("")] void IotDigitalWrite([in, Description("")] uint8 pin, [in, Description("")] uint8 value); [WmiMethodId(322), Implemented, read, write, Description("")] void IotDigitalRead([in, Description("")] uint8 pin, [out, Description("")] uint8 value); [WmiMethodId(325), Implemented, read, write, Description("")] void PDGetStatus([in, Description("")] uint8 port, [out, Description("")] uint8 value); [WmiMethodId(326), Implemented, read, write, Description("")] void PDSetStatus([in, Description("")] uint8 port, [in, Description("")] uint8 value); [WmiMethodId(327), Implemented, read, write, Description("")] void PDGetHwId([out, Description("")] uint8 value); [WmiMethodId(328), Implemented, read, write, Description("")] void PDGetPortInfo([in, Description("")] uint8 port, [out, Description("")] string value); [WmiMethodId(329), Implemented, read, write, Description("")] void PDGetPortCount([out, Description("")] uint8 value); [WmiMethodId(330), Implemented, read, write, Description("")] void PDSetMode([in, Description("")] uint8 port, [in, Description("")] uint8 value); [WmiMethodId(331), Implemented, read, write, Description("")] void PDGetMode([in, Description("")] uint8 port, [out, Description("")] uint8 value); [WmiMethodId(332), Implemented, read, write, Description("")] void PDOffOn([in, Description("")] uint8 port); [WmiMethodId(335), Implemented, read, write, Description("")] void OPBEnable([in, Description("")] uint8 value); [WmiMethodId(336), Implemented, read, write, Description("")] void OPBGetHwId([out, Description("")] uint8 value); }; #pragma namespace("root\\wmi") [WMI, Dynamic, Provider("WmiProv"), Description("Class containing event generated ULong data"), Locale("MS\\0x409"), guid("{DEADBEEF-4000-0000-00A0-C90629100000}")] class GSA1_AUDIOJACK_PlugEvent : WmiEvent { [key, read] string InstanceName; [read] boolean Active; [WmiDataId(1), read, write, Description("ULong Data")] uint32 ULong; }; #pragma namespace("root\\wmi") [WMI, Dynamic, Provider("WmiProv"), Description("Class containing event generated ULong data"), Locale("MS\\0x409"), guid("{DEADBEEF-4001-0000-00A0-C90629100000}")] class GSA1_ECOTURBOBUTTON_Event : WmiEvent { [key, read] string InstanceName; [read] boolean Active; [WmiDataId(1), read, write, Description("ULong Data")] uint32 ULong; }; #pragma namespace("root\\wmi") [WMI, Dynamic, Provider("WmiProv"), Description("Class containing event generated ULong data"), Locale("MS\\0x409"), guid("{DEADBEEF-4002-0000-00A0-C90629100000}")] class GSA1_BROADCAST_Event : WmiEvent { [key, read] string InstanceName; [read] boolean Active; [WmiDataId(1), read, write, Description("ULong Data")] uint32 ULong; }; #pragma namespace("root\\wmi") [WMI, Dynamic, Provider("WmiProv"), Description("Class containing event generated ULong data"), Locale("MS\\0x409"), guid("{DEADBEEF-4003-0000-00A0-C90629100000}")] class GSA1_OCPANELBUTTON_Event : WmiEvent { [key, read] string InstanceName; [read] boolean Active; [WmiDataId(1), read, write, Description("ULong Data")] uint32 ULong; }; ```

The gathered results match the driver - for example, method 0x125 = 293 is described like this:

  [WmiMethodId(293), Implemented, read, write, Description("")] void ZFCGetCurrentTemp([in, Description("")] uint8 id, [out, Description("")] uint8 value);

With regards,

Jakub

t-8ch commented 2 years ago

Hi,

this looks like the WMI descriptors of the board I developed the driver for.

I'm not sure what this issue is for, though. Do you want to have your board supported in the driver? If so, please first check if support has been added in the meantime at https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/platform/x86/gigabyte-wmi.c

If it has not been added, try to force loading the driver with the force_load parameter. If it then loads successfully and shows values you can sent a patch for the driver with your DMI IDs directly to the kernel list.

Or you can test it and post your DMI IDs, name and Email here, and I can sent a patch and add your Tested-By.

JakubVanek commented 2 years ago

Hi,

I just wanted to share what I found when I was curious about what other WMI services the Gigabyte BIOS provides. There is nothing to do, so this issue can probably be closed.

t-8ch commented 2 years ago

Ah, ok. Then thanks for the infos! I'll close this ticket then.