\r
EFI_STATUS\r
MmcNotifyState (\r
- IN MMC_HOST_INSTANCE *MmcHostInstance,\r
- IN MMC_STATE State\r
+ IN MMC_HOST_INSTANCE *MmcHostInstance,\r
+ IN MMC_STATE State\r
)\r
{\r
MmcHostInstance->State = State;\r
EFI_STATUS\r
EFIAPI\r
MmcGetCardStatus (\r
- IN MMC_HOST_INSTANCE *MmcHostInstance\r
+ IN MMC_HOST_INSTANCE *MmcHostInstance\r
)\r
{\r
- EFI_STATUS Status;\r
- UINT32 Response[4];\r
- UINTN CmdArg;\r
- EFI_MMC_HOST_PROTOCOL *MmcHost;\r
+ EFI_STATUS Status;\r
+ UINT32 Response[4];\r
+ UINTN CmdArg;\r
+ EFI_MMC_HOST_PROTOCOL *MmcHost;\r
\r
- Status = EFI_SUCCESS;\r
+ Status = EFI_SUCCESS;\r
MmcHost = MmcHostInstance->MmcHost;\r
- CmdArg = 0;\r
+ CmdArg = 0;\r
\r
if (MmcHost == NULL) {\r
return EFI_INVALID_PARAMETER;\r
}\r
+\r
if (MmcHostInstance->State != MmcHwInitializationState) {\r
- //Get the Status of the card.\r
+ // Get the Status of the card.\r
CmdArg = MmcHostInstance->CardInfo.RCA << 16;\r
Status = MmcHost->SendCommand (MmcHost, MMC_CMD13, CmdArg);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
\r
- //Read Response\r
+ // Read Response\r
MmcHost->ReceiveResponse (MmcHost, MMC_RESPONSE_TYPE_R1, Response);\r
PrintResponseR1 (Response[0]);\r
}\r
EFI_STATUS\r
EFIAPI\r
MmcReset (\r
- IN EFI_BLOCK_IO_PROTOCOL *This,\r
- IN BOOLEAN ExtendedVerification\r
+ IN EFI_BLOCK_IO_PROTOCOL *This,\r
+ IN BOOLEAN ExtendedVerification\r
)\r
{\r
- MMC_HOST_INSTANCE *MmcHostInstance;\r
+ MMC_HOST_INSTANCE *MmcHostInstance;\r
\r
MmcHostInstance = MMC_HOST_INSTANCE_FROM_BLOCK_IO_THIS (This);\r
\r
\r
EFI_STATUS\r
MmcDetectCard (\r
- EFI_MMC_HOST_PROTOCOL *MmcHost\r
+ EFI_MMC_HOST_PROTOCOL *MmcHost\r
)\r
{\r
if (!MmcHost->IsCardPresent (MmcHost)) {\r
\r
EFI_STATUS\r
MmcStopTransmission (\r
- EFI_MMC_HOST_PROTOCOL *MmcHost\r
+ EFI_MMC_HOST_PROTOCOL *MmcHost\r
)\r
{\r
- EFI_STATUS Status;\r
- UINT32 Response[4];\r
+ EFI_STATUS Status;\r
+ UINT32 Response[4];\r
+\r
// Command 12 - Stop transmission (ends read or write)\r
// Normally only needed for streaming transfers or after error.\r
Status = MmcHost->SendCommand (MmcHost, MMC_CMD12, 0);\r
if (!EFI_ERROR (Status)) {\r
MmcHost->ReceiveResponse (MmcHost, MMC_RESPONSE_TYPE_R1b, Response);\r
}\r
+\r
return Status;\r
}\r
\r
-#define MMCI0_BLOCKLEN 512\r
-#define MMCI0_TIMEOUT 10000\r
+#define MMCI0_BLOCKLEN 512\r
+#define MMCI0_TIMEOUT 10000\r
\r
STATIC\r
EFI_STATUS\r
MmcTransferBlock (\r
- IN EFI_BLOCK_IO_PROTOCOL *This,\r
- IN UINTN Cmd,\r
- IN UINTN Transfer,\r
- IN UINT32 MediaId,\r
- IN EFI_LBA Lba,\r
- IN UINTN BufferSize,\r
- OUT VOID *Buffer\r
+ IN EFI_BLOCK_IO_PROTOCOL *This,\r
+ IN UINTN Cmd,\r
+ IN UINTN Transfer,\r
+ IN UINT32 MediaId,\r
+ IN EFI_LBA Lba,\r
+ IN UINTN BufferSize,\r
+ OUT VOID *Buffer\r
)\r
{\r
- EFI_STATUS Status;\r
- UINTN CmdArg;\r
- INTN Timeout;\r
- UINT32 Response[4];\r
- MMC_HOST_INSTANCE *MmcHostInstance;\r
- EFI_MMC_HOST_PROTOCOL *MmcHost;\r
+ EFI_STATUS Status;\r
+ UINTN CmdArg;\r
+ INTN Timeout;\r
+ UINT32 Response[4];\r
+ MMC_HOST_INSTANCE *MmcHostInstance;\r
+ EFI_MMC_HOST_PROTOCOL *MmcHost;\r
\r
MmcHostInstance = MMC_HOST_INSTANCE_FROM_BLOCK_IO_THIS (This);\r
- MmcHost = MmcHostInstance->MmcHost;\r
+ MmcHost = MmcHostInstance->MmcHost;\r
\r
if (MmcHostInstance->CardInfo.CardType != EMMC_CARD) {\r
- //Set command argument based on the card capacity\r
- //if 0 : SDSC card\r
- //if 1 : SDXC/SDHC\r
+ // Set command argument based on the card capacity\r
+ // if 0 : SDSC card\r
+ // if 1 : SDXC/SDHC\r
if (MmcHostInstance->CardInfo.OCRData.AccessMode & SD_CARD_CAPACITY) {\r
CmdArg = Lba;\r
} else {\r
CmdArg = MultU64x32 (Lba, This->Media->BlockSize);\r
}\r
} else {\r
- //Set command argument based on the card access mode (Byte mode or Block mode)\r
+ // Set command argument based on the card access mode (Byte mode or Block mode)\r
if ((MmcHostInstance->CardInfo.OCRData.AccessMode & MMC_OCR_ACCESS_MASK) ==\r
- MMC_OCR_ACCESS_SECTOR) {\r
+ MMC_OCR_ACCESS_SECTOR)\r
+ {\r
CmdArg = Lba;\r
} else {\r
CmdArg = MultU64x32 (Lba, This->Media->BlockSize);\r
MmcStopTransmission (MmcHost);\r
return Status;\r
}\r
+\r
Status = MmcNotifyState (MmcHostInstance, MmcProgrammingState);\r
if (EFI_ERROR (Status)) {\r
DEBUG ((DEBUG_ERROR, "%a() : Error MmcProgrammingState\n", __func__));\r
}\r
\r
// Command 13 - Read status and wait for programming to complete (return to tran)\r
- Timeout = MMCI0_TIMEOUT;\r
- CmdArg = MmcHostInstance->CardInfo.RCA << 16;\r
+ Timeout = MMCI0_TIMEOUT;\r
+ CmdArg = MmcHostInstance->CardInfo.RCA << 16;\r
Response[0] = 0;\r
- while(!(Response[0] & MMC_R0_READY_FOR_DATA)\r
+ while ( !(Response[0] & MMC_R0_READY_FOR_DATA)\r
&& (MMC_R0_CURRENTSTATE (Response) != MMC_R0_STATE_TRAN)\r
- && Timeout--) {\r
+ && Timeout--)\r
+ {\r
Status = MmcHost->SendCommand (MmcHost, MMC_CMD13, CmdArg);\r
if (!EFI_ERROR (Status)) {\r
MmcHost->ReceiveResponse (MmcHost, MMC_RESPONSE_TYPE_R1, Response);\r
if (EFI_ERROR (Status)) {\r
DEBUG ((DEBUG_BLKIO, "%a(): Error and Status:%r\n", __func__, Status));\r
}\r
+\r
MmcHost->ReceiveResponse (MmcHost, MMC_RESPONSE_TYPE_R1b, Response);\r
}\r
\r
DEBUG ((DEBUG_ERROR, "MmcIoBlocks() : Error MmcTransferState\n"));\r
return Status;\r
}\r
+\r
return Status;\r
}\r
\r
EFI_STATUS\r
MmcIoBlocks (\r
- IN EFI_BLOCK_IO_PROTOCOL *This,\r
- IN UINTN Transfer,\r
- IN UINT32 MediaId,\r
- IN EFI_LBA Lba,\r
- IN UINTN BufferSize,\r
- OUT VOID *Buffer\r
+ IN EFI_BLOCK_IO_PROTOCOL *This,\r
+ IN UINTN Transfer,\r
+ IN UINT32 MediaId,\r
+ IN EFI_LBA Lba,\r
+ IN UINTN BufferSize,\r
+ OUT VOID *Buffer\r
)\r
{\r
- UINT32 Response[4];\r
- EFI_STATUS Status;\r
- UINTN CmdArg;\r
- INTN Timeout;\r
- UINTN Cmd;\r
- MMC_HOST_INSTANCE *MmcHostInstance;\r
- EFI_MMC_HOST_PROTOCOL *MmcHost;\r
- UINTN BytesRemainingToBeTransfered;\r
- UINTN BlockCount;\r
- UINTN ConsumeSize;\r
- UINT32 MaxBlock;\r
- UINTN RemainingBlock;\r
-\r
- BlockCount = 1;\r
+ UINT32 Response[4];\r
+ EFI_STATUS Status;\r
+ UINTN CmdArg;\r
+ INTN Timeout;\r
+ UINTN Cmd;\r
+ MMC_HOST_INSTANCE *MmcHostInstance;\r
+ EFI_MMC_HOST_PROTOCOL *MmcHost;\r
+ UINTN BytesRemainingToBeTransfered;\r
+ UINTN BlockCount;\r
+ UINTN ConsumeSize;\r
+ UINT32 MaxBlock;\r
+ UINTN RemainingBlock;\r
+\r
+ BlockCount = 1;\r
MmcHostInstance = MMC_HOST_INSTANCE_FROM_BLOCK_IO_THIS (This);\r
ASSERT (MmcHostInstance != NULL);\r
MmcHost = MmcHostInstance->MmcHost;\r
return EFI_BAD_BUFFER_SIZE;\r
}\r
\r
- if (MMC_HOST_HAS_ISMULTIBLOCK(MmcHost) && MmcHost->IsMultiBlock(MmcHost)) {\r
+ if (MMC_HOST_HAS_ISMULTIBLOCK (MmcHost) && MmcHost->IsMultiBlock (MmcHost)) {\r
BlockCount = BufferSize / This->Media->BlockSize;\r
}\r
\r
}\r
\r
// Max block number in single cmd is 65535 blocks.\r
- MaxBlock = 0xFFFF;\r
- RemainingBlock = BlockCount;\r
+ MaxBlock = 0xFFFF;\r
+ RemainingBlock = BlockCount;\r
BytesRemainingToBeTransfered = BufferSize;\r
while (BytesRemainingToBeTransfered > 0) {\r
-\r
if (RemainingBlock <= MaxBlock) {\r
BlockCount = RemainingBlock;\r
} else {\r
}\r
\r
// Check if the Card is in Ready status\r
- CmdArg = MmcHostInstance->CardInfo.RCA << 16;\r
+ CmdArg = MmcHostInstance->CardInfo.RCA << 16;\r
Response[0] = 0;\r
- Timeout = 20;\r
- while( (!(Response[0] & MMC_R0_READY_FOR_DATA))\r
+ Timeout = 20;\r
+ while ( (!(Response[0] & MMC_R0_READY_FOR_DATA))\r
&& (MMC_R0_CURRENTSTATE (Response) != MMC_R0_STATE_TRAN)\r
- && Timeout--) {\r
+ && Timeout--)\r
+ {\r
Status = MmcHost->SendCommand (MmcHost, MMC_CMD13, CmdArg);\r
if (!EFI_ERROR (Status)) {\r
MmcHost->ReceiveResponse (MmcHost, MMC_RESPONSE_TYPE_R1, Response);\r
// Read a single block\r
Cmd = MMC_CMD17;\r
} else {\r
- // Read multiple blocks\r
- Cmd = MMC_CMD18;\r
+ // Read multiple blocks\r
+ Cmd = MMC_CMD18;\r
}\r
} else {\r
if (BlockCount == 1) {\r
// Write a single block\r
Cmd = MMC_CMD24;\r
} else {\r
- // Write multiple blocks\r
- Cmd = MMC_CMD25;\r
+ // Write multiple blocks\r
+ Cmd = MMC_CMD25;\r
}\r
}\r
\r
if (BytesRemainingToBeTransfered < ConsumeSize) {\r
ConsumeSize = BytesRemainingToBeTransfered;\r
}\r
+\r
Status = MmcTransferBlock (This, Cmd, Transfer, MediaId, Lba, ConsumeSize, Buffer);\r
if (EFI_ERROR (Status)) {\r
DEBUG ((DEBUG_ERROR, "%a(): Failed to transfer block and Status:%r\n", __func__, Status));\r
}\r
\r
- RemainingBlock -= BlockCount;\r
+ RemainingBlock -= BlockCount;\r
BytesRemainingToBeTransfered -= ConsumeSize;\r
if (BytesRemainingToBeTransfered > 0) {\r
- Lba += BlockCount;\r
+ Lba += BlockCount;\r
Buffer = (UINT8 *)Buffer + ConsumeSize;\r
}\r
}\r
EFI_STATUS\r
EFIAPI\r
MmcReadBlocks (\r
- IN EFI_BLOCK_IO_PROTOCOL *This,\r
- IN UINT32 MediaId,\r
- IN EFI_LBA Lba,\r
- IN UINTN BufferSize,\r
- OUT VOID *Buffer\r
+ IN EFI_BLOCK_IO_PROTOCOL *This,\r
+ IN UINT32 MediaId,\r
+ IN EFI_LBA Lba,\r
+ IN UINTN BufferSize,\r
+ OUT VOID *Buffer\r
)\r
{\r
return MmcIoBlocks (This, MMC_IOBLOCKS_READ, MediaId, Lba, BufferSize, Buffer);\r
EFI_STATUS\r
EFIAPI\r
MmcWriteBlocks (\r
- IN EFI_BLOCK_IO_PROTOCOL *This,\r
- IN UINT32 MediaId,\r
- IN EFI_LBA Lba,\r
- IN UINTN BufferSize,\r
- IN VOID *Buffer\r
+ IN EFI_BLOCK_IO_PROTOCOL *This,\r
+ IN UINT32 MediaId,\r
+ IN EFI_LBA Lba,\r
+ IN UINTN BufferSize,\r
+ IN VOID *Buffer\r
)\r
{\r
return MmcIoBlocks (This, MMC_IOBLOCKS_WRITE, MediaId, Lba, BufferSize, Buffer);\r