## @file
#  Debug Communication Library instance based on usb debug port.
#
#  Copyright (c) 2010, 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                      = DebugCommunicationLibUsb
  FILE_GUID                      = 87438836-AD8D-4e3e-9249-895120A67240
  MODULE_TYPE                    = BASE
  VERSION_STRING                 = 0.7
  LIBRARY_CLASS                  = DebugCommunicationLib

#
#  VALID_ARCHITECTURES           = IA32 X64
#

[Sources.common]
  DebugCommunicationLibUsb.c

[Packages]
  MdePkg/MdePkg.dec
  SourceLevelDebugPkg/SourceLevelDebugPkg.dec

[Pcd]
  ## The memory BAR of usb debug port, it may be different with the memory bar of ehci host controller.
  ## Note that the memory BAR address is only used before Pci bus resource allocation.
  gEfiSourceLevelDebugPkgTokenSpaceGuid.PcdUsbDebugPortMemorySpaceBase

  ## 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.PcdUsbEhciMemorySpaceBase

  ## 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.PcdUsbEhciPciAddress

[LibraryClasses]
  TimerLib
  IoLib
  PciLib
  PcdLib

