]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EmbeddedPkg/Universal/MmcDxe/Mmc.h
EmbeddedPkg/MmcDxe: Align the ExtCSD buffer
[mirror_edk2.git] / EmbeddedPkg / Universal / MmcDxe / Mmc.h
index fb3f6c9cba12fd900f2a13139a8055ebc043a943..f3e56ff3a63f7e1c53c09a309965f5f9b80f5589 100644 (file)
 \r
 #define MMC_OCR_POWERUP             0x80000000\r
 \r
+#define MMC_OCR_ACCESS_MASK         0x3     /* bit[30-29] */\r
+#define MMC_OCR_ACCESS_BYTE         0x1     /* bit[29] */\r
+#define MMC_OCR_ACCESS_SECTOR       0x2     /* bit[30] */\r
+\r
 #define MMC_CSD_GET_CCC(Response)    (Response[2] >> 20)\r
 #define MMC_CSD_GET_TRANSPEED(Response)    (Response[3] & 0xFF)\r
 #define MMC_CSD_GET_READBLLEN(Response)    ((Response[2] >> 16) & 0xF)\r
@@ -80,6 +84,22 @@ typedef struct {
   UINT32  PowerUp:     1; // This bit is set to LOW if the card has not finished the power up routine\r
 } OCR;\r
 \r
+typedef struct {\r
+  UINT8   SD_SPEC:               4; // SD Memory Card - Spec. Version [59:56]\r
+  UINT8   SCR_STRUCTURE:         4; // SCR Structure [63:60]\r
+  UINT8   SD_BUS_WIDTHS:         4; // DAT Bus widths supported [51:48]\r
+  UINT8   DATA_STAT_AFTER_ERASE: 1; // Data Status after erases [55]\r
+  UINT8   SD_SECURITY:           3; // CPRM Security Support [54:52]\r
+  UINT8   EX_SECURITY_1:         1; // Extended Security Support [43]\r
+  UINT8   SD_SPEC4:              1; // Spec. Version 4.00 or higher [42]\r
+  UINT8   RESERVED_1:            2; // Reserved [41:40]\r
+  UINT8   SD_SPEC3:              1; // Spec. Version 3.00 or higher [47]\r
+  UINT8   EX_SECURITY_2:         3; // Extended Security Support [46:44]\r
+  UINT8   CMD_SUPPORT:           4; // Command Support bits [35:32]\r
+  UINT8   RESERVED_2:            4; // Reserved [39:36]\r
+  UINT32  RESERVED_3;               // Manufacturer Usage [31:0]\r
+} SCR;\r
+\r
 typedef struct {\r
   UINT32  NOT_USED;   // 1 [0:0]\r
   UINT32  CRC;        // CRC7 checksum [7:1]\r
@@ -299,7 +319,7 @@ typedef struct  {
   OCR       OCRData;\r
   CID       CIDData;\r
   CSD       CSDData;\r
-  ECSD      ECSDData;                         // MMC V4 extended card specific\r
+  ECSD      *ECSDData;                         // MMC V4 extended card specific\r
 } CARD_INFO;\r
 \r
 typedef struct _MMC_HOST_INSTANCE {\r