]> git.proxmox.com Git - mirror_edk2.git/blobdiff - SourceLevelDebugPkg/Library/DebugCommunicationLibUsb3/DebugCommunicationLibUsb3Internal.h
SourceLevelDebugPkg DebugUsb3: Support IOMMU
[mirror_edk2.git] / SourceLevelDebugPkg / Library / DebugCommunicationLibUsb3 / DebugCommunicationLibUsb3Internal.h
index 356485c5f6973fa0150406a7b56115d9ab8a19ab..66757dafaebe7e9b916ad66f5e46d3d5b10e2474 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   Debug Port Library implementation based on usb3 debug port.\r
 \r
-  Copyright (c) 2014 - 2015, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2014 - 2018, Intel Corporation. All rights reserved.<BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
@@ -46,6 +46,7 @@
 #define USB3DBG_DBG_CAB       1   // The XHCI host controller supports debug capability\r
 #define USB3DBG_ENABLED       2   // The XHCI debug device is enabled\r
 #define USB3DBG_NOT_ENABLED   4   // The XHCI debug device is not enabled\r
+#define USB3DBG_UNINITIALIZED 255 // The XHCI debug device is uninitialized\r
 \r
 #define USB3_DEBUG_PORT_WRITE_MAX_PACKET_SIZE 0x08\r
 \r
@@ -456,7 +457,7 @@ typedef struct _USB3_DEBUG_PORT_INSTANCE {
   UINT8                                   Initialized;\r
 \r
   //\r
-  // The flag indicates debug device is ready\r
+  // The flag indicates debug capability is supported\r
   //\r
   BOOLEAN                                 DebugSupport;\r
   \r
@@ -465,6 +466,26 @@ typedef struct _USB3_DEBUG_PORT_INSTANCE {
   //\r
   BOOLEAN                                 Ready;\r
 \r
+  //\r
+  // The flag indicates the instance is from HOB\r
+  //\r
+  BOOLEAN                                 FromHob;\r
+\r
+  //\r
+  // IOMMU PPI Notify registered\r
+  //\r
+  BOOLEAN                                 PpiNotifyRegistered;\r
+\r
+  //\r
+  // Prevent notification being interrupted by debug timer\r
+  //\r
+  BOOLEAN                                 InNotify;\r
+\r
+  //\r
+  // PciIo protocol event\r
+  //\r
+  EFI_PHYSICAL_ADDRESS                    PciIoEvent;\r
+\r
   //\r
   // The flag indicates if USB 3.0 ports has been turn off/on power\r
   //  \r
@@ -728,4 +749,39 @@ XhcDataTransfer (
   IN     UINTN                               Timeout\r
   );\r
 \r
+/**\r
+  Initialize usb debug port hardware.\r
+\r
+  @param  Handle           Debug port handle.\r
+\r
+  @retval TRUE             The usb debug port hardware configuration is changed.\r
+  @retval FALSE            The usb debug port hardware configuration is not changed.\r
+\r
+**/\r
+RETURN_STATUS\r
+EFIAPI\r
+InitializeUsbDebugHardware (\r
+  IN USB3_DEBUG_PORT_HANDLE *Handle\r
+  );\r
+\r
+/**\r
+  Discover and initialize usb debug port.\r
+\r
+  @param Handle                  Debug port handle.\r
+\r
+**/\r
+VOID\r
+DiscoverInitializeUsbDebugPort (\r
+  IN USB3_DEBUG_PORT_HANDLE     *Handle\r
+  );\r
+\r
+/**\r
+  Return USB3 debug instance address.\r
+\r
+**/  \r
+USB3_DEBUG_PORT_HANDLE *\r
+GetUsb3DebugPortInstance (\r
+  VOID\r
+  );\r
+\r
 #endif //__SERIAL_PORT_LIB_USB__\r