/** @file\r
\r
+ Provides some data struct used by EHCI controller driver.\r
+\r
Copyright (c) 2006 - 2007, Intel Corporation\r
All rights reserved. This program and the accompanying materials\r
are licensed and made available under the terms and conditions of the BSD License\r
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
\r
-Module Name:\r
-\r
- Ehci.h\r
-\r
-Abstract:\r
-\r
-\r
-Revision History\r
-\r
**/\r
\r
#ifndef _EFI_EHCI_H_\r
#include <Library/UefiLib.h>\r
#include <Library/BaseLib.h>\r
#include <Library/MemoryAllocationLib.h>\r
-\r
+#include <Library/PcdLib.h>\r
\r
#include <IndustryStandard/Pci22.h>\r
\r
#include "EhciSched.h"\r
#include "EhciDebug.h"\r
\r
-enum {\r
- USB2_HC_DEV_SIGNATURE = EFI_SIGNATURE_32 ('e', 'h', 'c', 'i'),\r
- EHC_STALL_1_MICROSECOND = 1,\r
- EHC_STALL_1_MILLISECOND = 1000 * EHC_STALL_1_MICROSECOND,\r
- EHC_STALL_1_SECOND = 1000 * EHC_STALL_1_MILLISECOND,\r
+typedef enum {\r
+ EHC_1_MICROSECOND = 1,\r
+ EHC_1_MILLISECOND = 1000 * EHC_1_MICROSECOND,\r
+ EHC_1_SECOND = 1000 * EHC_1_MILLISECOND,\r
\r
- EHC_SET_PORT_RESET_TIME = 50 * EHC_STALL_1_MILLISECOND,\r
- EHC_CLEAR_PORT_RESET_TIME = EHC_STALL_1_MILLISECOND,\r
- EHC_GENERIC_TIME = 10 * EHC_STALL_1_MILLISECOND,\r
- EHC_SYNC_POLL_TIME = 20 * EHC_STALL_1_MICROSECOND,\r
- EHC_ASYNC_POLL_TIME = 50 * 10000UL, // The unit of time is 100us\r
+ //\r
+ // EHCI register operation timeout, set by experience\r
+ //\r
+ EHC_RESET_TIMEOUT = 1 * EHC_1_SECOND,\r
+ EHC_GENERIC_TIMEOUT = 10 * EHC_1_MILLISECOND,\r
\r
- EHC_TPL = TPL_NOTIFY\r
-};\r
+ //\r
+ // Wait for roothub port power stable, refers to Spec[EHCI1.0-2.3.9]\r
+ //\r
+ EHC_ROOT_PORT_RECOVERY_STALL = 20 * EHC_1_MILLISECOND,\r
+\r
+ //\r
+ // Sync and Async transfer polling interval, set by experience,\r
+ // and the unit of Async is 100us, means 50ms as interval.\r
+ //\r
+ EHC_SYNC_POLL_INTERVAL = 20 * EHC_1_MICROSECOND,\r
+ EHC_ASYNC_POLL_INTERVAL = 50 * 10000U\r
+} EHC_TIMEOUT_EXPERIENCE_VALUE;\r
+\r
+\r
+ //\r
+ // EHC raises TPL to TPL_NOTIFY to serialize all its operations\r
+ // to protect shared data structures.\r
+ //\r
+#define EHC_TPL TPL_NOTIFY\r
+\r
+#define USB2_HC_DEV_SIGNATURE EFI_SIGNATURE_32 ('e', 'h', 'c', 'i')\r
\r
//\r
//Iterate through the doule linked list. NOT delete safe\r
EFI_USB2_HC_PROTOCOL Usb2Hc;\r
\r
EFI_PCI_IO_PROTOCOL *PciIo;\r
+ UINT64 OriginalPciAttributes;\r
USBHC_MEM_POOL *MemPool;\r
\r
//\r