## @file
# This driver produces Debug Port protocol to be used by debug agent to communicate with the remote debug host.
#
# This driver binds exclusively to a standard UART serial port on the controller handle,
# and initializes serial Io interface, publishs Debug Port and Device Path Protocol.
#
# Copyright (c) 2006 - 2014, 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                      = DebugPortDxe
  MODULE_UNI_FILE                = DebugPortDxe.uni
  FILE_GUID                      = 73E9457A-CEA1-4917-9A9C-9F1F0F0FD322
  MODULE_TYPE                    = UEFI_DRIVER
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = InitializeDebugPortDriver
  UNLOAD_IMAGE                   = ImageUnloadHandler

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
#
#  DRIVER_BINDING                =  gDebugPortDriverBinding
#  COMPONENT_NAME                =  gDebugPortComponentName
#  COMPONENT_NAME2               =  gDebugPortComponentName2
#  Variable Guid C Name: gEfiDebugPortProtocolGuid Variable Name: L"DEBUGPORT"
#
#

[Sources]
  ComponentName.c
  DebugPort.c
  DebugPort.h


[Packages]
  MdePkg/MdePkg.dec


[LibraryClasses]
  DevicePathLib
  UefiRuntimeServicesTableLib
  UefiBootServicesTableLib
  MemoryAllocationLib
  BaseMemoryLib
  UefiLib
  UefiDriverEntryPoint
  DebugLib

[Guids]
  gEfiDebugPortVariableGuid                     ## SOMETIMES_CONSUMES   ## Variable:L"DEBUGPORT"
  gEfiDebugPortDevicePathGuid                   ## SOMETIMES_CONSUMES   ## UNDEFINED # Device path

[Protocols]
  gEfiSerialIoProtocolGuid                      ## TO_START
  gEfiDevicePathProtocolGuid                    ## BY_START
  gEfiDebugPortProtocolGuid                     ## BY_START

[UserExtensions.TianoCore."ExtraFiles"]
  DebugPortDxeExtra.uni
