+ /* SD Switch, Mode:0, Group:0, Value:0 */\r
+ CmdArg = CreateSwitchCmdArgument(0, 0, 0);\r
+ Status = MmcHost->SendCommand (MmcHost, MMC_CMD6, CmdArg);\r
+ if (EFI_ERROR (Status)) {\r
+ DEBUG ((DEBUG_ERROR, "%a (MMC_CMD6): Error and Status = %r\n", __FUNCTION__, Status));\r
+ return Status;\r
+ } else {\r
+ Status = MmcHost->ReadBlockData (MmcHost, 0, SWITCH_CMD_DATA_LENGTH, Buffer);\r
+ if (EFI_ERROR (Status)) {\r
+ DEBUG ((DEBUG_ERROR, "%a (MMC_CMD6): ReadBlockData Error and Status = %r\n", __FUNCTION__, Status));\r
+ return Status;\r
+ }\r
+ }\r
+\r
+ if (!(Buffer[3] & SD_HIGH_SPEED_SUPPORTED)) {\r
+ DEBUG ((DEBUG_ERROR, "%a : High Speed not supported by Card %r\n", __FUNCTION__, Status));\r
+ return Status;\r
+ }\r
+\r
+ Speed = SD_HIGH_SPEED;\r
+\r