BeardOverflow / msi-ec

GNU General Public License v2.0
145 stars 45 forks source link

New way of model detecting #101

Open glpnk opened 8 months ago

glpnk commented 8 months ago

From software analysis I can assume that some addresses are hardcoded inside of some MSI Windows service (is it legal to say in which?). Also it depends on MSI-ACPI-WMI version which can be detected by presence WMI Class MSI_AP (and other) for 1 version and MSI_ACPI for 2. Also I now trying to figure how this WMI methods works

You can find GUIDs here:

For now there at least 2 or 3 EC maps for next sets of hardware:

  1. Intel 10 gen and older [ENE EC, WMI-1] (EC FW shared)
  2. All AMD except 7 gen gaming [ENE EC, WMI-1] (EC FW shared)
  3. Intel 11+ [ENE EC, WMI-2] (EC in BIOS only)
  4. Intel 11+ (or newer) [ITE EC, WMI-2] (EC in BIOS only)
  5. AMD 7 gen gaming [ITE EC, WMI-2] (EC in BIOS only)

I guess that 1 and 2 may have similar EC map (no proof); 3, 4, 5 seems to be identical, at least for few hardcoded addresses

Other info must be processed through WMI queries.

Some manufactures include BMOF file inside of DSDT table, but not MSI. It shared with drivers/companion app. This file contain WMI endpoint mapping. "WMI-2" version include endpoints from earlier version 1

WMI-1 methods to address from DSDT from model modern 14 c5m, same for model modern-a10 wmi1-14.txt

glpnk commented 8 months ago

Seems that msi-wmi module doing nothing for newer models, now newer models throw keyboard events, configure screen brightness ant other through ACPI