UsbPolicy.h 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. /*++
  2. Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>
  3. SPDX-License-Identifier: BSD-2-Clause-Patent
  4. Module Name:
  5. UsbPolicy.h
  6. Abstract:
  7. --*/
  8. #ifndef _USB_POLICY_H_
  9. #define _USB_POLICY_H_
  10. EFI_FORWARD_DECLARATION (EFI_USB_POLICY_PROTOCOL);
  11. #define USB_POLICY_GUID \
  12. {\
  13. 0xf617b358, 0x12cf, 0x414a, 0xa0, 0x69, 0x60, 0x67, 0x7b, 0xda, 0x13, 0xb4\
  14. }
  15. #define TIANO_CODE_BASE 0x00
  16. #define ICBD_CODE_BASE 0x01
  17. #define ATUO_TYPE 0x00
  18. #define USB_FDD_TYPE 0x01
  19. #define HDD_TYPE 0x02
  20. #define ZIP_TYPE 0x03
  21. #define CDROM_TYPE 0x04
  22. #define SIZE_TYPE 0x05
  23. #define ZIP_FDD 0x80
  24. #define FDD_EMULATION 0x00
  25. #define HDD_EMULATION 0x01
  26. #define HIGH_SPEED 0x00
  27. #define FULL_SPEED 0x01
  28. #define SUPER_SPEED 0x02
  29. #define LEGACY_KB_EN 0x01
  30. #define LEGACY_KB_DIS 0x00
  31. #define LEGACY_MS_EN 0x01
  32. #define LEGACY_MS_DIS 0x00
  33. #define LEGACY_USB_EN 0x00
  34. #define LEGACY_USB_DIS 0x01
  35. #define LEGACY_FREE_SUPP 0x01
  36. #define LEGACY_FREE_UN_SUPP 0x00
  37. #define LEGACY_PERIOD_SUPP 0x01
  38. #define LEGACY_PERIOD_UN_SUPP 0x00
  39. #define LEGACY_USB_TIME_TUE_ENABLE 0x01
  40. #define LEGACY_USB_TIME_TUE_DISABLE 0x00
  41. #define USB_HAVE_HUB_INTERNEL 0x01
  42. #define USB_NOT_HAVE_HUB_INTERNEL 0x00
  43. #define USB_POLICY_PROTOCOL_REVISION_1 1
  44. #define USB_POLICY_PROTOCOL_REVISION_2 2
  45. #ifndef __GNUC__
  46. #pragma warning ( disable : 4306 )
  47. #pragma warning ( disable : 4054 )
  48. #endif
  49. #define GET_USB_CFG (UsbCfg);\
  50. do{\
  51. UINT16 *pSegOfEbda;\
  52. UINT32 mToEbda;\
  53. pSegOfEbda = (UINT16 *)(UINTN)0x40E;\
  54. mToEbda = (UINT32)(((UINTN)(*pSegOfEbda) << 4) + 0x80);\
  55. UsbCfg = (USB_CFG *)(UINTN)mToEbda;\
  56. }while(0);
  57. #pragma pack(1)
  58. typedef struct {
  59. UINT8 HasUSBKeyboard:1;
  60. UINT8 HasUSBMouse:1;
  61. UINT8 LegacyFreeSupport:1;
  62. UINT8 UsbOperationMode:1;
  63. UINT8 LegacyKBEnable:1;
  64. UINT8 LegacyMSEnable:1;
  65. UINT8 USBPeriodSupport:1;
  66. UINT8 Reserved:1;
  67. } USB_DEVICE_INFOR;
  68. typedef struct {
  69. UINT8 Codebase;
  70. UINT8 USBHDDForceType;
  71. UINT8 Configurated;
  72. UINT8 LpcAcpiBase;
  73. UINT8 AcpiTimerReg;
  74. UINT8 Reserved1[0x01];
  75. UINT8 LegacyUsbEnable;
  76. USB_DEVICE_INFOR UsbDeviceInfor;
  77. UINT16 UsbEmulationSize;
  78. UINT8 Reserved2[0x06];
  79. } USB_CFG;
  80. #pragma pack()
  81. typedef struct _EFI_USB_POLICY_PROTOCOL{
  82. UINT8 Version;
  83. UINT8 UsbMassStorageEmulationType; // 1: FDD_Type; 2: HDD_Type; other:Auto_Type*
  84. UINT8 UsbOperationMode; // 0: High_Speed; 1: Full_Speed;
  85. UINT8 LegacyKBEnable; // 0: Disabled; 1: Enabled*
  86. UINT8 LegacyMSEnable; // 0: Disabled; 1: Enabled*
  87. UINT8 USBPeriodSupport; // 0; Unsupport; 1: Support
  88. UINT8 LegacyUsbEnable; // 1: Disabled; 0: Enabled*
  89. UINT8 LegacyFreeSupport; // 0: Unsupport; 1: Support
  90. UINT8 CodeBase;
  91. UINT8 LpcAcpiBase; // 40h(default)
  92. UINT8 AcpiTimerReg;
  93. UINT8 UsbTimeTue;
  94. UINT8 InternelHubExist; // 1: Host have internel hub on board; 0: No internel hub on board
  95. UINT8 EnumWaitPortStableStall; // Value for wait port stable when enum a new dev.
  96. UINT16 UsbEmulationSize; // Mbytes.
  97. UINT8 UsbZipEmulationType;
  98. UINT8 Reserved[3]; // Reserved fields for future expansion w/o protocol change
  99. } EFI_USB_POLICY_PROTOCOL;
  100. extern EFI_GUID gUsbPolicyGuid;
  101. #endif