]>
Commit | Line | Data |
---|---|---|
cf1d4549 JY |
1 | ## @file\r |
2 | # Provides drivers and definitions to support fsp in EDKII bios.\r | |
3 | #\r | |
c1a42bb0 | 4 | # Copyright (c) 2014 - 2020, Intel Corporation. All rights reserved.<BR>\r |
512e23a3 | 5 | # SPDX-License-Identifier: BSD-2-Clause-Patent\r |
cf1d4549 JY |
6 | #\r |
7 | ##\r | |
8 | \r | |
9 | [Defines]\r | |
10 | DEC_SPECIFICATION = 0x00010005\r | |
11 | PACKAGE_NAME = IntelFsp2WrapperPkg\r | |
12 | PACKAGE_GUID = FAFE06D4-7245-42D7-9FD2-E5D5E36AB0A0\r | |
13 | PACKAGE_VERSION = 0.1\r | |
14 | \r | |
15 | [Includes]\r | |
16 | Include\r | |
17 | \r | |
18 | [LibraryClasses]\r | |
19 | ## @libraryclass Provide FSP API related function.\r | |
20 | FspWrapperApiLib|Include/Library/FspWrapperApiLib.h\r | |
21 | FspWrapperApiTestLib|Include/Library/FspWrapperApiTestLib.h\r | |
22 | \r | |
23 | ## @libraryclass Provide FSP hob process related function.\r | |
24 | FspWrapperHobProcessLib|Include/Library/FspWrapperHobProcessLib.h\r | |
25 | \r | |
26 | ## @libraryclass Provide FSP platform related function.\r | |
27 | FspWrapperPlatformLib|Include/Library/FspWrapperPlatformLib.h\r | |
28 | \r | |
0c5c45a1 QZ |
29 | ## @libraryclass Provide FSP TPM measurement related function.\r |
30 | FspMeasurementLib|Include/Library/FspMeasurementLib.h\r | |
cf1d4549 JY |
31 | [Guids]\r |
32 | #\r | |
33 | # GUID defined in package\r | |
34 | #\r | |
6f6bf5c7 | 35 | gIntelFsp2WrapperTokenSpaceGuid = { 0xa34cf082, 0xf50, 0x4f0d, { 0x89, 0x8a, 0x3d, 0x39, 0x30, 0x2b, 0xc5, 0x1e } }\r |
cf1d4549 JY |
36 | gFspApiPerformanceGuid = { 0xc9122295, 0x56ed, 0x4d4e, { 0x06, 0xa6, 0x50, 0x8d, 0x89, 0x4d, 0x3e, 0x40 } }\r |
37 | gFspHobGuid = { 0x6d86fb36, 0xba90, 0x472c, { 0xb5, 0x83, 0x3f, 0xbe, 0xd3, 0xfb, 0x20, 0x9a } }\r | |
38 | \r | |
39 | [Ppis]\r | |
40 | gFspSiliconInitDonePpiGuid = { 0x4eb6e09c, 0xd256, 0x4e1e, { 0xb5, 0x0a, 0x87, 0x4b, 0xd2, 0x84, 0xb3, 0xde } }\r | |
41 | gTopOfTemporaryRamPpiGuid = { 0x2f3962b2, 0x57c5, 0x44ec, { 0x9e, 0xfc, 0xa6, 0x9f, 0xd3, 0x02, 0x03, 0x2b } }\r | |
42 | \r | |
43 | [Protocols]\r | |
44 | gAddPerfRecordProtocolGuid = { 0xc4a58d6d, 0x3677, 0x49cb, { 0xa0, 0x0a, 0x94, 0x70, 0x76, 0x5f, 0xb5, 0x5e } }\r | |
45 | \r | |
46 | ################################################################################\r | |
47 | #\r | |
48 | # PCD Declarations section - list of all PCDs Declared by this Package\r | |
49 | # Only this package should be providing the\r | |
50 | # declaration, other packages should not.\r | |
51 | #\r | |
52 | ################################################################################\r | |
53 | [PcdsFixedAtBuild, PcdsPatchableInModule]\r | |
54 | ## Provides the memory mapped base address of the BIOS CodeCache Flash Device.\r | |
6f6bf5c7 | 55 | gIntelFsp2WrapperTokenSpaceGuid.PcdFlashCodeCacheAddress|0xFFE00000|UINT32|0x10000001\r |
cf1d4549 | 56 | ## Provides the size of the BIOS Flash Device.\r |
6f6bf5c7 | 57 | gIntelFsp2WrapperTokenSpaceGuid.PcdFlashCodeCacheSize|0x00200000|UINT32|0x10000002\r |
cf1d4549 JY |
58 | \r |
59 | ## Indicates the base address of the first Microcode Patch in the Microcode Region\r | |
6f6bf5c7 JY |
60 | gIntelFsp2WrapperTokenSpaceGuid.PcdCpuMicrocodePatchAddress|0x0|UINT64|0x10000005\r |
61 | gIntelFsp2WrapperTokenSpaceGuid.PcdCpuMicrocodePatchRegionSize|0x0|UINT64|0x10000006\r | |
cf1d4549 | 62 | ## Indicates the offset of the Cpu Microcode.\r |
6f6bf5c7 | 63 | gIntelFsp2WrapperTokenSpaceGuid.PcdFlashMicrocodeOffset|0x90|UINT32|0x10000007\r |
cf1d4549 JY |
64 | \r |
65 | ## Indicate the PEI memory size platform want to report\r | |
6f6bf5c7 | 66 | gIntelFsp2WrapperTokenSpaceGuid.PcdPeiMinMemSize|0x1800000|UINT32|0x40000004\r |
cf1d4549 | 67 | ## Indicate the PEI memory size platform want to report\r |
6f6bf5c7 | 68 | gIntelFsp2WrapperTokenSpaceGuid.PcdPeiRecoveryMinMemSize|0x3000000|UINT32|0x40000005\r |
cf1d4549 | 69 | \r |
2098de62 | 70 | ## This is the base address of FSP-T\r |
6f6bf5c7 | 71 | gIntelFsp2WrapperTokenSpaceGuid.PcdFsptBaseAddress|0x00000000|UINT32|0x00000300\r |
6d40ea81 | 72 | \r |
4d4b8169 DG |
73 | ## This PCD indicates if FSP APIs are skipped from FSP wrapper.<BR><BR>\r |
74 | # If a bit is set, that means this FSP API is skipped.<BR>\r | |
75 | # If a bit is clear, that means this FSP API is NOT skipped.<BR>\r | |
76 | # NOTE: Only NotifyPhase Post PCI enumeration (BIT16) is implemented.<BR>\r | |
77 | # BIT[15:0] is for function:<BR>\r | |
78 | # BIT0 - Skip TempRamInit<BR>\r | |
79 | # BIT1 - Skip MemoryInit<BR>\r | |
80 | # BIT2 - Skip TempRamExit<BR>\r | |
81 | # BIT3 - Skip SiliconInit<BR>\r | |
82 | # BIT4 - Skip NotifyPhase<BR>\r | |
83 | # BIT[32:16] is for sub-function:<BR>\r | |
84 | # BIT16 - Skip NotifyPhase (AfterPciEnumeration)<BR>\r | |
85 | # BIT17 - Skip NotifyPhase (ReadyToBoot)<BR>\r | |
86 | # BIT18 - Skip NotifyPhase (EndOfFirmware)<BR>\r | |
87 | # Any undefined BITs are reserved for future use.<BR>\r | |
88 | # @Prompt Skip FSP API from FSP wrapper.\r | |
89 | gIntelFsp2WrapperTokenSpaceGuid.PcdSkipFspApi|0x00000000|UINT32|0x40000009\r | |
90 | \r | |
2098de62 CC |
91 | ## This PCD decides how Wrapper code utilizes FSP\r |
92 | # 0: DISPATCH mode (FSP Wrapper will load PeiCore from FSP without calling FSP API)\r | |
93 | # 1: API mode (FSP Wrapper will call FSP API)\r | |
94 | #\r | |
95 | gIntelFsp2WrapperTokenSpaceGuid.PcdFspModeSelection|0x00000001|UINT8|0x4000000A\r | |
96 | \r | |
c1a42bb0 JY |
97 | ## This PCD decides how FSP is measured\r |
98 | # 1) The BootGuard ACM may already measured the FSP component, such as FSPT/FSPM.\r | |
99 | # We need a flag (PCD) to indicate if there is need to do such FSP measurement or NOT.\r | |
100 | # 2) The FSP binary includes FSP code and FSP UPD region. The UPD region is considered\r | |
101 | # as configuration block, and it may be updated by OEM by design.\r | |
102 | # This flag (PCD) is to indicate if we need isolate the the UPD region from the FSP code region.\r | |
103 | # BIT0: Need measure FSP. (for FSP1.x) - reserved in FSP2.\r | |
104 | # BIT1: Need measure FSPT. (for FSP 2.x)\r | |
105 | # BIT2: Need measure FSPM. (for FSP 2.x)\r | |
106 | # BIT3: Need measure FSPS. (for FSP 2.x)\r | |
107 | # BIT4~30: reserved.\r | |
108 | # BIT31: Need isolate UPD region measurement.\r | |
109 | #0: measure FSP[T|M|S] as one binary in one record (PCR0).\r | |
110 | #1: measure FSP UPD region in one record (PCR1), the FSP code without UPD in another record (PCR0).\r | |
111 | #\r | |
112 | gIntelFsp2WrapperTokenSpaceGuid.PcdFspMeasurementConfig|0x00000000|UINT32|0x4000000B\r | |
113 | \r | |
6d40ea81 | 114 | [PcdsFixedAtBuild, PcdsPatchableInModule,PcdsDynamic,PcdsDynamicEx]\r |
2098de62 CC |
115 | #\r |
116 | ## These are the base address of FSP-M/S\r | |
117 | #\r | |
118 | gIntelFsp2WrapperTokenSpaceGuid.PcdFspmBaseAddress|0x00000000|UINT32|0x00001000\r | |
6d40ea81 | 119 | gIntelFsp2WrapperTokenSpaceGuid.PcdFspsBaseAddress|0x00000000|UINT32|0x00001001\r |
e69dcef5 CC |
120 | #\r |
121 | # To provide flexibility for platform to pre-allocate FSP UPD buffer\r | |
122 | #\r | |
123 | # The PCDs define the pre-allocated FSPM and FSPS UPD Data Buffer Address.\r | |
124 | # 0x00000000 - Platform will not pre-allocate UPD buffer before FspWrapper module\r | |
125 | # non-zero - Platform will pre-allocate UPD buffer and patch this value to\r | |
126 | # buffer address before FspWrapper module executing.\r | |
127 | #\r | |
128 | gIntelFsp2WrapperTokenSpaceGuid.PcdFspmUpdDataAddress|0x00000000|UINT32|0x50000000\r | |
cae524cd | 129 | gIntelFsp2WrapperTokenSpaceGuid.PcdFspsUpdDataAddress|0x00000000|UINT32|0x50000001\r |