Explanation about intel ME HECI commands?

I read the intelmetool source code and I found that (theoretically) it’s posible to get FWCAPS sending an HECI command: 0x2 with group_id: 0x3 and the rule_id: 0. This tool writes the command response into the fwcaps struct, which is inherited from the me_fwcaps struct, which defines every fwcap.

I used me_util.py with Python 2.7 to send the mentioned command to intel ME through HECI and I got the following output: “group 03 command 02 response 1 result 05”, but me_fwcaps struct defines at least 20 fwcaps, so I don’t think that’s a correct response. I expected fwcaps to be defined as a big binary number, so that every capability can have its own bit, like: bit 7 is for icc overcloking and bit 20 is for intel AMT (for example). It’s mostly imposible that I only have some of the first capabilities.

I also noticed this output from me_util.py: “Firmware version: [code 12.0.40.1433 rcvy 12.0.40.1433 back? 12.0.6.1120]”. Code and rcvy versions are OK, but what about back version? Why does it have a different version number? I would understand that back stands for “backup”, but there is already a recovery version (rcvy), so I suppose back isn’t “backup”. What is it then?

In addition to this question, I have other doubts.

  1. I saw commands like these defined in intelmetool:

|#define GLOBAL_RESET_BIOS_MRC|0x01|
|#define GLOBAL_RESET_BIOS_POST|0x02|
|#define GLOBAL_RESET_MEBX|0x03|

  1. What’s the supposed group_id to be used along with this commands?

  2. Is there any way to obtain more information about these commands (MEA maybe)? There is little information about them on the internet. For example: I have seen it’s posible to disable intel ME using MKHI_FWCAPS_SET_RULE using Rule ID 0x6. Where can I locate more of these Rule IDs in coreboot source code/intel ME modules? Is there any public list/web page with more information?

  3. Is there any command to trigger a management engine firmware recovery? Will ME trigger a recovery if I try to flash a new image and the process fails?

  4. Is there any other tool (apart from me_util.py) to send HECI commands?

Sorry for mentioning you @plutomaniac, but I saw your MEA tool and I think you are the most advanced user at Win-Raid about intel ME, that’s why I ask you to answer this thread whenever you have the desire and the free time to do it.

I’m experiencing some weird issues with my PC and I think it can be fixed with some HECI commands (random freezes, BSODS, weird flickering… It’s not a hardware problem: some old Windows 10 versions fix it automatically sending an HECI command, but then the issue appears again). I can upload my intel ME firmware if that’s helpful.

PD (extra information about my PC issue): I’m able to turn intel ME on and off using SCEWIN. I can boot with ME state = disabled and MBP (ME_BIOS_PAYLOAD) HOB skip = disabled: when I do it, and (once the PC has booted to windows) I change ME state = enabled, (without rebooting), the PC will randomly freeze for 1-2 seconds, but then it will run normally