ME Disable Strap

From LogiWiki - Your Wiki for all things Apple MacBook and iPhone related
Jump to navigationJump to search

Problem:

The MacBook can boot into EFI ASD but not Into OS. No ASD Problems reported, Installer does not boot as well. Windows / Linux boots just fine.

In some cases the reason is incorrect temperature sensors reading, so do not start messing with ME before checking ASD EFI/MRI.

Repair/Diagnostics:

Before flashing the bios, check if intel Management Engine is running. On older OSX (10.6.8) you will see "unknown platform" kernel panic in verbose mode. You can also test Intel ME by booting Windows and checking if Intel Management Engine is visible in Device Manager. You may also use Intel Management Engine Detection tool.

After confirming Intel ME not working, inspect ME Disable Bootstrap circuit for waterdamage/bad solder joints.

According to Intel CPU design, CPU/PCH uses audio module HDA_SDO signal as a power-up strap to enable or disable the Management Engine shown as follow:

When a user performs the firmware upgrade, SMC sends out SPI_DESCRIPTOR_OVERRIDE_L to chip Q1920 pin 2. Then pin 4 outputs HDA_SDOUT_R (high) to disable ME module in the CPU. So a full re-flashing of SPI ROM can be done. Management Engine is enabled again when OS boots normally.

This means in many cases ME Bootstrap problem will also cause no audio and visa versa, shorted HDA_SDO will cause problems with ME Bootstrap.

Q1920 ME Disable circuit

In normal condition SPI_DESCRIPTOR_OVERRIDE_L should be high to enable ME. If you measure that ME is disabled, Inspect Q1920 step by step for internal shorts, power supply (R1920). If no issue found / Q1920 replacement does not help, move to the EFI(Flash good-known CleanME ROM). If you have waterdamage near the SMC, reflow/reball it before messing with other circuits. If you have waterdamage around ME Disable Strap, it could also damage the ME region during Bios Update so you might have both problems: broken disable strap and corrupted ME region.

On older Boards(Sandy Bridge, for example 820-3023-a), there might be no PCH Disable Strap. If you see "Unsupported CPU / Unsupported PCH" before it reboots, check SMC for corrosion (Pin 133, SPI_Descriptor). Never forget to 3xPRAM Reset in a row.



Original Discord discussion :


Piernov:
There should be no audio output at all I think, as it'll permanently pull up the audio out line between PCH and audio codec.
(To clarify, to disable ME it only has to be pulled during boot, but if there is an issue with Q1920 it should pull it up all the time)
The SMC may pull it up when updating EFI if reflashing the ME region is necessary.
(since it'll enable writing the area for ME region in the SPI ROM)
(btw with flashrom on Linux you can check which area are accessible, and you can indeed toggle manually SPI_DESCRIPTOR_OVERRIDE_L to get write access to ME region)
(you still don't have write access to NVRAM area, as it's been permanently disabled outside EFI starting from 2013 I think)

inwerp:
But first check q1920 very closely
Check if SPI_DESCRIPTOR_OVERRIDE_L is high => SPI_DESCRIPTOR_OVERRIDE low. High SPI_DESCRIPTOR_OVERRIDE(==SPI_DESCRIPTOR_OVERRIDE_L is low) means ME is disabled
Check both mosfets for shorts
Boot with win 10 and check if intel ME is present in device manager

Somewhat similar problem on Sandy Bridge board with no bootstrap: 820-3023-a, Verbose mode reports "Unsupported CPU, Unsupported PCH", reboots. in this case check corrosion SMC pin 133 (SPI_Descriptor), + 3X PRAM reset in a row.