mirror of https://github.com/acidanthera/audk.git
EmbeddedPkg: MmcDxe: move ECSD into CardInfo structure
Since ECSD also describes the information of card, move it into structure CardInfo. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org> Tested-by: Ryan Harkin <ryan.harkin@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
This commit is contained in:
parent
3201075377
commit
36bec33a99
|
@ -138,6 +138,7 @@ typedef struct {
|
||||||
OCR OCRData;
|
OCR OCRData;
|
||||||
CID CIDData;
|
CID CIDData;
|
||||||
CSD CSDData;
|
CSD CSDData;
|
||||||
|
UINT32 ECSD[128]; // MMC V4 extended card specific
|
||||||
} CARD_INFO;
|
} CARD_INFO;
|
||||||
|
|
||||||
typedef struct _MMC_HOST_INSTANCE {
|
typedef struct _MMC_HOST_INSTANCE {
|
||||||
|
|
|
@ -39,7 +39,6 @@ EmmcIdentificationMode (
|
||||||
EFI_BLOCK_IO_MEDIA *Media;
|
EFI_BLOCK_IO_MEDIA *Media;
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
UINT32 RCA;
|
UINT32 RCA;
|
||||||
UINT32 ECSD[128];
|
|
||||||
|
|
||||||
Host = MmcHostInstance->MmcHost;
|
Host = MmcHostInstance->MmcHost;
|
||||||
Media = MmcHostInstance->BlockIo.Media;
|
Media = MmcHostInstance->BlockIo.Media;
|
||||||
|
@ -91,7 +90,7 @@ EmmcIdentificationMode (
|
||||||
DEBUG ((EFI_D_ERROR, "EmmcIdentificationMode(): ECSD fetch error, Status=%r.\n", Status));
|
DEBUG ((EFI_D_ERROR, "EmmcIdentificationMode(): ECSD fetch error, Status=%r.\n", Status));
|
||||||
}
|
}
|
||||||
|
|
||||||
Status = Host->ReadBlockData (Host, 0, 512, ECSD);
|
Status = Host->ReadBlockData (Host, 0, 512, (UINT32 *)&(MmcHostInstance->CardInfo.ECSD));
|
||||||
if (EFI_ERROR (Status)) {
|
if (EFI_ERROR (Status)) {
|
||||||
DEBUG ((EFI_D_ERROR, "EmmcIdentificationMode(): ECSD read error, Status=%r.\n", Status));
|
DEBUG ((EFI_D_ERROR, "EmmcIdentificationMode(): ECSD read error, Status=%r.\n", Status));
|
||||||
return Status;
|
return Status;
|
||||||
|
@ -104,7 +103,7 @@ EmmcIdentificationMode (
|
||||||
Media->LogicalBlocksPerPhysicalBlock = 1;
|
Media->LogicalBlocksPerPhysicalBlock = 1;
|
||||||
Media->IoAlign = 4;
|
Media->IoAlign = 4;
|
||||||
// Compute last block using bits [215:212] of the ECSD
|
// Compute last block using bits [215:212] of the ECSD
|
||||||
Media->LastBlock = ECSD[EMMC_ECSD_SIZE_OFFSET] - 1; // eMMC isn't supposed to report this for
|
Media->LastBlock = MmcHostInstance->CardInfo.ECSD[EMMC_ECSD_SIZE_OFFSET] - 1; // eMMC isn't supposed to report this for
|
||||||
// Cards <2GB in size, but the model does.
|
// Cards <2GB in size, but the model does.
|
||||||
|
|
||||||
// Setup card type
|
// Setup card type
|
||||||
|
|
Loading…
Reference in New Issue