#ifndef _PEI_USB_PEIM_H_\r
#define _PEI_USB_PEIM_H_\r
\r
-\r
#include <PiPei.h>\r
\r
#include <Ppi/UsbHostController.h>\r
//\r
#pragma pack(1)\r
typedef struct {\r
- UINT8 Len;\r
- UINT8 Type;\r
+ UINT8 Len;\r
+ UINT8 Type;\r
} USB_DESC_HEAD;\r
#pragma pack()\r
\r
-#define MAX_INTERFACE 8\r
-#define MAX_ENDPOINT 16\r
+#define MAX_INTERFACE 8\r
+#define MAX_ENDPOINT 16\r
\r
#define PEI_USB_DEVICE_SIGNATURE SIGNATURE_32 ('U', 's', 'b', 'D')\r
typedef struct {\r
- UINTN Signature;\r
- PEI_USB_IO_PPI UsbIoPpi;\r
- EFI_PEI_PPI_DESCRIPTOR UsbIoPpiList;\r
- UINT16 MaxPacketSize0;\r
- UINT16 DataToggle;\r
- UINT8 DeviceAddress;\r
- UINT8 DeviceSpeed;\r
- UINT8 IsHub;\r
- UINT8 DownStreamPortNo;\r
- UINTN AllocateAddress;\r
- PEI_USB_HOST_CONTROLLER_PPI *UsbHcPpi;\r
- PEI_USB2_HOST_CONTROLLER_PPI *Usb2HcPpi;\r
- UINT8 ConfigurationData[1024];\r
- EFI_USB_CONFIG_DESCRIPTOR *ConfigDesc;\r
- EFI_USB_INTERFACE_DESCRIPTOR *InterfaceDesc;\r
- EFI_USB_INTERFACE_DESCRIPTOR *InterfaceDescList[MAX_INTERFACE];\r
- EFI_USB_ENDPOINT_DESCRIPTOR *EndpointDesc[MAX_ENDPOINT];\r
- EFI_USB_ENDPOINT_DESCRIPTOR *EndpointDescList[MAX_INTERFACE][MAX_ENDPOINT];\r
- EFI_USB2_HC_TRANSACTION_TRANSLATOR Translator;\r
- UINT8 Tier;\r
+ UINTN Signature;\r
+ PEI_USB_IO_PPI UsbIoPpi;\r
+ EFI_PEI_PPI_DESCRIPTOR UsbIoPpiList;\r
+ UINT16 MaxPacketSize0;\r
+ UINT16 DataToggle;\r
+ UINT8 DeviceAddress;\r
+ UINT8 DeviceSpeed;\r
+ UINT8 IsHub;\r
+ UINT8 DownStreamPortNo;\r
+ UINTN AllocateAddress;\r
+ PEI_USB_HOST_CONTROLLER_PPI *UsbHcPpi;\r
+ PEI_USB2_HOST_CONTROLLER_PPI *Usb2HcPpi;\r
+ UINT8 ConfigurationData[1024];\r
+ EFI_USB_CONFIG_DESCRIPTOR *ConfigDesc;\r
+ EFI_USB_INTERFACE_DESCRIPTOR *InterfaceDesc;\r
+ EFI_USB_INTERFACE_DESCRIPTOR *InterfaceDescList[MAX_INTERFACE];\r
+ EFI_USB_ENDPOINT_DESCRIPTOR *EndpointDesc[MAX_ENDPOINT];\r
+ EFI_USB_ENDPOINT_DESCRIPTOR *EndpointDescList[MAX_INTERFACE][MAX_ENDPOINT];\r
+ EFI_USB2_HC_TRANSACTION_TRANSLATOR Translator;\r
+ UINT8 Tier;\r
} PEI_USB_DEVICE;\r
\r
-#define PEI_USB_DEVICE_FROM_THIS(a) CR (a, PEI_USB_DEVICE, UsbIoPpi, PEI_USB_DEVICE_SIGNATURE)\r
+#define PEI_USB_DEVICE_FROM_THIS(a) CR (a, PEI_USB_DEVICE, UsbIoPpi, PEI_USB_DEVICE_SIGNATURE)\r
\r
-#define USB_BIT_IS_SET(Data, Bit) ((BOOLEAN)(((Data) & (Bit)) == (Bit)))\r
+#define USB_BIT_IS_SET(Data, Bit) ((BOOLEAN)(((Data) & (Bit)) == (Bit)))\r
\r
-#define USB_BUS_1_MILLISECOND 1000\r
+#define USB_BUS_1_MILLISECOND 1000\r
\r
//\r
// Wait for port reset, refers to specification\r
// According to USB2.0, Chapter 11.5.1.5 Resetting,\r
// the worst case for TDRST is 20ms\r
//\r
-#define USB_SET_PORT_RESET_STALL (20 * USB_BUS_1_MILLISECOND)\r
-#define USB_SET_ROOT_PORT_RESET_STALL (50 * USB_BUS_1_MILLISECOND)\r
+#define USB_SET_PORT_RESET_STALL (20 * USB_BUS_1_MILLISECOND)\r
+#define USB_SET_ROOT_PORT_RESET_STALL (50 * USB_BUS_1_MILLISECOND)\r
\r
//\r
// Wait for clear roothub port reset, set by experience\r
//\r
-#define USB_CLR_ROOT_PORT_RESET_STALL (20 * USB_BUS_1_MILLISECOND)\r
+#define USB_CLR_ROOT_PORT_RESET_STALL (20 * USB_BUS_1_MILLISECOND)\r
\r
//\r
// Wait for port statue reg change, set by experience\r
// Host software return timeout if port status doesn't change\r
// after 500ms(LOOP * STALL = 5000 * 0.1ms), set by experience\r
//\r
-#define USB_WAIT_PORT_STS_CHANGE_LOOP 5000\r
+#define USB_WAIT_PORT_STS_CHANGE_LOOP 5000\r
\r
//\r
// Wait for hub port power-on, refers to specification\r
// [USB20-11.23.2]\r
//\r
-#define USB_SET_PORT_POWER_STALL (2 * USB_BUS_1_MILLISECOND)\r
+#define USB_SET_PORT_POWER_STALL (2 * USB_BUS_1_MILLISECOND)\r
\r
//\r
// Wait for set device address, refers to specification\r
// [USB20-9.2.6.3, it says 2ms]\r
//\r
-#define USB_SET_DEVICE_ADDRESS_STALL (2 * USB_BUS_1_MILLISECOND)\r
+#define USB_SET_DEVICE_ADDRESS_STALL (2 * USB_BUS_1_MILLISECOND)\r
\r
//\r
// Wait for get configuration descriptor, set by experience\r
//\r
-#define USB_GET_CONFIG_DESCRIPTOR_STALL (1 * USB_BUS_1_MILLISECOND)\r
+#define USB_GET_CONFIG_DESCRIPTOR_STALL (1 * USB_BUS_1_MILLISECOND)\r
\r
/**\r
Submits control transfer to a target USB device.\r
EFI_STATUS\r
EFIAPI\r
PeiUsbControlTransfer (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN PEI_USB_IO_PPI *This,\r
- IN EFI_USB_DEVICE_REQUEST *Request,\r
- IN EFI_USB_DATA_DIRECTION Direction,\r
- IN UINT32 Timeout,\r
- IN OUT VOID *Data OPTIONAL,\r
- IN UINTN DataLength OPTIONAL\r
+ IN EFI_PEI_SERVICES **PeiServices,\r
+ IN PEI_USB_IO_PPI *This,\r
+ IN EFI_USB_DEVICE_REQUEST *Request,\r
+ IN EFI_USB_DATA_DIRECTION Direction,\r
+ IN UINT32 Timeout,\r
+ IN OUT VOID *Data OPTIONAL,\r
+ IN UINTN DataLength OPTIONAL\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
PeiUsbBulkTransfer (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN PEI_USB_IO_PPI *This,\r
- IN UINT8 DeviceEndpoint,\r
- IN OUT VOID *Data,\r
- IN OUT UINTN *DataLength,\r
- IN UINTN Timeout\r
+ IN EFI_PEI_SERVICES **PeiServices,\r
+ IN PEI_USB_IO_PPI *This,\r
+ IN UINT8 DeviceEndpoint,\r
+ IN OUT VOID *Data,\r
+ IN OUT UINTN *DataLength,\r
+ IN UINTN Timeout\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
PeiUsbGetInterfaceDescriptor (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN PEI_USB_IO_PPI *This,\r
- OUT EFI_USB_INTERFACE_DESCRIPTOR **InterfaceDescriptor\r
+ IN EFI_PEI_SERVICES **PeiServices,\r
+ IN PEI_USB_IO_PPI *This,\r
+ OUT EFI_USB_INTERFACE_DESCRIPTOR **InterfaceDescriptor\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
PeiUsbGetEndpointDescriptor (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN PEI_USB_IO_PPI *This,\r
- IN UINT8 EndpointIndex,\r
- OUT EFI_USB_ENDPOINT_DESCRIPTOR **EndpointDescriptor\r
+ IN EFI_PEI_SERVICES **PeiServices,\r
+ IN PEI_USB_IO_PPI *This,\r
+ IN UINT8 EndpointIndex,\r
+ OUT EFI_USB_ENDPOINT_DESCRIPTOR **EndpointDescriptor\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
PeiUsbPortReset (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN PEI_USB_IO_PPI *This\r
+ IN EFI_PEI_SERVICES **PeiServices,\r
+ IN PEI_USB_IO_PPI *This\r
);\r
\r
/**\r
**/\r
VOID\r
ResetRootPort (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN PEI_USB_HOST_CONTROLLER_PPI *UsbHcPpi,\r
- IN PEI_USB2_HOST_CONTROLLER_PPI *Usb2HcPpi,\r
- IN UINT8 PortNum,\r
- IN UINT8 RetryIndex\r
+ IN EFI_PEI_SERVICES **PeiServices,\r
+ IN PEI_USB_HOST_CONTROLLER_PPI *UsbHcPpi,\r
+ IN PEI_USB2_HOST_CONTROLLER_PPI *Usb2HcPpi,\r
+ IN UINT8 PortNum,\r
+ IN UINT8 RetryIndex\r
);\r
\r
#endif\r