## @file
# Legacy Bios Module to support CSM.
#
# This driver installs Legacy Bios Protocol to support CSM module work in EFI system.
#
# Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
##

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = LegacyBiosDxe
  MODULE_UNI_FILE                = LegacyBiosDxe.uni
  FILE_GUID                      = 46482D14-7CA1-4977-9DDB-64D747E13DE6
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0

  ENTRY_POINT                    = LegacyBiosInstall

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64
#

[Sources]
  LegacyCmos.c
  LegacyIde.c
  LegacyBios.c
  LegacyBda.c
  LegacyBiosInterface.h
  LegacyPci.c

[Sources.Ia32]
  IA32/InterruptTable.nasm
  Thunk.c
  LegacyBootSupport.c
  LegacyBbs.c
  LegacySio.c

[Sources.X64]
  X64/InterruptTable.nasm
  Thunk.c
  LegacyBootSupport.c
  LegacyBbs.c
  LegacySio.c

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec
  OvmfPkg/OvmfPkg.dec

[LibraryClasses]
  DevicePathLib
  UefiBootServicesTableLib
  MemoryAllocationLib
  UefiDriverEntryPoint
  BaseMemoryLib
  UefiLib
  DebugLib
  DxeServicesTableLib
  PcdLib
  ReportStatusCodeLib
  DebugAgentLib

[LibraryClasses.IA32]
  IoLib
  HobLib
  UefiRuntimeServicesTableLib
  BaseLib

[LibraryClasses.X64]
  IoLib
  HobLib
  UefiRuntimeServicesTableLib
  BaseLib

[Guids]
  gEfiDiskInfoIdeInterfaceGuid                  ## SOMETIMES_CONSUMES ##GUID #Used in LegacyBiosBuildIdeData() to assure device is a disk
  gEfiSmbiosTableGuid                           ## SOMETIMES_CONSUMES ##SystemTable
  gEfiLegacyBiosGuid                            ## SOMETIMES_CONSUMES ##GUID #Used in LegacyBiosInstallVgaRom() to locate handle buffer
  gEfiEndOfDxeEventGroupGuid                    ## CONSUMES

[Guids.IA32]
  gEfiAcpi20TableGuid                           ## SOMETIMES_CONSUMES ##SystemTable
  gEfiAcpi10TableGuid                           ## SOMETIMES_CONSUMES ##SystemTable

[Guids.X64]
  gEfiAcpi20TableGuid                           ## SOMETIMES_CONSUMES ##SystemTable
  gEfiAcpi10TableGuid                           ## SOMETIMES_CONSUMES ##SystemTable


[Protocols]
  gEfiLoadedImageProtocolGuid                   ## SOMETIMES_CONSUMES
  gEfiDevicePathProtocolGuid                    ## SOMETIMES_CONSUMES
  gEfiPciRootBridgeIoProtocolGuid               ## SOMETIMES_CONSUMES
  gEfiCpuArchProtocolGuid                       ## CONSUMES
  gEfiTimerArchProtocolGuid                     ## CONSUMES
  gEfiIsaIoProtocolGuid                         ## SOMETIMES_CONSUMES
  gEfiBlockIoProtocolGuid                       ## SOMETIMES_CONSUMES
  gEfiPciIoProtocolGuid                         ## SOMETIMES_CONSUMES
  gEfiGenericMemTestProtocolGuid                ## CONSUMES
  gEfiDiskInfoProtocolGuid                      ## SOMETIMES_CONSUMES
  gEfiSimpleTextInProtocolGuid                  ## SOMETIMES_CONSUMES
  gEfiLegacy8259ProtocolGuid                    ## CONSUMES
  gEfiLegacyBiosPlatformProtocolGuid            ## CONSUMES
  gEfiLegacyInterruptProtocolGuid               ## CONSUMES
  gEfiLegacyRegion2ProtocolGuid                 ## CONSUMES
  gEfiLegacyBiosProtocolGuid                    ## PRODUCES
  gEfiSerialIoProtocolGuid                      ## CONSUMES
  gEfiSioProtocolGuid                           ## CONSUMES
  gEdkiiIoMmuProtocolGuid                       ## CONSUMES

[Pcd]
  gUefiOvmfPkgTokenSpaceGuid.PcdLegacyBiosCacheLegacyRegion  ## CONSUMES
  gUefiOvmfPkgTokenSpaceGuid.PcdEbdaReservedMemorySize       ## CONSUMES
  gUefiOvmfPkgTokenSpaceGuid.PcdEndOpromShadowAddress        ## SOMETIMES_CONSUMES
  gUefiOvmfPkgTokenSpaceGuid.PcdLowPmmMemorySize             ## CONSUMES
  gUefiOvmfPkgTokenSpaceGuid.PcdHighPmmMemorySize            ## CONSUMES
  gUefiOvmfPkgTokenSpaceGuid.PcdOpromReservedMemoryBase      ## CONSUMES
  gUefiOvmfPkgTokenSpaceGuid.PcdOpromReservedMemorySize      ## CONSUMES

[Depex]
  gEfiLegacyRegion2ProtocolGuid AND gEfiLegacyInterruptProtocolGuid AND gEfiLegacyBiosPlatformProtocolGuid AND gEfiLegacy8259ProtocolGuid AND gEfiGenericMemTestProtocolGuid AND gEfiCpuArchProtocolGuid AND gEfiTimerArchProtocolGuid AND gEfiVariableWriteArchProtocolGuid

[UserExtensions.TianoCore."ExtraFiles"]
  LegacyBiosDxeExtra.uni
