Hi, I would like to report an intermittent internal eMMC boot problem
and share a workaround tested on my device.
Hardware and firmware
Device: Acer Chromebook Spin 511 R756T
Board/HWID family: CRAASK / CRAASKBOWL
CPU: Intel N100
eMMC: DV4064, 58.2 GiB
eMMC controller: Intel 8086:54C4, PCI 00:1a.0
Original firmware: MrChromebox-2606.1 Full UEFI
Installed OS: Windows
Diagnostic environment: Linux Mint 22.1 live USB, kernel 6.8.0-51-generic
Symptoms
UEFI usually fails to expose the internal eMMC as a disk.
Repeated power cycles occasionally allow Windows to boot.
During a failed boot:
The Intel eMMC controller is still visible in the PCI list.
It appears as âEdkii Sd/Mmc Host Controllerâ.
connect -r followed by map -r does not recover the internal disk.
The only BLK0 mapping points to the separate SD reader, not the eMMC.
Windows Boot Manager fails with âNot Foundâ.
Diagnostic findings
A custom firmware build with edk2 CBMEM logging showed:
Controller reset: Success
Host initialization: Success
CMD1/CMD2 identification: Success
Switching to HS400: Success
However, subsequent CMD8 reads of the 512-byte EXT_CSD repeatedly failed:
Error interrupt status = 20
TRB failed with CRC Error
Command index: 8
InTransferLength: 512
Linux booted from USB in the same failed UEFI session successfully
initialized the eMMC in HS400 Enhanced Strobe mode and detected its
partitions.
Increasing CONFIG_EDK2_SD_MMC_TIMEOUT from 10 to 1000 ms did not help.
Workaround tested
A further custom build limited the Intel eMMC controllerâs UEFI mode
to HS SDR, at most 52 MHz, instead of HS400/HS200/DDR.
With that diagnostic build, five shutdown/power-on tests succeeded:
the internal eMMC was detected and Windows booted automatically.
The workaround did not modify the boardâs DLL tuning values or
coreboot HS400 capability configuration. Linux still initialized
the eMMC in HS400 Enhanced Strobe mode.
This is a workaround tested on one device, not a confirmed root-cause fix.
The successful build also retained diagnostic logging, so a possible
logging/timing effect has not yet been fully excluded.
âBooting from âWindows Boot Managerâ failed;verify it contains a 64-bit UEFI OSâ
give me the board name and Iâll give you a test build to flash which allows limiting the eMMC init speed via a menu option, so you can tell me what max speed is reliable
you should be flashing using the custom rom option from the script, so that everything gets persisted.
to fix this, pull your HWID from a backup image/stock backup and set it using the script menu option. or just set it to PUJJOTTEN15W if you donât care about having the exact correct one (only needed for going back to stock really)
injecting into a recovery image (shellball) firmware if you return to stock without a backup
if you have a stock backup, itâs not necessary to have the exact stock HWID in the full rom firmware, just set it to the correct board name if you care about the device name in the firmware menu.
this is all far secondary to the issue at hand here though