## @file
#  Serial driver that layers on top of a Serial Port Library instance.
#
#  Copyright (c) 2008 - 2015, Intel Corporation. All rights reserved.<BR>
#  SPDX-License-Identifier: BSD-2-Clause-Patent
#
#
##

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = SerialDxe
  MODULE_UNI_FILE                = SerialDxe.uni
  FILE_GUID                      = 9A5163E7-5C29-453F-825C-837A46A81E15
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0

  ENTRY_POINT                    = SerialDxeInitialize

[Sources.common]
  SerialIo.c

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec

[LibraryClasses]
  UefiDriverEntryPoint
  UefiBootServicesTableLib
  DebugLib
  PcdLib
  SerialPortLib

[Protocols]
  gEfiSerialIoProtocolGuid      ## PRODUCES
  gEfiDevicePathProtocolGuid    ## PRODUCES

[Pcd]
  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate         ## CONSUMES
  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultDataBits         ## CONSUMES
  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity           ## CONSUMES
  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultStopBits         ## CONSUMES
  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultReceiveFifoDepth ## CONSUMES

[Depex]
  TRUE

[UserExtensions.TianoCore."ExtraFiles"]
  SerialDxeExtra.uni
