mirror of https://github.com/acidanthera/audk.git
EmbeddedPkg/MmcDxe: Implement the correct macro to get the device size of SD 2 High Density cards
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12131 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
d8ad4736af
commit
36aa561136
|
@ -39,6 +39,7 @@
|
||||||
#define MMC_CSD_GET_FILEFORMAT(Response) ((Response[3] >> 10) & 0x3)
|
#define MMC_CSD_GET_FILEFORMAT(Response) ((Response[3] >> 10) & 0x3)
|
||||||
#define MMC_CSD_GET_FILEFORMATGRP(Response) ((Response[3] >> 15) & 0x1)
|
#define MMC_CSD_GET_FILEFORMATGRP(Response) ((Response[3] >> 15) & 0x1)
|
||||||
#define MMC_CSD_GET_DEVICESIZE(csd) (((Response[2] >> 30) & 0x3) | ((Response[1] & 0x3FF) << 2))
|
#define MMC_CSD_GET_DEVICESIZE(csd) (((Response[2] >> 30) & 0x3) | ((Response[1] & 0x3FF) << 2))
|
||||||
|
#define HC_MMC_CSD_GET_DEVICESIZE(Response) ((Response[1] >> 16) | ((Response[2] & 0x40) << 16));
|
||||||
#define MMC_CSD_GET_DEVICESIZEMULT(csd) ((Response[2] >> 15) & 0x7)
|
#define MMC_CSD_GET_DEVICESIZEMULT(csd) ((Response[2] >> 15) & 0x7)
|
||||||
|
|
||||||
#define MMC_R0_READY_FOR_DATA (1 << 8)
|
#define MMC_R0_READY_FOR_DATA (1 << 8)
|
||||||
|
|
|
@ -464,9 +464,8 @@ MmcIoBlocks (
|
||||||
PrintCSD(Response);
|
PrintCSD(Response);
|
||||||
|
|
||||||
if (MmcHostInstance->CardInfo.CardType == SD_CARD_2_HIGH) {
|
if (MmcHostInstance->CardInfo.CardType == SD_CARD_2_HIGH) {
|
||||||
ASSERT(0); //TODO: Implementation needed
|
CardSize = HC_MMC_CSD_GET_DEVICESIZE(Response);
|
||||||
CardSize = MMC_CSD_GET_DEVICESIZE(Response);
|
NumBlocks = ((CardSize + 1) * 1024);
|
||||||
NumBlocks = ((CardSize + 1) * 1024);;
|
|
||||||
BlockSize = 1 << MMC_CSD_GET_READBLLEN(Response);
|
BlockSize = 1 << MMC_CSD_GET_READBLLEN(Response);
|
||||||
} else {
|
} else {
|
||||||
CardSize = MMC_CSD_GET_DEVICESIZE(Response);
|
CardSize = MMC_CSD_GET_DEVICESIZE(Response);
|
||||||
|
|
Loading…
Reference in New Issue