diff --git a/EmbeddedPkg/Universal/MmcDxe/MmcBlockIo.c b/EmbeddedPkg/Universal/MmcDxe/MmcBlockIo.c index 69987e9f1a..52908f92cf 100644 --- a/EmbeddedPkg/Universal/MmcDxe/MmcBlockIo.c +++ b/EmbeddedPkg/Universal/MmcDxe/MmcBlockIo.c @@ -210,6 +210,8 @@ MmcTransferBlock ( break; // Prevents delay once finished } } + + gBS->Stall (1); } if (BufferSize > This->Media->BlockSize) { @@ -323,6 +325,8 @@ MmcIoBlocks ( if (!EFI_ERROR (Status)) { MmcHost->ReceiveResponse (MmcHost, MMC_RESPONSE_TYPE_R1, Response); } + + gBS->Stall (1); } if (0 == Timeout) { diff --git a/EmbeddedPkg/Universal/MmcDxe/MmcIdentification.c b/EmbeddedPkg/Universal/MmcDxe/MmcIdentification.c index fed1646b27..858836cfc6 100755 --- a/EmbeddedPkg/Universal/MmcDxe/MmcIdentification.c +++ b/EmbeddedPkg/Universal/MmcDxe/MmcIdentification.c @@ -596,6 +596,10 @@ MmcIdentificationMode ( return Status; } + if (!OcrResponse.Ocr.PowerUp) { + gBS->Stall (1); + } + Timeout--; } while (!OcrResponse.Ocr.PowerUp && (Timeout > 0));