new Boot Rom incompatible with Windows
I’m not a native English speaker, so that my words may be a bit confusing, sorry for that.
I encountered some problems when I’m using Windows 10 on my MacBook Pro 2016 (MBP13,3). I believe that these problems are caused by the Boot Rom (which is called BIOS/UEFI firmware in general PCs).
My conclusions first:
The Boot Rom sometimes make Windows fail to connect to USB devices (at least all USB storage devices are affected). The problem was first introduced in MacOS Mojave 10.14.6, which upgraded the boot rom to version 259.0.0.0.0 for my Mac. And it became even worse after installing the Mojave 2020-001 Security Update, which upgraded boot rom to version 264.0.0.0.0.
Procedures to reproduce this problem:
In Boot Rom 259.0.0.0.0:
First, prepare a USB Storage Device. It can be either a USB Flash Disk or a USB connected SSD/HDD, the USB protocol (USB2.0/3.0) does not matter. And then, place a huge ISO file into the USB Storage Device, the ISO should be at least 3GB (I recommend to use some System Installation ISOs). Then boot the Mac into Windows 10, plug in the USB Storage Device and use the Windows Explorer to open the ISO file. In general, the Windows Explorer should mount the ISO file to a Virtual CD-ROM, however, on my Mac the Windows will get stuck. In the Event Viewer system logs (run eventvwr in Windows), you can see warning like “An error was detected on device {the USB Storage Device} during a paging operation”. However, if you put the ISO file into the Mac internal NVME SSD and do the same thing, it would be mounted successfully without any errors.
In Boot Rom 264.0.0.0.0:
The ISO-file-in-USB-method used in 259.0.0.0 still trigger the problem. However, there are more problems.
I found that SanDisk Cruzer Blade would cause Windows to crash in this version of Boot Rom. You can reproduce this very easily: Plug in a SanDisk Cruzer Blade in Windows 10 and try to view the files in the flash disk. If the problem did not occur, you can simply eject the flash disk and plug in again. You can see the details in eventvwr as well.
What’s more, if I boot Windows with USB Storage Devices plugged in, BSOD (Blue Screen) might occur with error code CLOCK_WATCHDOG_TIMEOUT.
How did I found this problem:
I meet this bug for the first time when I’m trying to start up into Windows 10. After the Windows logo disappeared and before the blue “please wait” UI, Windows suddenly got stuck (the mouse can’t move) and then a BSOD (Blue Screen) happened with error code CLOCK_WATCHDOG_TIMEOUT. I retried several times, but the BSOD happens every time.
Then, I reboot my MBP and started up the MacOS. I created a Virtual Machine with VMWare Fusion and started up Windows in it. When I was using the Windows inside the VM, a kernel panic happened in MacOS suddenly. After a reboot, everything went well so far, it did not happen a second time in MacOS. The system ask me if I wanted to submit the error report, I’ve submitted it, but I’m not sure whether you can find it.
Actions I had take try to solve the problem:
I tried to downgrade the Boot Rom from 264.0.0.0.0 to 259.0.0.0.0. I extracted the boot rom MBP133.fd from Mojave Installer, and used “sudo /usr/libexec/efiupdater -p /path/to/EFIPayloads --force-update”. However every time I start up MacOS, the newer boot rom gets back automatically.
Though this problem does not affect MacOS very often, I hope that you can fix it as soon as possible because it brings me very terrible user experience. At least, please provide users with a solution to downgrade the boot rom.
MacBook Pro 15", macOS 10.14