//\r
// Global Variables\r
//\r
-extern EFI_DRIVER_BINDING_PROTOCOL gEmmcDxeDriverBinding;\r
-extern EFI_COMPONENT_NAME_PROTOCOL gEmmcDxeComponentName;\r
-extern EFI_COMPONENT_NAME2_PROTOCOL gEmmcDxeComponentName2;\r
+extern EFI_DRIVER_BINDING_PROTOCOL gEmmcDxeDriverBinding;\r
+extern EFI_COMPONENT_NAME_PROTOCOL gEmmcDxeComponentName;\r
+extern EFI_COMPONENT_NAME2_PROTOCOL gEmmcDxeComponentName2;\r
\r
-#define EMMC_PARTITION_SIGNATURE SIGNATURE_32 ('E', 'm', 'm', 'P')\r
+#define EMMC_PARTITION_SIGNATURE SIGNATURE_32 ('E', 'm', 'm', 'P')\r
\r
#define EMMC_PARTITION_DATA_FROM_BLKIO(a) \\r
CR(a, EMMC_PARTITION, BlockIo, EMMC_PARTITION_SIGNATURE)\r
//\r
// Take 2.5 seconds as generic time out value, 1 microsecond as unit.\r
//\r
-#define EMMC_GENERIC_TIMEOUT 2500 * 1000\r
+#define EMMC_GENERIC_TIMEOUT 2500 * 1000\r
\r
-#define EMMC_REQUEST_SIGNATURE SIGNATURE_32 ('E', 'm', 'R', 'e')\r
+#define EMMC_REQUEST_SIGNATURE SIGNATURE_32 ('E', 'm', 'R', 'e')\r
\r
-typedef struct _EMMC_DEVICE EMMC_DEVICE;\r
-typedef struct _EMMC_DRIVER_PRIVATE_DATA EMMC_DRIVER_PRIVATE_DATA;\r
+typedef struct _EMMC_DEVICE EMMC_DEVICE;\r
+typedef struct _EMMC_DRIVER_PRIVATE_DATA EMMC_DRIVER_PRIVATE_DATA;\r
\r
//\r
// Asynchronous I/O request.\r
//\r
typedef struct {\r
- UINT32 Signature;\r
- LIST_ENTRY Link;\r
+ UINT32 Signature;\r
+ LIST_ENTRY Link;\r
\r
- EFI_SD_MMC_COMMAND_BLOCK SdMmcCmdBlk;\r
- EFI_SD_MMC_STATUS_BLOCK SdMmcStatusBlk;\r
- EFI_SD_MMC_PASS_THRU_COMMAND_PACKET Packet;\r
+ EFI_SD_MMC_COMMAND_BLOCK SdMmcCmdBlk;\r
+ EFI_SD_MMC_STATUS_BLOCK SdMmcStatusBlk;\r
+ EFI_SD_MMC_PASS_THRU_COMMAND_PACKET Packet;\r
\r
- BOOLEAN IsEnd;\r
+ BOOLEAN IsEnd;\r
\r
- EFI_BLOCK_IO2_TOKEN *Token;\r
- EFI_EVENT Event;\r
+ EFI_BLOCK_IO2_TOKEN *Token;\r
+ EFI_EVENT Event;\r
} EMMC_REQUEST;\r
\r
#define EMMC_REQUEST_FROM_LINK(a) \\r
CR(a, EMMC_REQUEST, Link, EMMC_REQUEST_SIGNATURE)\r
\r
typedef struct {\r
- UINT32 Signature;\r
- BOOLEAN Enable;\r
- EMMC_PARTITION_TYPE PartitionType;\r
- EFI_HANDLE Handle;\r
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
- EFI_BLOCK_IO_PROTOCOL BlockIo;\r
- EFI_BLOCK_IO2_PROTOCOL BlockIo2;\r
- EFI_BLOCK_IO_MEDIA BlockMedia;\r
- EFI_STORAGE_SECURITY_COMMAND_PROTOCOL StorageSecurity;\r
- EFI_ERASE_BLOCK_PROTOCOL EraseBlock;\r
- EFI_DISK_INFO_PROTOCOL DiskInfo;\r
-\r
- LIST_ENTRY Queue;\r
-\r
- EMMC_DEVICE *Device;\r
+ UINT32 Signature;\r
+ BOOLEAN Enable;\r
+ EMMC_PARTITION_TYPE PartitionType;\r
+ EFI_HANDLE Handle;\r
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
+ EFI_BLOCK_IO_PROTOCOL BlockIo;\r
+ EFI_BLOCK_IO2_PROTOCOL BlockIo2;\r
+ EFI_BLOCK_IO_MEDIA BlockMedia;\r
+ EFI_STORAGE_SECURITY_COMMAND_PROTOCOL StorageSecurity;\r
+ EFI_ERASE_BLOCK_PROTOCOL EraseBlock;\r
+ EFI_DISK_INFO_PROTOCOL DiskInfo;\r
+\r
+ LIST_ENTRY Queue;\r
+\r
+ EMMC_DEVICE *Device;\r
} EMMC_PARTITION;\r
\r
//\r
// Up to 6 slots per EMMC PCI host controller\r
//\r
-#define EMMC_MAX_DEVICES 6\r
+#define EMMC_MAX_DEVICES 6\r
//\r
// Up to 8 partitions per EMMC device.\r
//\r
-#define EMMC_MAX_PARTITIONS 8\r
-#define EMMC_MODEL_NAME_MAX_LEN 32\r
+#define EMMC_MAX_PARTITIONS 8\r
+#define EMMC_MODEL_NAME_MAX_LEN 32\r
\r
struct _EMMC_DEVICE {\r
- EFI_HANDLE Handle;\r
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
- UINT8 Slot;\r
- BOOLEAN SectorAddressing;\r
-\r
- EMMC_PARTITION Partition[EMMC_MAX_PARTITIONS];\r
- EMMC_CSD Csd;\r
- EMMC_CID Cid;\r
- EMMC_EXT_CSD ExtCsd;\r
- EFI_UNICODE_STRING_TABLE *ControllerNameTable;\r
+ EFI_HANDLE Handle;\r
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
+ UINT8 Slot;\r
+ BOOLEAN SectorAddressing;\r
+\r
+ EMMC_PARTITION Partition[EMMC_MAX_PARTITIONS];\r
+ EMMC_CSD Csd;\r
+ EMMC_CID Cid;\r
+ EMMC_EXT_CSD ExtCsd;\r
+ EFI_UNICODE_STRING_TABLE *ControllerNameTable;\r
//\r
// The model name consists of three fields in CID register\r
// 1) OEM/Application ID (2 bytes)\r
// 3) Product Serial Number (4 bytes)\r
// The delimiters of these fields are whitespace.\r
//\r
- CHAR16 ModelName[EMMC_MODEL_NAME_MAX_LEN];\r
- EMMC_DRIVER_PRIVATE_DATA *Private;\r
-} ;\r
+ CHAR16 ModelName[EMMC_MODEL_NAME_MAX_LEN];\r
+ EMMC_DRIVER_PRIVATE_DATA *Private;\r
+};\r
\r
//\r
// EMMC DXE driver private data structure\r
//\r
struct _EMMC_DRIVER_PRIVATE_DATA {\r
- EFI_SD_MMC_PASS_THRU_PROTOCOL *PassThru;\r
- EFI_HANDLE Controller;\r
- EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath;\r
- EFI_HANDLE DriverBindingHandle;\r
+ EFI_SD_MMC_PASS_THRU_PROTOCOL *PassThru;\r
+ EFI_HANDLE Controller;\r
+ EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath;\r
+ EFI_HANDLE DriverBindingHandle;\r
\r
- EMMC_DEVICE Device[EMMC_MAX_DEVICES];\r
-} ;\r
+ EMMC_DEVICE Device[EMMC_MAX_DEVICES];\r
+};\r
\r
/**\r
Tests to see if this driver supports a given controller. If a child device is provided,\r
EFI_STATUS\r
EFIAPI\r
EmmcDxeDriverBindingSupported (\r
- IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
- IN EFI_HANDLE Controller,\r
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
+ IN EFI_HANDLE Controller,\r
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
EmmcDxeDriverBindingStart (\r
- IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
- IN EFI_HANDLE Controller,\r
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
+ IN EFI_HANDLE Controller,\r
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
EmmcDxeDriverBindingStop (\r
- IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
- IN EFI_HANDLE Controller,\r
- IN UINTN NumberOfChildren,\r
- IN EFI_HANDLE *ChildHandleBuffer\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
+ IN EFI_HANDLE Controller,\r
+ IN UINTN NumberOfChildren,\r
+ IN EFI_HANDLE *ChildHandleBuffer\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
EmmcDxeComponentNameGetControllerName (\r
- IN EFI_COMPONENT_NAME_PROTOCOL *This,\r
- IN EFI_HANDLE ControllerHandle,\r
- IN EFI_HANDLE ChildHandle OPTIONAL,\r
- IN CHAR8 *Language,\r
- OUT CHAR16 **ControllerName\r
+ IN EFI_COMPONENT_NAME_PROTOCOL *This,\r
+ IN EFI_HANDLE ControllerHandle,\r
+ IN EFI_HANDLE ChildHandle OPTIONAL,\r
+ IN CHAR8 *Language,\r
+ OUT CHAR16 **ControllerName\r
);\r
\r
/**\r
**/\r
EFI_STATUS\r
EmmcSelect (\r
- IN EMMC_DEVICE *Device,\r
- IN UINT16 Rca\r
+ IN EMMC_DEVICE *Device,\r
+ IN UINT16 Rca\r
);\r
\r
/**\r
**/\r
EFI_STATUS\r
EmmcSendStatus (\r
- IN EMMC_DEVICE *Device,\r
- IN UINT16 Rca,\r
- OUT UINT32 *DevStatus\r
+ IN EMMC_DEVICE *Device,\r
+ IN UINT16 Rca,\r
+ OUT UINT32 *DevStatus\r
);\r
\r
/**\r
**/\r
EFI_STATUS\r
EmmcGetCsd (\r
- IN EMMC_DEVICE *Device,\r
- IN UINT16 Rca,\r
- OUT EMMC_CSD *Csd\r
+ IN EMMC_DEVICE *Device,\r
+ IN UINT16 Rca,\r
+ OUT EMMC_CSD *Csd\r
);\r
\r
/**\r
**/\r
EFI_STATUS\r
EmmcGetCid (\r
- IN EMMC_DEVICE *Device,\r
- IN UINT16 Rca,\r
- OUT EMMC_CID *Cid\r
+ IN EMMC_DEVICE *Device,\r
+ IN UINT16 Rca,\r
+ OUT EMMC_CID *Cid\r
);\r
\r
/**\r
**/\r
EFI_STATUS\r
EmmcGetExtCsd (\r
- IN EMMC_DEVICE *Device,\r
- OUT EMMC_EXT_CSD *ExtCsd\r
+ IN EMMC_DEVICE *Device,\r
+ OUT EMMC_EXT_CSD *ExtCsd\r
);\r
\r
#endif\r
-\r