
#/** @file
#
#    Component description file for Bds module
#
#  Copyright (c) 2009, Apple Inc. All rights reserved.<BR>
#
#  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                      = BeagleBoardBds
  FILE_GUID                      = 934431fe-5745-402e-913d-17b4434eb0f3
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0

  ENTRY_POINT                    = BdsInitialize

[Sources.common]
  BdsEntry.c
  FirmwareVolume.c

[Packages]
  MdePkg/MdePkg.dec
  EmbeddedPkg/EmbeddedPkg.dec

[LibraryClasses]
  DevicePathLib
  BaseLib
  HobLib
  UefiRuntimeServicesTableLib
  ReportStatusCodeLib
  PerformanceLib
  DxeServicesTableLib
  MemoryAllocationLib
  UefiLib
  UefiBootServicesTableLib
  BaseMemoryLib
  DebugLib
  PrintLib
  UefiDriverEntryPoint

[Guids]


[Protocols]
  gEfiBdsArchProtocolGuid
  gEfiSimpleTextInProtocolGuid
  gEfiSimpleTextOutProtocolGuid
  gEfiSerialIoProtocolGuid
  gEfiDevicePathProtocolGuid
  gEfiSimpleFileSystemProtocolGuid
  gEfiUsbIoProtocolGuid
  gEfiFirmwareVolume2ProtocolGuid

[Depex]
  TRUE
