"Just in case some of you missed it, I have a possible solution to the issue that I discovered and wrote about in this thread:
https://answers.microsoft.com/en-us/surface/forum/all/type-cover-not-working-but/059251f4-03f9-4070-8154-a8b8c9819c5f?page=25
As Barb wrote about back in 2018, for many people the type cover port stops working after some random Windows update that corrupts the firmware somehow. The problem is there is normally no way to reflash the firmware on a Surface device other than to wait for
Microsoft to release a new firmware update via Windows Update.
The instructions I've written below are technical. Everything listed is "at your own risk".
I discovered that there is a firmware testing procedure in Windows that can be enabled to permit firmware downgrades. To enable it:
- Open Device Manager, expand the "Firmware" section and open the Properties for each firmware resource. Go to the Details tab and switch the dropdown to "Hardware IDs". You should see a GUID here, this is the ID of the firmware resource. Take note of which
GUIDs correspond to which firmware resources.
- Open Registry Editor, go to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FirmwareResources. You should see four GUIDs, one for each firmware resource. Inside each GUID, create a REG_DWORD named "Policy" and set it to a value of "1". This enables
firmware rollbacks and downgrades.
- Open HKEY_LOCAL_MACHINE\HARDWARE\UEFI\ESRT. You should see four GUIDs, one for each firmware resource. Inside each GUID, review the "LowestSupportedVersion" value. This is the oldest firmware version you'll be able to downgrade to. For me, the EC was 0x340100
(34.01.00) and the UEFI was 0x30b0a28 (3.11.2600).
On my Surface Pro 3, I had the following values (yours may be different):
UEFI Firmware:
- Current Version: 0x30B0A5A (3.11.2650.0 - 04/30/2019)
- Lowest Supported Version: 0x30B0A28 (3.11.2600.0)
Embedded Controller (EC) Firmware:
- Current Version: 0x381685 (38.16.85.0 - 01/23/2019)
- Lowest Supported Version: 0x340100 (34.01.00.0)
The SAM has never been updated and the touch isn't affected, so skipping the details for those firmwares in this post.
As you can see above, for me the previous version of the UEFI firmware was 0x30B09F6 (3.11.2550.0) and for the EC it was 0x381480 (38.14.80.0). Unfortunately this means the UEFI can't be downgraded unless someone finds the unreleased 3.11.2600.0 firmware,
but the EC can be downgraded.
- Go to https://support.microsoft.com/en-us/help/4023482/surface-download-drivers-and-firmware and select your Surface Pro
device. You'll want to download the MSI file with the firmware released before the current one. For the Surface Pro 3, this was the package named "16299".
- Extract the contents of the MSI file by running the command msiexec /a <msifilename> /qb TARGETDIR=C:\surfacefirmware
- Go to the folder with the extracted files (e.g. C:\surfacefirmware) and open the "Firmware\EC" folder. Open the .inf file and review the driver version and date to make sure it's the previous firmware version. (I had to review a few MSI files to find the
one I wanted)
- Disconnect your device from the internet to temporarily prevent Windows from downloading newer driver versions.
- Open Device Manager and expand the Firmware section. Right click on the "Surface Pro Embedded Controller Firmware" device and select "Uninstall Device". Enable "Delete the driver software for this device" and press uninstall. Open the Action menu and select
"Scan for hardware changes"
- Repeat the previous step until the firmware device shows as "System Firmware". This means all of the downloaded / cached firmware on your hard disk have been deleted.
- Right click on the "System Firmware" device (that used to show as Embedded Controller Firmware) and select "Update Driver". Click "Browse my computer for driver software", then "Let me pick from a list of available drivers on my computer", then "Have Disk...".
In the file picker dialog that appears, browse to the .INF file of the firmware you want to downgrade to (e.g. the .INF file in the Firmware\EC folder).
- Windows should ask you if you want to reboot your device. Reboot, and it should enter a firmware flashing process.
Once your system is back up, go back into Device Manager and review the version number of the Embedded Controller firmware to ensure it's been properly downgraded. Connect your device back to the internet, right click on the firmware and select "Update driver".
After the next reboot it will update the firmware back to the current version - but hopefully without the type cover problem.
I ended up doing this a few times - I'm not 100% sure it worked after the first try, potentially due to a cached firmware on the device somehow. You may need to attach and detach the type cover after you do all this to have the system recognize it again.
My type cover is fully operational now, I've tried reboots, shutdowns, attaches/detaches, hard shutdowns (volume up+power)... nothing has killed it yet. There's a chance this was all a fluke and it will die again in the future, but so far it looks like it's
fixed. My theory is the EC firmware data was partially corrupt, and reapplying the firmware fixed it."
Not sure. I tried to into the UEFI on my SP3 but the surface type cover option to toggle on/off is not there. I am in no way technical on this issue. Have you tried shadowchasers fix on page 56? I don't know how to quote someone on this site..