## @file
#  Debug Communication Library instance based on usb3 debug port.
#
#  Copyright (c) 2014 - 2015, Intel Corporation. All rights reserved.<BR>
#
#  This program and the accompanying materials
#  are licensed and made available under the terms and conditions of the BSD License
#  which accompanies this distribution. The full text of the license may be found at
#  http://opensource.org/licenses/bsd-license.php.
#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
#
##

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = DebugCommunicationLibUsb3Dxe
  MODULE_UNI_FILE                = DebugCommunicationLibUsb3Dxe.uni
  FILE_GUID                      = C41F8C82-B3E6-47e0-A61D-0F9E429E6996
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = DebugCommunicationLib|DXE_CORE DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER SMM_CORE

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 IPF
#

[Sources]
  DebugCommunicationLibUsb3Dxe.c
  DebugCommunicationLibUsb3Transfer.c
  DebugCommunicationLibUsb3Common.c
  DebugCommunicationLibUsb3Internal.h

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec
  IntelFrameworkPkg/IntelFrameworkPkg.dec
  SourceLevelDebugPkg/SourceLevelDebugPkg.dec

[Pcd]
  # The memory BAR of ehci host controller, in which usb debug feature is enabled.
  # Note that the memory BAR address is only used before Pci bus resource allocation.
  gEfiSourceLevelDebugPkgTokenSpaceGuid.PcdUsbXhciMemorySpaceBase          ## SOMETIMES_CONSUMES

  # The pci address of ehci host controller, in which usb debug feature is enabled.
  # The format of pci address please refer to SourceLevelDebugPkg.dec
  gEfiSourceLevelDebugPkgTokenSpaceGuid.PcdUsbXhciPciAddress               ## CONSUMES

  # Per XHCI spec, software shall impose a timeout between the detection of the Debug Host 
  # connection and the DbC Run transition to 1. This PCD specifies the timeout value in microsecond.
  gEfiSourceLevelDebugPkgTokenSpaceGuid.PcdUsbXhciDebugDetectTimeout       ## SOMETIMES_CONSUMES

  # The value of data buffer size used for USB debug port handle.
  # It should be equal to sizeof (USB3_DEBUG_PORT_HANDLE).
  gEfiSourceLevelDebugPkgTokenSpaceGuid.PcdDebugPortHandleBufferSize|239   ## SOMETIMES_CONSUMES

[LibraryClasses]
  BaseLib
  PcdLib
  IoLib
  PciLib
  TimerLib
  UefiBootServicesTableLib
  UefiLib
  BaseMemoryLib
  