]> git.proxmox.com Git - mirror_edk2.git/commitdiff
EmbeddedPkg/MmcDxe: Implement the correct macro to get the device size of SD 2 High...
authoroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>
Mon, 15 Aug 2011 16:15:58 +0000 (16:15 +0000)
committeroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>
Mon, 15 Aug 2011 16:15:58 +0000 (16:15 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12131 6f19259b-4bc3-4df7-8a09-765794883524

EmbeddedPkg/Universal/MmcDxe/Mmc.h
EmbeddedPkg/Universal/MmcDxe/MmcBlockIo.c

index d570be299f955bac2df25f76b511c6581942ae21..8858454d0965099da464225fd1e1fda51097348a 100644 (file)
@@ -39,6 +39,7 @@
 #define MMC_CSD_GET_FILEFORMAT(Response)  ((Response[3] >> 10) & 0x3)\r
 #define MMC_CSD_GET_FILEFORMATGRP(Response)  ((Response[3] >> 15) & 0x1)\r
 #define MMC_CSD_GET_DEVICESIZE(csd)         (((Response[2] >> 30) & 0x3) | ((Response[1] & 0x3FF) << 2))\r
+#define HC_MMC_CSD_GET_DEVICESIZE(Response)    ((Response[1] >> 16) | ((Response[2] & 0x40) << 16));\r
 #define MMC_CSD_GET_DEVICESIZEMULT(csd)     ((Response[2] >> 15) & 0x7)\r
 \r
 #define MMC_R0_READY_FOR_DATA               (1 << 8)\r
index 38998c893fcde0bc8f13bdb24636e99daaf40b56..8fd86f72440db9a1600ffb859b3aeb29882b5048 100644 (file)
@@ -464,9 +464,8 @@ MmcIoBlocks (
     PrintCSD(Response);\r
 \r
     if (MmcHostInstance->CardInfo.CardType == SD_CARD_2_HIGH) {\r
-      ASSERT(0);  //TODO: Implementation needed\r
-      CardSize = MMC_CSD_GET_DEVICESIZE(Response);\r
-      NumBlocks = ((CardSize + 1) * 1024);;\r
+      CardSize = HC_MMC_CSD_GET_DEVICESIZE(Response);\r
+      NumBlocks = ((CardSize + 1) * 1024);\r
       BlockSize = 1 << MMC_CSD_GET_READBLLEN(Response);\r
     } else {\r
       CardSize = MMC_CSD_GET_DEVICESIZE(Response);\r