1## @file
2# CPU SMM driver.
3#
4# This SMM driver performs SMM initialization, deploy SMM Entry Vector,
5# provides CPU specific services in SMM.
6#
7# Copyright (c) 2009 - 2015, Intel Corporation. All rights reserved.<BR>
8#
9# This program and the accompanying materials
10# are licensed and made available under the terms and conditions of the BSD License
11# which accompanies this distribution.  The full text of the license may be found at
12# http://opensource.org/licenses/bsd-license.php
13#
14# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
15# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
16#
17##
18
19[Defines]
20  INF_VERSION                    = 0x00010005
21  BASE_NAME                      = PiSmmCpuDxeSmm
22  MODULE_UNI_FILE                = PiSmmCpuDxeSmm.uni
23  FILE_GUID                      = A3FF0EF5-0C28-42f5-B544-8C7DE1E80014
24  MODULE_TYPE                    = DXE_SMM_DRIVER
25  VERSION_STRING                 = 1.0
26  PI_SPECIFICATION_VERSION       = 0x0001000A
27  ENTRY_POINT                    = PiCpuSmmEntry
28
29#
30# The following information is for reference only and not required by the build tools.
31#
32#  VALID_ARCHITECTURES           = IA32 X64
33#
34
35[Sources]
36  PiSmmCpuDxeSmm.c
37  PiSmmCpuDxeSmm.h
38  MpService.c
39  SyncTimer.c
40  CpuS3.c
41  CpuService.c
42  CpuService.h
43  SmmProfile.c
44  SmmProfile.h
45  SmmProfileInternal.h
46  SmramSaveState.c
47
48[Sources.Ia32]
49  Ia32/Semaphore.c
50  Ia32/PageTbl.c
51  Ia32/SmmFuncsArch.c
52  Ia32/SmmProfileArch.c
53  Ia32/SmmProfileArch.h
54  Ia32/SmmInit.asm      | MSFT
55  Ia32/SmiEntry.asm     | MSFT
56  Ia32/SmiException.asm | MSFT
57  Ia32/MpFuncs.asm      | MSFT
58
59  Ia32/SmmInit.asm      | INTEL
60  Ia32/SmiEntry.asm     | INTEL
61  Ia32/SmiException.asm | INTEL
62  Ia32/MpFuncs.asm      | INTEL
63
64  Ia32/SmmInit.S        | GCC
65  Ia32/SmiEntry.S       | GCC
66  Ia32/SmiException.S   | GCC
67  Ia32/MpFuncs.S        | GCC
68
69[Sources.X64]
70  X64/Semaphore.c
71  X64/PageTbl.c
72  X64/SmmFuncsArch.c
73  X64/SmmProfileArch.c
74  X64/SmmProfileArch.h
75  X64/SmmInit.asm      | MSFT
76  X64/SmiEntry.asm     | MSFT
77  X64/SmiException.asm | MSFT
78  X64/MpFuncs.asm      | MSFT
79
80  X64/SmmInit.asm      | INTEL
81  X64/SmiEntry.asm     | INTEL
82  X64/SmiException.asm | INTEL
83  X64/MpFuncs.asm      | INTEL
84
85  X64/SmmInit.S        | GCC
86  X64/SmiEntry.S       | GCC
87  X64/SmiException.S   | GCC
88  X64/MpFuncs.S        | GCC
89
90[Packages]
91  MdePkg/MdePkg.dec
92  MdeModulePkg/MdeModulePkg.dec
93  UefiCpuPkg/UefiCpuPkg.dec
94
95[LibraryClasses]
96  UefiDriverEntryPoint
97  UefiRuntimeServicesTableLib
98  CacheMaintenanceLib
99  PcdLib
100  DebugLib
101  BaseLib
102  SynchronizationLib
103  BaseMemoryLib
104  MtrrLib
105  IoLib
106  TimerLib
107  SmmServicesTableLib
108  MemoryAllocationLib
109  DebugAgentLib
110  HobLib
111  PciLib
112  LocalApicLib
113  UefiCpuLib
114  SmmCpuPlatformHookLib
115  CpuExceptionHandlerLib
116  UefiLib
117  DxeServicesTableLib
118  CpuLib
119  ReportStatusCodeLib
120  SmmCpuFeaturesLib
121  PeCoffGetEntryPointLib
122
123[Protocols]
124  gEfiSmmAccess2ProtocolGuid               ## CONSUMES
125  gEfiMpServiceProtocolGuid                ## CONSUMES
126  gEfiSmmConfigurationProtocolGuid         ## PRODUCES
127  gEfiSmmCpuProtocolGuid                   ## PRODUCES
128  gEfiSmmReadyToLockProtocolGuid           ## NOTIFY
129  gEfiSmmCpuServiceProtocolGuid            ## PRODUCES
130
131[Guids]
132  gEfiAcpiVariableGuid                     ## SOMETIMES_CONSUMES ## HOB # it is used for S3 boot.
133  gEfiGlobalVariableGuid                   ## SOMETIMES_PRODUCES ## Variable:L"SmmProfileData"
134  gEfiAcpi20TableGuid                      ## SOMETIMES_CONSUMES ## SystemTable
135  gEfiAcpi10TableGuid                      ## SOMETIMES_CONSUMES ## SystemTable
136
137[FeaturePcd]
138  gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmDebug                         ## CONSUMES
139  gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmBlockStartupThisAp            ## CONSUMES
140  gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmEnableBspElection             ## CONSUMES
141  gUefiCpuPkgTokenSpaceGuid.PcdCpuHotPlugSupport                   ## CONSUMES
142  gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmStackGuard                    ## CONSUMES
143  gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmProfileEnable                 ## CONSUMES
144  gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmProfileRingBuffer             ## CONSUMES
145  gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmFeatureControlMsrLock         ## CONSUMES
146
147[Pcd]
148  gUefiCpuPkgTokenSpaceGuid.PcdCpuMaxLogicalProcessorNumber        ## SOMETIMES_CONSUMES
149  gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmProfileSize                   ## SOMETIMES_CONSUMES
150  gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmStackSize                     ## CONSUMES
151  gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmApSyncTimeout                 ## CONSUMES
152  gUefiCpuPkgTokenSpaceGuid.PcdCpuS3DataAddress                    ## SOMETIMES_CONSUMES
153  gUefiCpuPkgTokenSpaceGuid.PcdCpuHotPlugDataAddress               ## SOMETIMES_PRODUCES
154  gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmCodeAccessCheckEnable         ## CONSUMES
155  gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmSyncMode                      ## CONSUMES
156
157[Depex]
158  gEfiMpServiceProtocolGuid
159
160[UserExtensions.TianoCore."ExtraFiles"]
161  PiSmmCpuDxeSmmExtra.uni
162