## @file
#  Xen ARM ACPI Platform Driver using Xen ARM multiboot protocol
#
#  Copyright (C) 2016, Linaro Ltd. All rights reserved.
#
#  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                      = XenAcpiPlatformDxe
  FILE_GUID                      = 0efc6282-f1e5-469a-8a70-194a8761f9aa
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = XenAcpiPlatformEntryPoint

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = AARCH64
#

[Sources]
  XenAcpiPlatformDxe.c

[Packages]
  ArmVirtPkg/ArmVirtPkg.dec
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec

[LibraryClasses]
  BaseLib
  DebugLib
  UefiBootServicesTableLib
  UefiDriverEntryPoint

[Protocols]
  gEfiAcpiTableProtocolGuid                     ## PROTOCOL ALWAYS_CONSUMED
  gFdtClientProtocolGuid                        ## CONSUMES

[Depex]
  gFdtClientProtocolGuid    AND
  gEfiAcpiTableProtocolGuid
