46#define EHC_1_MICROSECOND 1
47#define EHC_1_MILLISECOND (1000 * EHC_1_MICROSECOND)
48#define EHC_1_SECOND (1000 * EHC_1_MILLISECOND)
53#define EHC_RESET_TIMEOUT (1 * EHC_1_SECOND)
54#define EHC_GENERIC_TIMEOUT (10 * EHC_1_MILLISECOND)
59#define EHC_ROOT_PORT_RECOVERY_STALL (20 * EHC_1_MILLISECOND)
65#define EHC_SYNC_POLL_INTERVAL (1 * EHC_1_MILLISECOND)
66#define EHC_ASYNC_POLL_INTERVAL EFI_TIMER_PERIOD_MILLISECONDS(1)
71#define USB_DEBUG_PORT_IN_USE BIT10
72#define USB_DEBUG_PORT_ENABLE BIT28
73#define USB_DEBUG_PORT_OWNER BIT30
74#define USB_DEBUG_PORT_IN_USE_MASK (USB_DEBUG_PORT_IN_USE | \
81#define EHC_TPL TPL_NOTIFY
83#define EFI_LIST_CONTAINER(Entry, Type, Field) BASE_CR(Entry, Type, Field)
85#define EHC_LOW_32BIT(Addr64) ((UINT32)(((UINTN)(Addr64)) & 0XFFFFFFFF))
86#define EHC_HIGH_32BIT(Addr64) ((UINT32)(RShiftU64((UINTN)(Addr64), 32) & 0XFFFFFFFF))
87#define EHC_BIT_IS_SET(Data, Bit) ((BOOLEAN)(((Data) & (Bit)) == (Bit)))
89#define EHC_REG_BIT_IS_SET(Ehc, Offset, Bit) \
90 (EHC_BIT_IS_SET(EhcReadOpReg ((Ehc), (Offset)), (Bit)))
92#define USB2_HC_DEV_SIGNATURE SIGNATURE_32 ('e', 'h', 'c', 'i')
93#define EHC_FROM_THIS(a) CR(a, USB2_HC_DEV, Usb2Hc, USB2_HC_DEV_SIGNATURE)
101 UINT64 OriginalPciAttributes;
133 VOID *PeriodFrameHost;
134 VOID *PeriodFrameMap;
142 UINT32 HcStructParams;
154 UINT16 DebugPortOffset;
155 UINT8 DebugPortBarNum;
158 BOOLEAN Support64BitDma;
EFI_STATUS EFIAPI EhcDriverBindingSupported(IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE Controller, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath)
EFI_STATUS EFIAPI EhcDriverBindingStop(IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE Controller, IN UINTN NumberOfChildren, IN EFI_HANDLE *ChildHandleBuffer)
EFI_STATUS EFIAPI EhcDriverBindingStart(IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE Controller, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath)