#/* @file
#  Copyright (c) 2015, ARM Limited. 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     = 0x00010006
  BASE_NAME       = LinuxLoader
  MODULE_UNI_FILE = LinuxLoader.uni
  FILE_GUID       = 701f54f2-0d70-4b89-bc0a-d9ca25379059
  MODULE_TYPE     = UEFI_APPLICATION
  VERSION_STRING  = 0.1
  ENTRY_POINT     = LinuxLoaderEntryPoint

[Sources]
  LinuxLoader.c
  LinuxLoader.h
  LinuxLoader.uni
  LinuxLoaderFdt.c
  LinuxLoaderHelper.c
  LinuxLoaderEfiApp.c
  LinuxLoaderShellApp.c

[Sources.AARCH64]
  AArch64/LinuxStarter.c
  AArch64/LinuxStarterHelper.S

[Sources.ARM]
  Arm/LinuxAtag.h
  Arm/LinuxAtag.c
  Arm/LinuxStarter.c

[Packages]
  ArmPkg/ArmPkg.dec
  EmbeddedPkg/EmbeddedPkg.dec
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec
  ShellPkg/ShellPkg.dec

[Guids]
  gFdtTableGuid

[Guids]
  gArmMpCoreInfoGuid

[LibraryClasses]
  ArmLib
  BdsLib
  DebugLib
  DxeServicesTableLib
  FdtLib
  HiiLib
  HobLib
  PerformanceLib
  ShellLib
  SerialPortLib
  TimerLib
  UefiApplicationEntryPoint
  UefiLib

[LibraryClasses.AARCH64]
  ArmGicLib
  PcdLib

[Protocols]
  gEfiLoadedImageProtocolGuid
  gEfiDevicePathToTextProtocolGuid
  gEfiShellParametersProtocolGuid

[FeaturePcd]
  gArmTokenSpaceGuid.PcdArmLinuxSpinTable

[FixedPcd]
  gArmTokenSpaceGuid.PcdArmLinuxFdtMaxOffset
  gArmTokenSpaceGuid.PcdArmLinuxFdtAlignment
  gArmTokenSpaceGuid.PcdArmLinuxKernelMaxOffset

[FixedPcd.ARM]
  gArmTokenSpaceGuid.PcdArmLinuxAtagMaxOffset

[Pcd.AARCH64]
  gArmTokenSpaceGuid.PcdGicDistributorBase
  gArmTokenSpaceGuid.PcdGicSgiIntId
