## @file
#  This driver installs SMBIOS information for OVMF on Xen
#
#  Copyright (C) 2021, Red Hat, Inc.
#  Copyright (c) 2011, Bei Guan <gbtju85@gmail.com>
#  Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR>
#
#  SPDX-License-Identifier: BSD-2-Clause-Patent
#
##

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = XenSmbiosPlatformDxe
  FILE_GUID                      = c41f0579-5598-40f1-95db-3983c8ebbe2a
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0

  ENTRY_POINT                    = XenSmbiosTablePublishEntry

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 EBC ARM AARCH64
#

[Sources]
  SmbiosPlatformDxe.c
  SmbiosPlatformDxe.h
  Xen.c
  XenSmbiosPlatformDxe.h

[Sources.IA32, Sources.X64]
  X86Xen.c

[Sources.ARM, Sources.AARCH64]
  ArmXen.c

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec

[Packages.IA32, Packages.X64]
  OvmfPkg/OvmfPkg.dec

[LibraryClasses]
  BaseLib
  BaseMemoryLib
  DebugLib
  UefiBootServicesTableLib
  UefiDriverEntryPoint

[LibraryClasses.IA32, LibraryClasses.X64]
  HobLib

[Pcd]
  gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVendor
  gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVersionString
  gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareReleaseDateString

[Protocols]
  gEfiSmbiosProtocolGuid                      # PROTOCOL ALWAYS_CONSUMED

[Guids.IA32, Guids.X64]
  gEfiXenInfoGuid

[Depex]
  gEfiSmbiosProtocolGuid

