1## @file
2#  Capsule Runtime Driver produces two UEFI capsule runtime services: (UpdateCapsule, QueryCapsuleCapabilities).
3#
4#  It installs the Capsule Architectural Protocol defined in PI1.0a to signify
5#  the capsule runtime services are ready.
6#
7#  Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
8#  This program and the accompanying materials
9#  are licensed and made available under the terms and conditions of the BSD License
10#  which accompanies this distribution.  The full text of the license may be found at
11#  http://opensource.org/licenses/bsd-license.php
12#
13#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
14#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
15#
16##
17
18[Defines]
19  INF_VERSION                    = 0x00010005
20  BASE_NAME                      = CapsuleRuntimeDxe
21  MODULE_UNI_FILE                = CapsuleRuntimeDxe.uni
22  FILE_GUID                      = 42857F0A-13F2-4B21-8A23-53D3F714B840
23  MODULE_TYPE                    = DXE_RUNTIME_DRIVER
24  VERSION_STRING                 = 1.0
25  ENTRY_POINT                    = CapsuleServiceInitialize
26
27#
28# The following information is for reference only and not required by the build tools.
29#
30#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
31#
32
33[Sources]
34  CapsuleService.c
35
36[Sources.Ia32, Sources.IPF, Sources.EBC, Sources.ARM, Sources.AARCH64]
37  SaveLongModeContext.c
38
39[Sources.X64]
40  X64/SaveLongModeContext.c
41
42[Packages]
43  MdePkg/MdePkg.dec
44  MdeModulePkg/MdeModulePkg.dec
45
46[LibraryClasses]
47  UefiBootServicesTableLib
48  PcdLib
49  DebugLib
50  UefiRuntimeServicesTableLib
51  UefiDriverEntryPoint
52  CapsuleLib
53  UefiRuntimeLib
54  BaseLib
55  PrintLib
56  BaseMemoryLib
57
58[LibraryClasses.X64]
59  UefiLib
60  BaseMemoryLib
61
62[Guids]
63  ## SOMETIMES_PRODUCES   ## Variable:L"CapsuleUpdateData" # (Process across reset capsule image) for capsule updated data
64  ## SOMETIMES_PRODUCES   ## Variable:L"CapsuleLongModeBuffer" # The long mode buffer used by IA32 Capsule PEIM to call X64 CapsuleCoalesce code to handle >4GB capsule blocks
65  gEfiCapsuleVendorGuid
66  gEfiFmpCapsuleGuid                            ## SOMETIMES_CONSUMES   ## GUID # FMP capsule GUID
67
68[Protocols]
69  gEfiCapsuleArchProtocolGuid                   ## PRODUCES
70
71[Protocols.X64]
72  ## UNDEFINED ## NOTIFY
73  ## SOMETIMES_CONSUMES
74  gEdkiiVariableLockProtocolGuid
75
76[FeaturePcd]
77  gEfiMdeModulePkgTokenSpaceGuid.PcdSupportUpdateCapsuleReset   ## CONSUMES
78
79[FeaturePcd.X64]
80  gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode      ## CONSUMES
81
82[Pcd]
83  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxSizeNonPopulateCapsule   ## SOMETIMES_CONSUMES
84  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxSizePopulateCapsule || gEfiMdeModulePkgTokenSpaceGuid.PcdSupportUpdateCapsuleReset ## SOMETIMES_CONSUMES # Populate Image requires reset support.
85
86[Pcd.X64]
87  gEfiMdeModulePkgTokenSpaceGuid.PcdCapsulePeiLongModeStackSize   ## SOMETIMES_CONSUMES
88  gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable                ## SOMETIMES_CONSUMES
89
90[Depex]
91  gEfiVariableWriteArchProtocolGuid             # Depends on variable write functionality to produce capsule data variable
92
93# [Hob.X64]
94# UNDEFINED                 ## SOMETIMES_CONSUMES # CPU
95
96[UserExtensions.TianoCore."ExtraFiles"]
97  CapsuleRuntimeDxeExtra.uni
98