· 5 years ago · Jul 11, 2020, 04:44 PM
1<!--<FtoolLayout>-->
2 <RootNode value="FitData" />
3 <BuildRootNode value="FitData" />
4 <BuildSettingsNode value="BuildSettings" />
5
6 <RootNode value="FitData" />
7 <BuildRootNode value="FitData" />
8 <BuildSettingsNode value="BuildSettings" />
9
10 <!-- Configuration root node. -->
11 <Class name="FitData" />
12
13 <Class name="KeyManifestHashUsages">
14 <CfgOpt name="CseBupManifest" value="0" type="byte" />
15 <CfgOpt name="CseMainManifest" value="1" type="byte" />
16 <CfgOpt name="PmcManifest" value="2" type="byte" />
17
18 <CfgOpt name="BootPolicyManifest" value="32" type="byte" />
19 <CfgOpt name="iUnitBootLoaderManifest" value="33" type="byte" />
20 <CfgOpt name="iUnitMainFwManifest" value="34" type="byte" />
21 <CfgOpt name="cAvsImage0Manifest" value="35" type="byte" />
22 <CfgOpt name="cAvsImage1Manifest" value="36" type="byte" />
23 <CfgOpt name="IfwiManifest" value="37" type="byte" />
24 <CfgOpt name="OsBootLoaderManifest" value="38" type="byte" />
25 <CfgOpt name="OsKernelManifest" value="39" type="byte" />
26 <CfgOpt name="OemSmipManifest" value="40" type="byte" />
27 <CfgOpt name="IshManifest" value="41" type="byte" />
28 <CfgOpt name="IshBupManifest" value="42" type="byte" />
29 <CfgOpt name="OemDebugManifest" value="43" type="byte" />
30 <CfgOpt name="OemLifecycleManifest" value="44" type="byte" />
31 <CfgOpt name="SilentLakeVmmManifest" value="46" type="byte" />
32 <CfgOpt name="OemAttestationManifest" value="47" type="byte" />
33 <CfgOpt name="OemDalManifest" value="48" type="byte" />
34 <CfgOpt name="OemDnxIfwiManifest" value="49" type="byte" />
35 </Class>
36
37 <Class name="IfwiBinaryLayout" xml-mode="false" gui-mode="Hidden">
38 <ParentCandidate value="FitData" />
39 <CfgOpt name="Name" value="IFWI Image" type="string" xml-mode="false" gui-mode="Hidden" />
40 <LayoutEntry name="IfwiImage" type="class:IfwiImage" xml-mode="false" gui-mode="Hidden" />
41 </Class>
42
43 <Class name="MigrationSkipNodes">
44 <CfgOpt name="Icc" value="true" type="boolean" required="false" />
45 <CfgOpt name="SataPcieComboPortConfiguration" value="true" type="boolean" required="false" />
46 <CfgOpt name="Gpio" value="true" type="boolean" required="false" />
47 <CfgOpt name="PlatformConfiguration" value="true" type="boolean" required="false" />
48 </Class>
49
50 <!-- List of nodes to skip when building -->
51 <Class name="BuildSkipNodes">
52 <!-- PadConfigLayout will be built by a separate action when building
53 GPIO profiles and should not be built as part of the normal build -->
54 <CfgOpt name="GpioProfile" value="true" type="boolean" required="false" />
55 </Class>
56
57 <!-- NVAR File Paths -->
58 <Class name="FilePaths">
59 <CfgOpt name="SUPER_SKU_FUSE_MAP" value="bup/bup_sku/emu_fuse_map" type="string" required="false" />
60 <CfgOpt name="SUPER_SKU_IP_MAP" value="bup/bup_sku/fuse_ip_base" type="string" required="false" />
61 <CfgOpt name="SkuModel" value="bup/bup_sku/sku_model" type="string" required="false" />
62 <CfgOpt name="KernFixedData" value="bup/si_features" type="string" required="false" />
63 <CfgOpt name="NorthPeakDebug" value="bup/ct" type="string" required="false" />
64 <CfgOpt name="EOM" value="mca/eom" type="string" required="false" />
65 <CfgOpt name="NfcSlaveAddress" value="nfc/SlaveAddress" type="string" required="false" />
66 <CfgOpt name="ME_CONF_WRK" value="policy/cfgmgr/cfg_rules" type="string" required="false" />
67 <CfgOpt name="BootGuardArb" value="loadmgr/arben" type="string" required="false" />
68 <CfgOpt name="sysintid1" value="policy/hci/sysintid1" type="string" required="false" />
69 <CfgOpt name="sysintid2" value="policy/hci/sysintid2" type="string" required="false" />
70 <CfgOpt name="sysintid3" value="policy/hci/sysintid3" type="string" required="false" />
71 <CfgOpt name="NpkPtiDisable" value="policy/NpkPtiDis" type="string" required="false" />
72 <CfgOpt name="fTPMEnable" value="policy/skumgr/ftpm_enable" type="string" required="false" />
73 <CfgOpt name="BistMeAutoBistConfAndStatus" value="policy/Bist/auto_config" type="string" required="false" />
74 <CfgOpt name="PavpCek" value="pavp/wv_cek_nvar" type="string" required="false" />
75 <CfgOpt name="GucHash" value="pavp/guc_hash" type="string" required="false" />
76 <CfgOpt name="IshPdt" value="ish_srv/INTC_pdt" type="string" required="false" />
77 <CfgOpt name="PavpHdcp" value="pavp/hdcp_ports" type="string" required="false" />
78 <CfgOpt name="PavpLspcon" value="pavp/lspcon_port" type="string" required="false" />
79 <CfgOpt name="PavpVga" value="pavp/vga_ports" type="string" required="false" />
80 <CfgOpt name="PostManuf" value="mca/manuf_lock" type="string" required="false" />
81 <CfgOpt name="Gpio" value="gpio/bxt_cse_pins" type="string" required="false" />
82 <CfgOpt name="IUnitSecTouch" value="iunit/sec_touch" type="string" required="false" />
83 <CfgOpt name="IUnitSecCtl" value="iunit/sec_ctl" type="string" required="false" />
84 <CfgOpt name="IUnitPortCfg" value="iunit/port_cfg" type="string" required="false" />
85 <CfgOpt name="IUnitCameraMask" value="iunit/camera_mask" type="string" required="false" />
86 <CfgOpt name="CryptoDisable" value="bup/bup_sku/crypto_dis" type="string" required="false" />
87 <CfgOpt name="PttProf" value="ptt/PttProf" type="string" required="false" />
88 <CfgOpt name="DataClear" value="bup/dataclear" type="string" required="false" />
89 <CfgOpt name="SpiAccess" value="mca/spi_access" type="string" required="false" />
90 </Class>
91 <!-- End of NVAR File Paths -->
92
93 <!--
94 FID Config Rules:
95 ================
96
97 All the config rules are lumped together in one class to make the
98 execution of the actions easier to track.
99
100 The disable crypto functionality requires FIT to disable all FW features that
101 require crypto. Because the process nvar action follows the FIT CfgOpt objects
102 hierarchy, it is simpler to move all the NVAR write operations under the same
103 class, and have the UI settings update the state of the intermediate feature
104 bits (i.e. FID_XXX). The flow is as follows:
105
106 UI Interact / Build Flow:
107 ========================
108
109 - UI settings are shadowed to FID_XXX feature bits. Since we are using the ShadowCfg
110 action, the FID_XX type must match the type used in the UI CfgOpt
111 (e.g. type="class:NoYesValues").
112 - At Pre-build time, all the FID_XXX applicable features are written to the
113 config rule NVAR.
114 - If Crypto Disable is selected, then FIT will override the features SKU value
115 with a preset mask as specified in the following
116 RCR https://hsdes.intel.com/home/default.html#article?id=1202984274.
117
118 Note that the order of execution is important here, the override definitions must be at
119 the end of the class.
120
121 Decomposition Flow
122 ==================
123
124 - Cfg rule NVAR is decomposed into associated FID_XXX features.
125 - ShadowCfg decomp is used to propagate the changes into the UI CfgOpt instances.
126 -->
127 <Class name="ConfigRuleSettings" gui-mode="Hidden" >
128 <CfgOpt name="FID_MNG_FULL" value="0" type="byte" required="false" />
129 <CfgOpt name="FID_MNG_STD" value="0" type="byte" required="false" />
130 <CfgOpt name="FID_AMT" value="0" type="byte" required="false" />
131 <CfgOpt name="FID_LOCAL_MNG" value="0" type="byte" required="false" />
132 <CfgOpt name="FID_INT_TOUCH" value="Disabled" type="class:DisabledEnabledValues" required="false" />
133 <CfgOpt name="FID_RESERVED_5" value="0" type="byte" required="false" />
134 <CfgOpt name="FID_SOFTCREEK" value="0" type="byte" required="false" />
135 <CfgOpt name="FID_OUI" value="0" type="byte" required="false" />
136 <CfgOpt name="FID_H" value="0" type="byte" required="false" />
137 <CfgOpt name="FID_LP" value="0" type="byte" required="false" />
138 <CfgOpt name="FID_ISH" value="No" type="class:NoYesValues" required="false" />
139 <CfgOpt name="FID_RESERVED_11" value="0" type="byte" required="false" />
140 <CfgOpt name="FID_PAV" value="Yes" type="class:NoYesValues" required="false" />
141 <CfgOpt name="FID_RESERVED_13" value="0" type="byte" required="false" />
142 <CfgOpt name="FID_RCA" value="0" type="byte" required="false" />
143 <CfgOpt name="FID_PRTCM" value="0" type="byte" required="false" />
144 <CfgOpt name="FID_HAP" value="0" type="byte" required="false" />
145 <CfgOpt name="FID_IPV6" value="0" type="byte" required="false" />
146 <CfgOpt name="FID_KVM" value="0" type="byte" required="false" />
147 <CfgOpt name="FID_OCH" value="0" type="byte" required="false" />
148 <CfgOpt name="FID_MEDAL" value="Enabled" type="class:DisabledEnabledValues" required="false" />
149 <CfgOpt name="FID_TLS_CONF" value="0" type="byte" required="false" />
150 <CfgOpt name="FID_CILA" value="0" type="byte" required="false" />
151 <CfgOpt name="FID_WLAN" value="0" type="byte" required="false" />
152 <CfgOpt name="FID_WL_DISP" value="0" type="byte" required="false" />
153 <CfgOpt name="FID_LH" value="0" type="byte" required="false" />
154 <CfgOpt name="FID_NAP" value="0" type="byte" required="false" />
155 <CfgOpt name="FID_ALARMCLK" value="0" type="byte" required="false" />
156 <CfgOpt name="FID_SECUREBOOT" value="0" type="byte" required="false" />
157 <CfgOpt name="FID_PTT" value="No" type="class:NoYesValues" required="false" />
158 <CfgOpt name="FID_MDNSPROXY" value="0" type="byte" required="false" />
159 <CfgOpt name="FID_NFC" value="No" type="class:NoYesValues" required="false" />
160 <CfgOpt name="SKUMGR_FID_MAX" value="0" type="byte" required="false" />
161
162 <!-- Get Values from UI settings (INTERACT and POST_DECOMP Execution). -->
163 <Action name="ShadowCfgOpt" module="Fit" source="$ContentProtection/PavpSupported" target="FID_PAV" params="{'doDecomp':'true'}" />
164 <Action name="ShadowCfgOpt" module="Fit" source="$IntegratedSensorHub/IshSupported" target="FID_ISH" params="{'doDecomp':'true'}" />
165 <Action name="ShadowCfgOpt" module="Fit" source="$IntelNfcConfiguration/NfcEnable" target="FID_NFC" params="{'doDecomp':'true'}" />
166 <Action name="ShadowCfgOpt" module="Fit" source="$PreciseTouch/TouchEnabled" target="FID_INT_TOUCH" params="{'doDecomp':'true'}" />
167 <Action name="ShadowCfgOpt" module="Fit" source="$DynamicApplicationLoader/MEDynAppLoad" target="FID_MEDAL" params="{'doDecomp':'true'}" />
168 <Action name="ShadowCfgOpt" module="Fit" source="$IntelPttConfiguration/PttSupported" target="FID_PTT" params="{'doDecomp':'true'}" />
169
170 <!-- Set NVAR bits (PRE_BUILD and DECOMP) -->
171 <Action name="ProcessNvar" module="Nvar" source="null" target="FID_PAV" params="{'filePath':'$FilePaths/ME_CONF_WRK','cellIndex':'28','cellOffset':'8','cellSize':'12','bitHi':'12','bitLo':'12','isBitfield':'true'}" />
172 <Action name="ProcessNvar" module="Nvar" source="null" target="FID_ISH" params="{'filePath':'$FilePaths/ME_CONF_WRK','cellIndex':'28','cellOffset':'8','cellSize':'12','bitHi':'10','bitLo':'10','isBitfield':'true'}" />
173 <Action name="ProcessNvar" module="Nvar" source="null" target="FID_NFC" params="{'filePath':'$FilePaths/ME_CONF_WRK','cellIndex':'28','cellOffset':'8','cellSize':'12','bitHi':'31','bitLo':'31','isBitfield':'true'}" />
174 <Action name="ProcessNvar" module="Nvar" source="null" target="FID_INT_TOUCH" params="{'filePath':'$FilePaths/ME_CONF_WRK','cellIndex':'28','cellOffset':'8','cellSize':'12','bitHi':'4','bitLo':'4','isBitfield':'true'}" />
175 <Action name="ProcessNvar" module="Nvar" source="null" target="FID_MEDAL" params="{'filePath':'$FilePaths/ME_CONF_WRK','cellIndex':'28','cellOffset':'8','cellSize':'12','bitHi':'20','bitLo':'20','isBitfield':'true'}" />
176 <Action name="ProcessNvar" module="Nvar" source="null" target="FID_PTT" params="{'filePath':'$FilePaths/ME_CONF_WRK','cellIndex':'28','cellOffset':'8','cellSize':'12','bitHi':'29','bitLo':'29','isBitfield':'true'}" />
177
178 <!--
179 Crypto Disable override (PRE_BUILD and DECOMP)
180
181 Note that $CryptoHardwareSupport/CryptoHwSupport uses inverted logic (YesNoValues)
182 compared to CryptoDisable. This is required by the ProcessNvar actions'
183 buildCondition parameter.
184
185 Note: This block must be defined after all the ProcessNvar actions in order to
186 ensure correct order of execution.
187
188 Based on the disable crypto RCR bits 10 and 28 are don't cares
189 (ISH and secure boot). The process NVAR actions below cover the
190 0-31 bit range ignoring these two bits.
191 -->
192 <CfgOpt name="CryptoDisable" value="Yes" type="class:YesNoValues" required="false" />
193 <CfgOpt name="CryptoDisableValue" value="0x00000000" type="dword" required="false" />
194 <Action name="ShadowCfgOpt" module="Fit" source="$CryptoHardwareSupport/CryptoHwSupport" target="CryptoDisable" />
195 <Action name="ProcessNvar" module="Nvar" source="CryptoDisable" target="CryptoDisableValue" params="{'buildConditional':'true', 'skipDecomp':'true','filePath':'$FilePaths/ME_CONF_WRK','cellIndex':'28','cellOffset':'8','cellSize':'12','bitHi':'9','bitLo':'0','isBitfield':'true'}" />
196 <Action name="ProcessNvar" module="Nvar" source="CryptoDisable" target="CryptoDisableValue" params="{'buildConditional':'true', 'skipDecomp':'true','filePath':'$FilePaths/ME_CONF_WRK','cellIndex':'28','cellOffset':'8','cellSize':'12','bitHi':'27','bitLo':'11','isBitfield':'true'}" />
197 <Action name="ProcessNvar" module="Nvar" source="CryptoDisable" target="CryptoDisableValue" params="{'buildConditional':'true', 'skipDecomp':'true','filePath':'$FilePaths/ME_CONF_WRK','cellIndex':'28','cellOffset':'8','cellSize':'12','bitHi':'31','bitLo':'29','isBitfield':'true'}" />
198
199 <!-- Crypto Disable interact actions -->
200 <Action name="DisableIf" module="Fit" source="$CryptoHardwareSupport/CryptoHwSupport" target="$IntelPttConfiguration/PttSupported" params="{'sourceVal':'No','targetVal':'No'}" />
201 <Action name="DisableIf" module="Fit" source="$CryptoHardwareSupport/CryptoHwSupport" target="$ContentProtection/PavpSupported" params="{'sourceVal':'No','targetVal':'No'}" />
202 <Action name="DisableIf" module="Fit" source="$CryptoHardwareSupport/CryptoHwSupport" target="$IntelNfcConfiguration/NfcEnable" params="{'sourceVal':'No','targetVal':'No'}" />
203 <Action name="DisableIf" module="Fit" source="$CryptoHardwareSupport/CryptoHwSupport" target="$PreciseTouch/TouchEnabled" params="{'sourceVal':'No','targetVal':'Disabled'}" />
204 <Action name="DisableIf" module="Fit" source="$CryptoHardwareSupport/CryptoHwSupport" target="$DynamicApplicationLoader/MEDynAppLoad" params="{'sourceVal':'No','targetVal':'Disabled'}" />
205 </Class>
206
207 <!-- Enumerations -->
208 <Class name="NumComponentValues">
209 <!-- <CfgOpt name="0" value="0xFF" type="byte" required="false" /> 0 was used to generate only the ME region, this is no longer relevant with the IFWI layout -->
210 <CfgOpt name="1" value="0" type="byte" required="false" />
211 <CfgOpt name="2" value="1" type="byte" required="false" />
212 </Class>
213
214` <Class name="FlcompFreqValues">
215 <CfgOpt name="50MHz" value="1" type="byte" required="false" />
216 <CfgOpt name="40MHz" value="2" type="byte" required="false" />
217 <CfgOpt name="25MHz" value="4" type="byte" required="false" />
218
219 <!-- There isn't a valid frequency slower than 14mhz, so we don't allow
220 this option to be able to map to all the settings in LowerFreqValues -->
221 <!--<CfgOpt name="14MHz" value="6" type="byte" required="false" /> -->
222 </Class>
223
224 <Class name="LoweredFlcompFreqValues">
225 <!-- There is a requirement that the frequencies in FLCOMP in the
226 CSE SMIP and SPI Descriptor be 20% (or basically one step) lower than
227 the frequencies in FLCOMP in the PMC SMIP. This enum exists to do the
228 mapping -->
229 <CfgOpt name="50MHz" value="2" type="byte" required="false" /> <!-- Actual: 40MHz -->
230 <CfgOpt name="40MHz" value="4" type="byte" required="false" /> <!-- Actual: 25MHz -->
231 <CfgOpt name="25MHz" value="6" type="byte" required="false" /> <!-- Actual: 14MHz -->
232 </Class>
233
234 <Class name="FlcompEcMaxFreqValues">
235 <CfgOpt name="17MHz" value="0" type="byte" required="false" />
236 <CfgOpt name="20MHz" value="1" type="byte" required="false" />
237 <CfgOpt name="25MHz" value="2" type="byte" required="false" />
238 <CfgOpt name="40MHz" value="3" type="byte" required="false" />
239 <CfgOpt name="50MHz" value="4" type="byte" required="false" />
240
241 </Class>
242
243 <Class name="SpiTpmFreqValues">
244 <CfgOpt name="17MHz" value="0x6" type="byte" required="false" />
245 <CfgOpt name="30MHz" value="0x4" type="byte" required="false" />
246 <CfgOpt name="48MHz" value="0x2" type="byte" required="false" />
247 <CfgOpt name="60MHz" value="0x1" type="byte" required="false" />
248 <CfgOpt name="120MHz" value="0x0" type="byte" required="false" />
249 </Class>
250
251 <Class name="SpiTouchFreqValues">
252 <CfgOpt name="17MHz" value="0x6" type="byte" required="false" />
253 <CfgOpt name="30MHz" value="0x4" type="byte" required="false" />
254 <CfgOpt name="48MHz" value="0x2" type="byte" required="false" />
255 <CfgOpt name="60MHz" value="0x1" type="byte" required="false" />
256 <CfgOpt name="120MHz" value="0x0" type="byte" required="false" />
257 </Class>
258
259 <Class name="SpiResumeHoldoffDelayValues">
260 <CfgOpt name="0us" value="0" type="byte" required="false" />
261 <CfgOpt name="2us" value="1" type="byte" required="false" />
262 <CfgOpt name="4us" value="2" type="byte" required="false" />
263 <CfgOpt name="6us" value="3" type="byte" required="false" />
264 <CfgOpt name="8us" value="4" type="byte" required="false" />
265 <CfgOpt name="10us" value="5" type="byte" required="false" />
266 <CfgOpt name="12us" value="6" type="byte" required="false" />
267 <CfgOpt name="14us" value="7" type="byte" required="false" />
268 </Class>
269
270 <Class name="SpiResumeToSuspendCeilingValues">
271 <CfgOpt name="128us" value="0" type="byte" required="false" />
272 <CfgOpt name="256us" value="1" type="byte" required="false" />
273 <CfgOpt name="512us" value="2" type="byte" required="false" />
274 <CfgOpt name="no ceiling, use the SFDP values" value="3" type="byte" required="false" />
275 </Class>
276
277 <Class name="DensityCompValues">
278 <!-- 512KB,1MB,2MB,4MB,8MB,16MB,32MB,64MB -->
279 <!--
280 The value has to have 8 nibbles because the decomposition flow
281 writes the data in the following format: 0x0000000x where
282 x is the flash component value.
283 -->
284 <CfgOpt name="512KB" value="0x00000000" type="byte" required="false" />
285 <CfgOpt name="1MB" value="0x00000001" type="byte" required="false" />
286 <CfgOpt name="2MB" value="0x00000002" type="byte" required="false" />
287 <CfgOpt name="4MB" value="0x00000003" type="byte" required="false" />
288 <CfgOpt name="8MB" value="0x00000004" type="byte" required="false" />
289 <CfgOpt name="16MB" value="0x00000005" type="byte" required="false" />
290 <CfgOpt name="32MB" value="0x00000006" type="byte" required="false" />
291 <CfgOpt name="64MB" value="0x00000007" type="byte" required="false" />
292
293 <!-- Map 0xF to a valid value -->
294 <CfgOpt name="8MB" value="0x0000000F" type="byte" required="false" gui-mode="Hidden" />
295 </Class>
296
297 <!-- Flash sizes based on component values -->
298 <Class name="FlashSizeValues">
299 <CfgOpt name="0x00000000" value="0x80000" type="dword" required="false" />
300 <CfgOpt name="0x00000001" value="0x100000" type="dword" required="false" />
301 <CfgOpt name="0x00000002" value="0x200000" type="dword" required="false" />
302 <CfgOpt name="0x00000003" value="0x400000" type="dword" required="false" />
303 <CfgOpt name="0x00000004" value="0x800000" type="dword" required="false" />
304 <CfgOpt name="0x00000005" value="0x1000000" type="dword" required="false" />
305 <CfgOpt name="0x00000006" value="0x2000000" type="dword" required="false" />
306 <CfgOpt name="0x00000007" value="0x4000000" type="dword" required="false" />
307
308 <!--
309 Map F to a valid value. This is because when the descriptor only
310 has one flash component, the second component is disabled by setting
311 its value to 0xF. The assigned value should be consistent with
312 the setting used for DensityCompValues above.
313 -->
314 <CfgOpt name="0x0000000F" value="0x800000" type="dword" required="false" />
315 </Class>
316
317 <Class name="LanPowerWellValues">
318 <CfgOpt name="Core Well" value="0" type="byte" required="false" />
319 <CfgOpt name="SUS Well" value="1" type="byte" required="false" />
320 <CfgOpt name="ME Well" value="2" type="byte" required="false" />
321 <CfgOpt name="SLP_LAN#" value="3" type="byte" required="false" />
322 </Class>
323
324 <Class name="WlanPowerWellValues">
325 <!--"0x82,,0x83,,0x84,,0x80,,0x86" -->
326 <CfgOpt name="Disabled" value="0x80" type="byte" required="false" />
327 <CfgOpt name="SUS Well" value="0x82" type="byte" required="false" />
328 <CfgOpt name="ME Well" value="0x83" type="byte" required="false" />
329 <CfgOpt name="SLP_M#||SPDA" value="0x84" type="byte" required="false" />
330 <CfgOpt name="SLP_WLAN#" value="0x86" type="byte" required="false" />
331 </Class>
332
333 <Class name="ProcEmulationValues">
334 <CfgOpt name="No Emulation" value="0" type="byte" required="false" />
335 <CfgOpt name="EMULATE Intel (R) vPro (TM) capable Processor" value="1" type="byte" required="false" />
336 <CfgOpt name="EMULATE Intel (R) Core (TM) branded Processor" value="2" type="byte" required="false" />
337 <CfgOpt name="EMULATE Intel (R) Celeron (R) branded Processor" value="3" type="byte" required="false" />
338 <CfgOpt name="EMULATE Intel (R) Pentium (R) branded Processor" value="4" type="byte" required="false" />
339 <CfgOpt name="EMULATE Intel (R) Xeon (R) branded Processor" value="5" type="byte" required="false" />
340 <CfgOpt name="EMULATE Intel (R) Xeon (R) Manageability capable Processor" value="6" type="byte" required="false" />
341 </Class>
342
343 <Class name="UsbrEhciValues">
344 <CfgOpt name="10b Disabled" value="0" type="byte" required="false" />
345 <CfgOpt name="11b Enabled" value="1" type="byte" required="false" />
346 </Class>
347
348 <Class name="PrivacySecurityLevelValues">
349 <CfgOpt name="Minimum" value="0" type="byte" required="false" />
350 <CfgOpt name="Default" value="1" type="byte" required="false" />
351 <CfgOpt name="Enhanced" value="2" type="byte" required="false" />
352 <CfgOpt name="Extreme" value="3" type="byte" required="false" />
353 </Class>
354
355 <Class name="YesNoValues">
356 <CfgOpt name="Yes" value="0" type="byte" required="false" />
357 <CfgOpt name="No" value="1" type="byte" required="false" />
358 </Class>
359
360 <Class name="NoYesValues">
361 <CfgOpt name="No" value="0" type="byte" required="false" />
362 <CfgOpt name="Yes" value="1" type="byte" required="false" />
363 </Class>
364
365 <Class name="DisabledEnabledValues">
366 <CfgOpt name="Disabled" value="0" type="byte" required="false" />
367 <CfgOpt name="Enabled" value="1" type="byte" required="false" />
368 </Class>
369
370 <Class name="EnabledDisabledValues">
371 <CfgOpt name="Enabled" value="0" type="byte" required="false" />
372 <CfgOpt name="Disabled" value="1" type="byte" required="false" />
373 </Class>
374
375 <Class name="NfcSlaveAddressValues">
376 <CfgOpt name="0x28-NXP" value="0x28" type="byte" required="false" />
377 <CfgOpt name="0x29-NXP" value="0x29" type="byte" required="false" />
378 <CfgOpt name="0x2A-NXP" value="0x2A" type="byte" required="false" />
379 <CfgOpt name="0x2B-NXP" value="0x2B" type="byte" required="false" />
380 </Class>
381
382 <Class name="PermitTimerResolutionValues">
383 <CfgOpt name="Days" value="0" type="byte" required="false" />
384 <CfgOpt name="Minutes" value="1" type="byte" required="false" />
385 </Class>
386
387 <Class name="ErrorFilterValues">
388 <CfgOpt name="All" value="0" type="byte" required="false" />
389 <CfgOpt name="Low/High/Critical" value="1" type="byte" required="false" />
390 <CfgOpt name="High/Critical" value="2" type="byte" required="false" />
391 <CfgOpt name="Critical" value="3" type="byte" required="false" />
392 </Class>
393
394 <Class name="LoggingIntValues">
395 <CfgOpt name="Disabled" value="0" type="byte" required="false" />
396 <CfgOpt name="Network" value="1" type="byte" required="false" />
397 <CfgOpt name="SMBus" value="2" type="byte" required="false" />
398 <CfgOpt name="Flash" value="3" type="byte" required="false" />
399 <CfgOpt name="PRAM" value="4" type="byte" required="false" />
400 <CfgOpt name="SVT" value="5" type="byte" required="false" />
401 </Class>
402
403 <Class name="BufferModeValues">
404 <CfgOpt name="Blocking" value="0" type="byte" required="false" />
405 <CfgOpt name="Buffered" value="1" type="byte" required="false" />
406 <CfgOpt name="Delayed Flush" value="2" type="byte" required="false" />
407 <CfgOpt name="Deferred PG" value="3" type="byte" required="false" />
408 </Class>
409
410 <Class name="BGProfileValues">
411 <CfgOpt name="Boot Guard Profile 0 - No_FVME" value="0" type="byte" required="false" />
412 <CfgOpt name="Boot Guard Profile 1 - VE" value="1" type="byte" required="false" />
413 <CfgOpt name="Boot Guard Profile 2 - VME" value="2" type="byte" required="false" />
414 <CfgOpt name="Boot Guard Profile 3 - VM" value="3" type="byte" required="false" />
415 <CfgOpt name="Boot Guard Profile 4 - FVE" value="4" type="byte" required="false" />
416 <CfgOpt name="Boot Guard Profile 5 - FVME" value="5" type="byte" required="false" />
417 </Class>
418
419 <Class name="LockMaskValues">
420 <CfgOpt name="0:Default" value="0" type="byte" required="false" />
421 <CfgOpt name="1:All Locked" value="1" type="byte" required="false" />
422 <CfgOpt name="2:All Unlocked" value="2" type="byte" required="false" />
423 </Class>
424
425 <Class name="SelectedByValues">
426 <CfgOpt name="Bios" value="0" type="byte" required="false" />
427 <CfgOpt name="SoftStrap" value="1" type="byte" required="false" />
428 </Class>
429
430 <Class name="SmbusRetryIntervalValues">
431 <CfgOpt name="0: 10us" value="0" type="byte" required="false" />
432 <CfgOpt name="NOT_CONNECTED" value="0xff" type="byte" required="false" />
433 </Class>
434
435 <Class name="BooleanValues">
436 <CfgOpt name="true" value="0x1" type="byte" required="false" />
437 <CfgOpt name="false" value="0x0" type="byte" required="false" />
438 </Class>
439
440 <Class name="MeModelValues">
441 <CfgOpt name="Mobile" value="0x0" type="byte" required="false" />
442 <CfgOpt name="Desktop" value="0x1" type="byte" required="false" />
443 <CfgOpt name="Workstation" value="0x2" type="byte" required="false" />
444 </Class>
445
446 <Class name="RombCliValues">
447 <CfgOpt name="No" value="0x0" type="byte" required="false" />
448 <CfgOpt name="Yes" value="0x1" type="byte" required="false" />
449 <CfgOpt name="RombCliDisabled" value="0xFF" type="byte" required="false" />
450 </Class>
451
452 <Class name="Smt1TcoSlaveSelectValues">
453 <CfgOpt name="Intel(R) SMBus" value="0" type="byte" required="true" />
454 <CfgOpt name="SMLink 0" value="1" type="byte" required="true" />
455 </Class>
456
457 <Class name="PrtcBackupPowerValues" >
458 <CfgOpt name="None" value="1" type="byte" />
459 <CfgOpt name="Exists" value="0" type="byte" />
460 </Class>
461
462 <!-- End of Enumerations -->
463
464 <!-- BLOB class is required by the code. -->
465 <Class name="BLOB" />
466
467
468 <!-- UI Tab -->
469 <Class name="BuildSettings" label="Build Settings" gui-mode="ReadWrite"> <!-- Tab -->
470 <ParentCandidate value="FitData" />
471 </Class>
472
473
474 <Class name="ImageTypeValues">
475 <CfgOpt name="eMMC" value="0" type="byte" />
476 <CfgOpt name="UFS" value="1" type="byte" />
477 <CfgOpt name="SPI" value="2" type="byte" />
478 </Class>
479
480 <Class name="SigningToolValues">
481 <CfgOpt name="OpenSSL" value="1" type="dword" />
482 <CfgOpt name="MobileSigningUtil" value="2" type="dword" />
483 </Class>
484
485 <Class name="PathVars" label="Environment Variables"> <!-- Category -->
486 <ParentCandidate value="BuildSettings" />
487
488 <CfgOpt name="WorkingDir" label="$WorkingDir" help="Path for environment variable $WorkingDir" value="." type="string" required="true" />
489 <CfgOpt name="SourceDir" label="$SourceDir" help="Path for environment variable $SourceDir" value="." type="string" required="true" />
490 <CfgOpt name="DestDir" label="$DestDir" help="Path for environment variable $DestDir" value="." type="string" required="true" />
491 <CfgOpt name="UserVar1" label="$UserVar1" help="Path for environment variable $UserVar1" value="." type="string" required="true" />
492 <CfgOpt name="UserVar2" label="$UserVar2" help="Path for environment variable $UserVar2" value="." type="string" required="true" />
493 <CfgOpt name="UserVar3" label="$UserVar3" help="Path for environment variable $UserVar3" value="." type="string" required="true" />
494 </Class>
495
496 <Class name="FlashLayout" label="Flash Layout"> <!-- Tab -->
497 <ParentCandidate value="FitData" />
498 <CfgOpt name="ExpandRegion" value="TXESubPartition" type="string" required="false" />
499 <!-- BXT does not need to use the ExpandSubPartitions action because it has two equal sized
500 boot partitions -->
501 </Class>
502
503 <Class name="SubPartitions">
504 <ParentCandidate value="FlashLayout" />
505 </Class>
506
507 <!-- TODO: Add documentation for register bitfields -->
508 <Class name="FLMAP0">
509
510 <LayoutEntry name="DescFlashComponentBaseAddress" value="0x03" type="bitfield32" bitfield_high="7" bitfield_low="0" />
511 <LayoutEntry name="DescNumberOfComponents" value="0" type="bitfield32" bitfield_high="9" bitfield_low="8" />
512 <LayoutEntry name="DescTouchOnSharedFlash" value="0" type="bitfield32" bitfield_high="10" bitfield_low="10" />
513 <LayoutEntry name="DescTouchOnDedicatedSpiBus" value="0" type="bitfield32" bitfield_high="11" bitfield_low="11" />
514 <LayoutEntry name="DescFingerprintOnSharedFlashSpiBus" value="0" type="bitfield32" bitfield_high="12" bitfield_low="12" />
515 <LayoutEntry name="reserved" value="0" type="bitfield32" bitfield_high="15" bitfield_low="13" />
516 <LayoutEntry name="DescFlashRegionBaseAddress" value="0x04" type="bitfield32" bitfield_high="23" bitfield_low="16" />
517 <LayoutEntry name="DescReserved" value="0" type="bitfield32" bitfield_high="31" bitfield_low="24" />
518
519 <Action name="GetValue" module="Bin" source="$FlashComponents/NumberOfComponents" target="DescNumberOfComponents" params="value" />
520
521 <!-- TODO: Enable once we add IFP support.
522 <Action name="GetValue" module="Bin" source="$Fingerprint/FingerprintOnSharedSpiBus" target="DescFingerprintOnSharedFlashSpiBus" params="value" />
523 -->
524
525 <!-- TODO: Enable once we know what to do with touch.
526 <Action name="GetValue" module="Bin" source="$Touch/TouchOnDedicatedSpiBus" target="DescTouchOnDedicatedSpiBus" params="value" />
527 -->
528
529 <CfgOpt name="Name" value="FLMAP0 - Flash Map 0 Register" type="string" required="false" />
530 <Action name="AddMapEntry" module="Bin" target="this" source="Name" params="{'indent':'1'}" />
531 </Class>
532 <Class name="FLMAP2">
533 <LayoutEntry name="Reserved" value="0" type="dword" />
534
535 <CfgOpt name="Name" value="FLMAP2 - Flash Map 2 Register" type="string" required="false" />
536 <Action name="AddMapEntry" module="Bin" target="this" source="Name" params="{'indent':'1'}" />
537 </Class>
538 <!-- End of FDBAR Definitions -->
539
540 <Class name="FCBA" gui-mode="Hidden">
541 <LayoutEntry name="FLCOMP" type="class:FLCOMP" description="offset = 0x00 Flash Components Record" />
542 <LayoutEntry name="FLILL" type="class:FLILL" description="offset = 0x04 Flash Invalid Instructions Record" />
543 <LayoutEntry name="FLILL1" type="class:FLILL1" description="offset = 0x08 Flash Invalid Instructions Record 1" />
544
545 <CfgOpt name="Name" value="FCBA - Flash Component Registers" type="string" required="false" />
546 <Action name="AddMapEntry" module="Bin" target="this" source="Name" params="{'indent':'1'}" />
547 </Class>
548
549 <!-- FCBA Definitions -->
550 <Class name="FLILL">
551 <LayoutEntry name="DescInvalidInstruction3" value="0" type="bitfield32" bitfield_high="31" bitfield_low="24" />
552 <LayoutEntry name="DescInvalidInstruction2" value="0" type="bitfield32" bitfield_high="23" bitfield_low="16" />
553 <LayoutEntry name="DescInvalidInstruction1" value="0" type="bitfield32" bitfield_high="15" bitfield_low="8" />
554 <LayoutEntry name="DescInvalidInstruction0" value="0" type="bitfield32" bitfield_high="7" bitfield_low="0" />
555
556 <Action name="GetValue" module="Bin" source="$FlashConfiguration/InvalidInstruction0" target="DescInvalidInstruction0" params="value" />
557 <Action name="GetValue" module="Bin" source="$FlashConfiguration/InvalidInstruction1" target="DescInvalidInstruction1" params="value" />
558 <Action name="GetValue" module="Bin" source="$FlashConfiguration/InvalidInstruction2" target="DescInvalidInstruction2" params="value" />
559 <Action name="GetValue" module="Bin" source="$FlashConfiguration/InvalidInstruction3" target="DescInvalidInstruction3" params="value" />
560 </Class>
561 <Class name="FLILL1">
562 <LayoutEntry name="DescInvalidInstruction7" value="0" type="bitfield32" bitfield_high="31" bitfield_low="24" />
563 <LayoutEntry name="DescInvalidInstruction6" value="0" type="bitfield32" bitfield_high="23" bitfield_low="16" />
564 <LayoutEntry name="DescInvalidInstruction5" value="0" type="bitfield32" bitfield_high="15" bitfield_low="8" />
565 <LayoutEntry name="DescInvalidInstruction4" value="0" type="bitfield32" bitfield_high="7" bitfield_low="0" />
566
567 <Action name="GetValue" module="Bin" source="$FlashConfiguration/InvalidInstruction4" target="DescInvalidInstruction4" params="value" />
568 <Action name="GetValue" module="Bin" source="$FlashConfiguration/InvalidInstruction5" target="DescInvalidInstruction5" params="value" />
569 <Action name="GetValue" module="Bin" source="$FlashConfiguration/InvalidInstruction6" target="DescInvalidInstruction6" params="value" />
570 <Action name="GetValue" module="Bin" source="$FlashConfiguration/InvalidInstruction7" target="DescInvalidInstruction7" params="value" />
571 </Class>
572 <!-- End of FCBA Definitions -->
573
574 <!-- FRBA Definitions -->
575 <Class name="FLREG">
576 <LayoutEntry name="reserved" value="0" type="bitfield32" bitfield_high="31" bitfield_low="31" />
577 <LayoutEntry name="DescFlashRegionLimit" value="0x0" type="bitfield32" bitfield_high="30" bitfield_low="16" />
578 <LayoutEntry name="reserved1" value="0" type="bitfield32" bitfield_high="15" bitfield_low="15" />
579 <LayoutEntry name="DescFlashRegionBase" value="0x7FFF" type="bitfield32" bitfield_high="14" bitfield_low="0" />
580
581 <CfgOpt name="Name" value="" type="string" required="false" />
582 <Action name="AddMapEntry" module="Bin" target="this" source="Name" params="{'indent':'1'}" />
583 <Action name="ResetValue" module="Bin" target="DescFlashRegionLimit" source="parent/DefaultLimit" params="value" />
584 <Action name="ResetValue" module="Bin" target="DescFlashRegionBase" source="parent/DefaultBase" params="value" />
585 </Class>
586 <Class name="FLREG_RSVD">
587 <LayoutEntry name="reserved" value="0" type="bitfield32" bitfield_high="31" bitfield_low="31" />
588 <LayoutEntry name="DescFlashRegionLimit" value="0x0" type="bitfield32" bitfield_high="30" bitfield_low="16" />
589 <LayoutEntry name="reserved1" value="0" type="bitfield32" bitfield_high="15" bitfield_low="15" />
590 <LayoutEntry name="DescFlashRegionBase" value="0x7FFF" type="bitfield32" bitfield_high="14" bitfield_low="0" />
591 <Action name="ResetValue" module="Bin" target="DescFlashRegionLimit" source="parent/DefaultLimit" params="value" />
592 <Action name="ResetValue" module="Bin" target="DescFlashRegionBase" source="parent/DefaultBase" params="value" />
593 </Class>
594
595 <Class name="FLREG0">
596 <LayoutEntry name="reserved" value="0" type="bitfield32" bitfield_high="31" bitfield_low="31" />
597 <LayoutEntry name="DescFlashRegionLimit" value="0" type="bitfield32" bitfield_high="30" bitfield_low="16" />
598 <LayoutEntry name="reserved1" value="0" type="bitfield32" bitfield_high="15" bitfield_low="15" />
599 <LayoutEntry name="DescFlashRegionBase" value="0" type="bitfield32" bitfield_high="14" bitfield_low="0" />
600
601 <CfgOpt name="Name" value="FLREG0 - Flash Region 0 (Flash Descriptor) Register" type="string" required="false" />
602 <Action name="AddMapEntry" module="Bin" target="this" source="Name" params="{'indent':'1'}" />
603 </Class>
604
605 <!-- End of FRBA Definitions -->
606<!--
607 <Class name="FMBA" gui-mode="Hidden">
608 <LayoutEntry name="FLMSTR1" type="class:FLMSTR1" description="offset=0x00 Flash Master 1" />
609 <LayoutEntry name="FLMSTR2" type="class:FLMSTR2" description="offset=0x04 Flash Master 2" />
610 <LayoutEntry name="FLMSTR3" type="class:FLMSTR3" description="offset=0x08 Flash Master 3" />
611 <LayoutEntry name="FLMSTR4" type="class:FLMSTR4" description="offset=0x0C Flash Master 4" />
612 <LayoutEntry name="FLMSTR5" type="class:FLMSTR5" description="offset=0x10 Flash Master 5" />
613 <LayoutEntry name="FLMSTR6" type="class:FLMSTR6" description="offset=0x14 Flash Master 6" />
614 <LayoutEntry name="reserved0" value="0xFFFFFFFF" type="dword" />
615 </Class>
616-->
617 <!-- FMBA Definitions -->
618 <Class name="FLMSTR1">
619 <LayoutEntry name="DescMasterRegionWriteAccess1" value="0x07FF" type="bitfield32" bitfield_high="31" bitfield_low="20" />
620 <LayoutEntry name="DescMasterRegionReadAccess1" value="0x07FF" type="bitfield32" bitfield_high="19" bitfield_low="8" />
621 <LayoutEntry name="reserved" value="0x0000" type="bitfield32" bitfield_high="7" bitfield_low="0" />
622
623 <Action name="GetValue" module="Bin" source="$HostCpuBiosMasterAccess/FinalCpuWritePerm" target="DescMasterRegionWriteAccess1" params="value" />
624 <Action name="GetValue" module="Bin" source="$HostCpuBiosMasterAccess/FinalCpuReadPerm" target="DescMasterRegionReadAccess1" params="value" />
625
626 <CfgOpt name="Name" value="FLMSTR1 - Flash Master 1 (Host CPU/BIOS)" type="string" required="false" />
627 <Action name="AddMapEntry" module="Bin" target="this" source="Name" params="{'indent':'1'}" />
628 </Class>
629 <Class name="FLMSTR2">
630 <LayoutEntry name="DescMasterRegionWriteAccess2" value="0x07FF" type="bitfield32" bitfield_high="31" bitfield_low="20" />
631 <LayoutEntry name="DescMasterRegionReadAccess2" value="0x07FF" type="bitfield32" bitfield_high="19" bitfield_low="8" />
632 <LayoutEntry name="reserved" value="0x0000" type="bitfield32" bitfield_high="7" bitfield_low="0" />
633
634 <Action name="GetValue" module="Bin" source="$IntelTxeMasterAccess/FinalTxeWritePerm" target="DescMasterRegionWriteAccess2" params="value" />
635 <Action name="GetValue" module="Bin" source="$IntelTxeMasterAccess/FinalTxeReadPerm" target="DescMasterRegionReadAccess2" params="value" />
636
637 <CfgOpt name="Name" value="FLMSTR2 - Flash Master 2 (Intel(R) TXE)" type="string" required="false" />
638 <Action name="AddMapEntry" module="Bin" target="this" source="Name" params="{'indent':'1'}" />
639 </Class>
640 <Class name="FLMSTR3">
641 <LayoutEntry name="DescMasterRegionWriteAccess3" value="0x07FF" type="bitfield32" bitfield_high="31" bitfield_low="20" />
642 <LayoutEntry name="DescMasterRegionReadAccess3" value="0x07FF" type="bitfield32" bitfield_high="19" bitfield_low="8" />
643 <LayoutEntry name="reserved" value="0x0000" type="bitfield32" bitfield_high="7" bitfield_low="0" />
644
645 <!-- <Action name="GetValue" module="Bin" source="$GbeMasterAccess/GbeWriteAccess" target="DescMasterRegionWriteAccess3" params="value" /> -->
646 <!-- <Action name="GetValue" module="Bin" source="$GbeMasterAccess/GbeReadAccess" target="DescMasterRegionReadAccess3" params="value" /> -->
647
648 <!--<CfgOpt name="Name" value="FLMSTR3 - Flash Master 3 (GbE)" type="string" required="false"/>
649 <Action name="AddMapEntry" module="Bin" target="this" source="Name" params="{'indent':'1'}" />-->
650 </Class>
651 <Class name="FLMSTR4">
652 <LayoutEntry name="DescMasterRegionWriteAccess4" value="0x0000" type="bitfield32" bitfield_high="31" bitfield_low="20" />
653 <LayoutEntry name="DescMasterRegionReadAccess4" value="0x0000" type="bitfield32" bitfield_high="19" bitfield_low="8" />
654 <LayoutEntry name="reserved" value="0x0000" type="bitfield32" bitfield_high="7" bitfield_low="0" />
655 </Class>
656 <Class name="FLMSTR5">
657 <LayoutEntry name="DescMasterRegionWriteAccess5" value="0x0000" type="bitfield32" bitfield_high="31" bitfield_low="20" />
658 <LayoutEntry name="DescMasterRegionReadAccess5" value="0x0000" type="bitfield32" bitfield_high="19" bitfield_low="8" />
659 <LayoutEntry name="reserved" value="0x0000" type="bitfield32" bitfield_high="7" bitfield_low="0" />
660 </Class>
661 <Class name="FLMSTR6">
662 <LayoutEntry name="DescMasterRegionWriteAccess6" value="0x0000" type="bitfield32" bitfield_high="31" bitfield_low="20" />
663 <LayoutEntry name="DescMasterRegionReadAccess6" value="0x0000" type="bitfield32" bitfield_high="19" bitfield_low="8" />
664 <LayoutEntry name="reserved" value="0x0000" type="bitfield32" bitfield_high="7" bitfield_low="0" />
665 </Class>
666 <!-- End of FMBA Definitions -->
667
668 <Class name="FMSBA" gui-mode="Hidden">
669 <!-- Add reserved attribute to get the roundto operation to work -->
670 <LayoutEntry name="Reserved" type="dword" value="0xFFFFFFFF" offset="0x0" />
671
672 <!--
673 <CfgOpt name="Name" value="FMSBA - CPU Straps (Including Padding)" type="string" required="false"/>
674 <Action name="AddMapEntry" module="Bin" target="this" source="Name" params="{'indent':'1'}" />
675 -->
676 </Class>
677
678 <Class name="OEM" gui-mode="Hidden"> <!-- TODO -->
679 <LayoutEntry name="OEMOEM##" type="class:BLOB" description="offset 0x0 OEM Data" />
680
681 <CfgOpt name="Name" value="OEM Data" type="string" required="false" />
682 <Action name="AddMapEntry" module="Bin" target="this" source="Name" params="{'indent':'1'}" />
683 </Class>
684
685 <Class name="VTBAX" gui-mode="Hidden">
686 <!-- The data attribute is required to generate the padding needed to place VTBA at the right
687 offset, without affecting the VTL calculation " -->
688 <LayoutEntry name="data" type="class:BLOB" round_to="0x10C" />
689 <LayoutEntry name="VATBA##" type="class:BLOB" target="data" description="VSCC table" />
690 <LayoutEntry name="VTBA" value="0xDF" type="byte" description="Intel(R) TXE VSCC Table Base Address (VTBA). This identifies address bits [11:4] for the VSCC Table portion of the Flash Descriptor. Bits [26:12] and bits [3:0] are 0." />
691 <LayoutEntry name="VTL" value="0x0" type="byte" description="Intel(R) TXE VSCC Table Length (VTL). Identifies the 1s based number of DWORDS contained in the VSCC Table. Each SPI component entry in the table is 2DWORDS long." />
692 <LayoutEntry name="rsvd" value="0x0" type="word" />
693
694 <Action name="GetValue" module="Bin" source="VATBA##" target="VTL" params="{'targetKey':'length','lengthInDwords':'true'}" />
695 <Action name="DecompVsccTable" module="Fit" source="VATBA##" target="VTL" params="" />
696
697 <CfgOpt name="Name" value="VSCC Table" type="string" required="false" />
698 <Action name="AddMapEntry" module="Bin" target="this" source="Name" params="{'indent':'1'}" />
699 </Class>
700
701 <Class name="RIBAX" gui-mode="Hidden"> <!-- TODO -->
702 <LayoutEntry name="VSCCT##" type="class:BLOB" value="0xFF" description="Register Init table" />
703 </Class>
704
705
706 <Class name="IunitSubPartition" label="IUnit Sub-Partition">
707 <ParentCandidate value="SubPartitions" />
708 <CfgOpt name="Name" value="IUnit Region" type="string" required="false" />
709 <CfgOpt name="InputFile" label="IUnit Binary File" value="" type="path" required="true" help="This loads the IUnit binary that will be merged into the output image generated by Intel(R) FIT tool." />
710
711 <Action name="ParseIunpImage" module="Ifwi" source="InputFile" target="this" />
712 </Class>
713
714 <Class name="PmcSubPartition" label="PMC Sub-Partition">
715 <ParentCandidate value="SubPartitions" />
716 <CfgOpt name="Name" value="PMC Region" type="string" required="false" />
717 <CfgOpt name="InputFile" label="PMC Binary File" value="" type="path" required="true" help="This loads the PMC binary that will be merged into the output image generated by Intel(R) FIT tool." />
718
719 <Action name="ParsePmcImage" module="Ifwi" source="InputFile" target="this" />
720 </Class>
721
722 <Class name="UCodeSubPartition" label="uCode Sub-Partition">
723 <ParentCandidate value="SubPartitions" />
724
725 <!-- File names used for each uCode patch. These names are also used in the
726 map file -->
727 <CfgOpt name="uCodeName1" value="uCode Patch 1" type="string" required="false" />
728 <CfgOpt name="uCodeName2" value="uCode Patch 2" type="string" required="false" />
729
730 <CfgOpt name="UCodePatch1InputFile" label="uCode Patch 1 Input File" value="" type="path" required="true" help="This loads the uCode Patch 1 binary that will be merged into the output image generated by Intel(R) FIT tool." />
731 <CfgOpt name="UCodePatch2InputFile" label="uCode Patch 2 Input File" value="" type="path" reuqired="true" help="This loads the uCode Patch 2 binary that will be merged into the output image generated by Intel(R) FIT tool." />
732 </Class>
733
734 <Class name="BiosDataRegionLengthValues">
735 <!-- 512KB of Bios space is translated into 1MB of total data region space.
736 TXE size is fixed to 512KB -->
737 <CfgOpt name="512KB" value="0x100000" type="dword" required="false" />
738 <CfgOpt name="384KB" value="0xE0000" type="dword" required="false" />
739 <CfgOpt name="256KB" value="0xC0000" type="dword" required="false" />
740 <CfgOpt name="128KB" value="0xA0000" type="dword" required="false" />
741 <CfgOpt name="0" value="0x80000" type="dword" required="false" />
742 </Class>
743
744 <Class name="BiosSubPartition" label="IAFW/BIOS Sub-Partition">
745 <ParentCandidate value="SubPartitions" />
746
747 <CfgOpt name="Name" label="Name" value="BIOS Region" type="string" required="false" />
748 <CfgOpt name="InputFile" label="IAFW/BIOS Binary File" value="" type="path" required="true" help="This loads the IAFW/BIOS binary that will be merged into the output image generated by Intel(R) FIT tool." />
749 <CfgOpt name="Enabled" label="BIOS Region Enable" value="Enabled" type="class:DisabledEnabledValues" required="false" />
750 <CfgOpt name="EnableSplitObb" label="Enable Split OBB" value="No" type="class:NoYesValues" help="OBB's primary location is on BP2, when enabling splitting of the OBB sub-partition, remaining extra OBB portion will be placed in BP1." />
751 <CfgOpt name="BiosDataSize" label="Bios Data Size" value="512KB" type="class:BiosDataRegionLengthValues" help="Configures the BIOS data size in SPI target configurations." />
752
753 <Action name="ShadowCfgOpt" module="Fit" source="BiosDataSize" target="$SpiDataRegion/Length" />
754 <Action name="ParseIaFwImage" module="Ifwi" source="InputFile" target="this" />
755 <Action name="Enable" module="Bin" source="Enabled" target="this" />
756 </Class>
757
758 <Class name="TXESubPartition" label="Intel(R) TXE Sub-Partition">
759 <ParentCandidate value="SubPartitions" />
760
761 <CfgOpt name="Name" label="Name" value="TXE Region" type="string" required="false" />
762 <CfgOpt name="InputFile" label="Intel(R) TXE Binary File" value="" type="path" required="true" params="{'continueMessage':'true','messageTitle':'Loading TXE Image','messageText':'Loading a new TXE will reset existing parameters. Do you want to continue?'}" help="This loads the Intel (R) TXE binary that will be merged into the output image generated by the Intel(R) FIT tool." />
763
764 <!-- ME Version updated by DecompCseRegion action -->
765 <CfgOpt name="MajorVersion" label="Major Version" value="0" type="word" xml-mode="false" gui-mode="Read" required="true" params="{'displayFormat':'decimal'}" help="" />
766 <CfgOpt name="MinorVersion" label="Minor Version" value="0" type="word" xml-mode="false" gui-mode="Read" required="true" params="{'displayFormat':'decimal'}" help="" />
767 <CfgOpt name="HotfixVersion" label="Hotfix Version" value="0" type="word" xml-mode="false" gui-mode="Read" required="true" params="{'displayFormat':'decimal'}" help="" />
768 <CfgOpt name="BuildVersion" label="Build Version" value="0" type="word" xml-mode="false" gui-mode="Read" required="true" params="{'displayFormat':'decimal'}" help="Displays version number of currently loaded Intel(R) TXE binary" />
769
770 <!-- Class used to handle FW SKU attributes Config RULE -->
771 <LayoutEntry name="ConfigRuleSettings" type="class:ConfigRuleSettings" />
772
773 <Action name="DecompCseRegion" module="Fit" source="InputFile" target="this" params="" />
774 </Class>
775
776 <Class name="dataPartValues">
777 <CfgOpt name="FLREG5" value="5" type="dword" required="false" />
778 </Class>
779
780
781 <Class name="SpiDataRegion" label="SPI TXE Data Region">
782 <ParentCandidate value="SubPartitions" />
783 <!-- IfwiActions::ProcessTargetType requires 'Enabled' to be BooleanValues type -->
784 <CfgOpt name="Enabled" value="true" type="class:BooleanValues" required="false" help="Enable/Disable data partition." />
785 <CfgOpt name="Length" value="512KB" type="class:BiosDataRegionLengthValues" help="Size of TXE data region. This setting is only applicable for SPI images." />
786 <CfgOpt name="TargetRegion" value="FLREG5" type="class:dataPartValues" required="false" label="Target Region" help="Target descriptor region for data partition." />
787 </Class>
788
789 <Class name="PdrRegion" label="SPI PDR Region">
790 <ParentCandidate value="Regions" />
791 <ParentCandidate value="SubPartitions" />
792
793 <CfgOpt name="Name" label="Name" value="PDR Region" type="string" required="false" />
794 <CfgOpt name="Length" label="Length" value="0" type="dword" required="true" />
795 <CfgOpt name="InputFile" label="PDR Binary File" value="" type="path" required="true" help="This loads the Platform Data Sub-Partition binary that will be merged into the into the output image generated by the Intel(R) FIT tool." />
796 <CfgOpt name="Enabled" label="PDR Region Enable" value="Disabled" type="class:DisabledEnabledValues" required="true" help="This option allows the user to enable or disable the Platform Data Region. This setting is only applicable for SPI images." />
797
798 <Action name="Enable" module="Bin" source="Enabled" target="this" />
799 <Action name="Enable" module="Bin" source="Enabled" target="$RegionData/PdrRegionData" />
800 </Class>
801
802 <Class name="PdrRegionData">
803 <CfgOpt name="Name" label="Name" value="PDR Region" type="string" required="false" />
804 <CfgOpt name="InputFilePath" value="$PdrRegion/InputFile" type="string" required="false" />
805 <CfgOpt name="LengthPath" value="$PdrRegion/Length" type="string" required="false" />
806 <CfgOpt name="EnabledPath" value="$PdrRegion/Enabled" type="string" required="false" />
807
808 <LayoutEntry name="data" type="class:BLOB" align="4096" round_to="4096" target="" />
809
810 <Action name="LoadBin" module="Bin" source="$PdrRegion/InputFile" target="data" params="{'lengthAttr':'$PdrRegion/Length','fileRequired':'false'}" />
811 <Action name="CheckLength" module="Bin" source="$PdrRegion/Length" target="data" params="skip_round_to" />
812 <Action name="AddMapEntry" module="Bin" target="this" source="Name" params="" />
813
814 <Action name="SaveToFile" module="Bin" target="Name" source="this" params="{'enableAttr':'$BuildResults/GenIntermediateFiles','enableAttrVal':'Yes', 'useOutFilePath':'true','prefix':'Int/','extension':'.bin'}" />
815 </Class>
816
817 <Class name="EcRegionData">
818 <CfgOpt name="Name" label="Name" value="EC Region" type="string" required="false" />
819 <CfgOpt name="InputFilePath" value="$EcRegion/InputFile" type="string" required="false" />
820 <CfgOpt name="LengthPath" value="$EcRegion/Length" type="string" required="false" />
821 <CfgOpt name="EnabledPath" value="$EcRegion/Enabled" type="string" required="false" />
822
823 <LayoutEntry name="data" type="class:BLOB" align="4096" round_to="4096" target="" />
824
825 <Action name="LoadBin" module="Bin" source="$EcRegion/InputFile" target="data" params="{'lengthAttr':'$EcRegion/Length','fileRequired':'false'}" />
826 <Action name="CheckLength" module="Bin" source="$EcRegion/Length" target="data" params="skip_round_to" />
827 <Action name="AddMapEntry" module="Bin" target="this" source="Name" params="" />
828
829 <Action name="SaveToFile" module="Bin" target="Name" source="this" params="{'enableAttr':'$BuildResults/GenIntermediateFiles','enableAttrVal':'Yes', 'useOutFilePath':'true','prefix':'Int/','extension':'.bin'}" />
830 </Class>
831
832 <Class name="FlashSettings" label="Flash Settings"> <!-- Tab -->
833 <ParentCandidate value="FitData" />
834 </Class>
835
836 <Class name="RomBypassData">
837 <LayoutEntry name="rombData" type="class:BLOB" round_to="4096" />
838 <LayoutEntry name="rombVector" type="class:BLOB" target="rombData" round_to="4096" />
839 <LayoutEntry name="data" type="class:BLOB" target="rombData" />
840
841 <!--<Action name="Enable" module="Bin" source="$RomBypass/Enabled" target="this"/>-->
842 <Action name="LoadRomBypass" module="Ifwi" source="null" target="data" />
843 <Action name="LoadRomBypassVector" module="Ifwi" source="null" target="rombVector" />
844 </Class>
845
846 <Class name="BootBlockSizeValues">
847 <CfgOpt name="64KB" value="0x0" type="byte" required="false" />
848 <CfgOpt name="128KB" value="0x1" type="byte" required="false" />
849 <CfgOpt name="256KB" value="0x2" type="byte" required="false" />
850 <CfgOpt name="512KB" value="0x3" type="byte" required="false" />
851 <CfgOpt name="1MB" value="0x4" type="byte" required="false" />
852 </Class>
853
854
855
856 <Class name="Fingerprint" label="Fingerprint">
857 <ParentCandidate value="FlashSettings" />
858 <CfgOpt name="FingerprintOnSharedSpiBus" label="Fingerprint on Shared SPI Bus" value="No" type="class:NoYesValues" help="Enables/Disables Fingerprint on shared SPI Bus." />
859 </Class>
860
861 <Class name="UfsGppLunIdValues">
862 <CfgOpt name="0" value="0" type="byte" />
863 <CfgOpt name="1" value="1" type="byte" />
864 <CfgOpt name="2" value="2" type="byte" />
865 <CfgOpt name="3" value="3" type="byte" />
866 <CfgOpt name="4" value="4" type="byte" />
867 <CfgOpt name="5" value="5" type="byte" />
868 <CfgOpt name="6" value="6" type="byte" />
869 <CfgOpt name="7" value="7" type="byte" />
870 </Class>
871
872 <Class name="UfsSettings" label="UFS Settings">
873 <ParentCandidate value="FlashSettings" />
874 <CfgOpt name="UfsPhyBinary" label="UFS Phy Init Binary" value="" type="path" required="true" help="UFS PHY Binary sub-partiion. Maximum size is 1 KB" />
875 <CfgOpt name="UfsGppLunEnabled" label="UFS GPP LUN Enable" value="Disabled" type="class:DisabledEnabledValues" required="true" help="Set to 'Enabled' to enable UFS GPP LUN Sub-Partition" />
876 <CfgOpt name="UfsGppLunId" label="UFS GPP LUN ID" value="6" type="class:UfsGppLunIdValues" required="true" help="The UFS GPP LUN ID is a single byte value stored in the UFS GPP LUN Sub-Partition" />
877 </Class>
878
879 <Class name="HostCpuBiosMasterAccess" label="Host CPU / BIOS Master Access">
880 <ParentCandidate value="FlashSettings" />
881 <CfgOpt name="HostCpuWriteAccess" label="Host CPU / BIOS Write Access" value="0xFFF" type="class:HostCpuWriteAccessValues" help="This setting determines write access control for the Host CPU / BIOS. For further details on Region Access Control see the SPI and SMIP Programming Guide" />
882 <CfgOpt name="HostCpuWriteAccessCustom" label="Host CPU / BIOS Write Access Custom" gui-mode="Read" value="0x000" type="dword" range="{'max':'0xfff'}" help="This setting determines write access control for the Host CPU / BIOS. For further details on Region Access Control see the SPI and SMIP Programming Guide" />
883 <CfgOpt name="HostCpuReadAccess" label="Host CPU / BIOS Read Access" value="0xFFF" type="class:HostCpuReadAccessValues" help="This setting determines read access control for the Host CPU / BIOS. For further details on Region Access Control see the SPI and SMIP Programming Guide" />
884 <CfgOpt name="HostCpuReadAccessCustom" label="Host CPU / BIOS Read Access Custom" gui-mode="Read" value="0x000" type="dword" range="{'max':'0xfff'}" help="This setting determines read access control for the Host CPU / BIOS. For further details on Region Access Control see the SPI and SMIP Programming Guide" />
885 <CfgOpt name="FinalCpuWritePerm" value="0x0" type="word" required="false" />
886 <CfgOpt name="FinalCpuReadPerm" value="0x0" type="word" required="false" />
887 <Action name="SetTargetGuiMode" module="Fit" source="HostCpuWriteAccess" target="HostCpuWriteAccessCustom" params="'source_value':'Custom', 'gui_mode':'DbGuiModeRdWr','gui_mode_default':'DbGuiModeRead' ; 'target_value':0x0 " />
888 <Action name="SetTargetGuiMode" module="Fit" source="HostCpuReadAccess" target="HostCpuReadAccessCustom" params="'source_value':'Custom', 'gui_mode':'DbGuiModeRdWr','gui_mode_default':'DbGuiModeRead' ; 'target_value':0x0 " />
889 <Action name="ProcessEom" module="Fit" source="HostCpuWriteAccess" target="$ManufacturingSettings/EndOfManufacturing" />
890 <Action name="ProcessEom" module="Fit" source="HostCpuReadAccess" target="$ManufacturingSettings/EndOfManufacturing" />
891 <Action name="SetValueFromSources" module="Fit" source="null" target="FinalCpuWritePerm" params="'sources':['$HostCpuBiosMasterAccess/HostCpuWriteAccess'],'value_to_ignore':'Custom','default':'$HostCpuBiosMasterAccess/HostCpuWriteAccessCustom'" />
892 <Action name="SetValueFromSources" module="Fit" source="null" target="FinalCpuReadPerm" params="'sources':['$HostCpuBiosMasterAccess/HostCpuReadAccess'],'value_to_ignore':'Custom','default':'$HostCpuBiosMasterAccess/HostCpuReadAccessCustom'" />
893
894
895
896
897 </Class>
898
899
900 <Class name="IntelTxeMasterAccess" label="Intel(R) TXE Master Access">
901 <ParentCandidate value="FlashSettings" />
902 <CfgOpt name="TxeWriteAccess" label="Intel(R) TXE Write Access" value="0xFFF" type="class:TxeWriteAccessValuesSuperSet" required="true" help="This setting determines write access control for the TXE. For further details on Region Access Control see the SPI and SMIP Programming Guide" />
903 <CfgOpt name="TxeWriteAccessCustom" label="Intel(R) TXE Write Access Custom" gui-mode="Read" value="0x000" type="dword" range="{'max':'0xfff'}" help="This setting determines write access control for the TXE. For further details on Region Access Control see the SPI and SMIP Programming Guide" />
904 <CfgOpt name="TxeReadAccess" label="Intel(R) TXE Read Access" value="0xFFF" type="class:TxeReadAccessValuesSuperSet" required="true" help="This setting determines read access control for the TXE. For further details on Region Access Control see the SPI and SMIP Programming Guide" />
905 <CfgOpt name="TxeReadAccessCustom" label="Intel(R) TXE Read Access Custom" gui-mode="Read" value="0x000" type="dword" range="{'max':'0xfff'}" help="This setting determines read access control for the TXE. For further details on Region Access Control see the SPI and SMIP Programming Guide" />
906 <CfgOpt name="FinalTxeWritePerm" value="0x0" type="word" required="false" />
907 <CfgOpt name="FinalTxeReadPerm" value="0x0" type="word" required="false" />
908 <Action name="SetTargetGuiMode" module="Fit" source="TxeWriteAccess" target="TxeWriteAccessCustom" params="'source_value':'Custom', 'gui_mode':'DbGuiModeRdWr','gui_mode_default':'DbGuiModeRead' ; 'target_value':0x0 " />
909 <Action name="SetTargetGuiMode" module="Fit" source="TxeReadAccess" target="TxeReadAccessCustom" params="'source_value':'Custom', 'gui_mode':'DbGuiModeRdWr','gui_mode_default':'DbGuiModeRead' ; 'target_value':0x0 " />
910 <CfgOpt name="TxeWriteAccessOverride" label="Intel(R) TXE Write Access Override" value="No" type="class:NoYesValues" required="true" help="This setting grants TXE write access to BIOS and PDR regions post-EOM." gui-mode="Read"/>
911
912 <Action name="HandleMeMasterAccess" module="Fit" source="TxeWriteAccess" target="TxeWriteAccess" params="{'Yes':'TxeWriteAccessOverrideValues', 'No':'TxeWriteAccessValues'}" />
913 <Action name="HandleMeMasterAccess" module="Fit" source="TxeReadAccess" target="TxeReadAccess" params="{'Yes':'TxeReadAccessOverrideValues', 'No':'TxeReadAccessValues'}" />
914 <Action name="ProcessEom" module="Fit" source="TxeWriteAccess" target="$ManufacturingSettings/EndOfManufacturing" />
915 <Action name="ProcessEom" module="Fit" source="TxeReadAccess" target="$ManufacturingSettings/EndOfManufacturing" />
916 <Action name="ProcessNvar" module="Nvar" source="null" target="TxeWriteAccessOverride" params="{'filePath':'$FilePaths/SpiAccess','varSize':'1'}" />
917 <Action name="SetValueFromSources" module="Fit" source="null" target="FinalTxeWritePerm" params="'sources':['$IntelTxeMasterAccess/TxeWriteAccess'],'value_to_ignore':'Custom','default':'$IntelTxeMasterAccess/TxeWriteAccessCustom'" />
918 <Action name="SetValueFromSources" module="Fit" source="null" target="FinalTxeReadPerm" params="'sources':['$IntelTxeMasterAccess/TxeReadAccess'],'value_to_ignore':'Custom','default':'$IntelTxeMasterAccess/TxeReadAccessCustom'" />
919
920 </Class>
921
922 <Class name="GbeAccessValues">
923 <CfgOpt name="0xFFF" value="0xFFF" type="word" required="false" />
924 <CfgOpt name="0x008" value="0x008" type="word" required="false" />
925 </Class>
926
927 <Class name="EcMasterAccess" label="EC Master Access">
928 <ParentCandidate value="FlashSettings" />
929
930 <CfgOpt name="EcWriteAccess" label="Embedded Controller Write Access" value="0xFFF" type="class:EcWriteAccessValues" required="true" help="This setting determines write access control for the Embedded Controller region. For further details on Region Access Control see Skylake H / LP SPI Programming guide." />
931 <CfgOpt name="EcWriteAccessCustom" label="Embedded Controller Write Access Custom" gui-mode="Read" value="0x000" type="dword" range="{'max':'0xfff'}" round_to="0xfff" required="true" help="This setting determines write access control for the Embedded Controller region. For further details on Region Access Control see Canonlake H / LP SPI Programming guide further details." />
932 <CfgOpt name="EcReadAccess" label="Embedded Controller Read Access" value="0xFFF" type="class:EcReadAccessValues" required="true" help="This setting determines read access control for the Embedded Controller region. For further details on Region Access Control see Skylake H / LP SPI Programming guide." />
933 <CfgOpt name="EcReadAccessCustom" label="Embedded Controller Read Access Custom" gui-mode="Read" value="0x000" type="dword" round_to="0xfff" range="{'max':'0xfff'}" required="true" help="This setting determines read access control for the Embedded Controller region. For further details on Region Access Control see Canonlake H / LP SPI Programming guide further details." />
934 <CfgOpt name="FinalEcWritePerm" value="0x000" type="dword" required="false" round_to="0xfff" />
935 <CfgOpt name="FinalEcReadPerm" value="0x000" type="dword" required="false" round_to="0xfff" />
936 <Action name="SetTargetGuiMode" module="Fit" source="EcWriteAccess" target="EcWriteAccessCustom" params="'source_value':'Custom', 'gui_mode':'DbGuiModeRdWr','gui_mode_default':'DbGuiModeRead' ; 'target_value':0x0 " />
937 <Action name="SetTargetGuiMode" module="Fit" source="EcReadAccess" target="EcReadAccessCustom" params="'source_value':'Custom', 'gui_mode':'DbGuiModeRdWr','gui_mode_default':'DbGuiModeRead' ; 'target_value':0x0 " />
938 <Action name="SetValueFromSources" module="Fit" source="null" target="FinalEcWritePerm" params="'sources':['$EcMasterAccess/EcWriteAccess'],'value_to_ignore':'Custom','default':'$EcMasterAccess/EcWriteAccessCustom'" />
939 <Action name="SetValueFromSources" module="Fit" source="null" target="FinalEcReadPerm" params="'sources':['$EcMasterAccess/EcReadAccess'],'value_to_ignore':'Custom','default':'$EcMasterAccess/EcReadAccessCustom'" />
940
941 </Class>
942
943
944 <Class name="NotDoneDoneValues">
945 <CfgOpt name="Not Done" value="0x0" type="byte" required="false" />
946 <CfgOpt name="Done" value="0x1" type="byte" required="false" />
947 </Class>
948
949 <Class name="RpmbConfiguration" label="RPMB Configuration">
950 <ParentCandidate value="FlashSettings" />
951
952 <CfgOpt name="RpmbEnabled" label="RPMB Enabled" value="Yes" type="class:YesNoValues" help="This setting determines if RPMB is enabled" />
953 <CfgOpt name="RpmbRebind" label="RPMB Rebind Enabled" value="Yes" type="class:YesNoValues" help="This setting determines if RPMB rebinding is allowed" />
954 <CfgOpt name="RpmbCounter" label="RPMB Counter Emulation" value="0x0000" type="word" range="{'max':'0x1F'}" help="Emulation for RPMB counter" />
955 <CfgOpt name="Rpmb1stMigrationDone" label="RPMB 1st Migration Done Emulation" value="Not Done" type="class:NotDoneDoneValues" help="" />
956 </Class>
957
958 <!-- From here on down, leaving out optional (read only) attributes 'options', 'label', and 'help' for readability -->
959
960 <Class name="VsccTable" label="VSCC Table"> <!-- Category -->
961 <ParentCandidate value="FlashSettings" />
962 </Class>
963
964 <Class name="VsccEntries" interact-mode="true" max-tabs="32" label="VSCC Entries"> <!-- Block (size = n) -->
965 <ParentCandidate value="VsccTable" />
966 </Class>
967
968 <Class name="VsccEntry" label="VSCC Entry" gui-mode="ReadWrite">
969 <ParentCandidate value="VsccEntries" />
970
971 <CfgOpt name="VsccEntryName" value="ATF26DF321" type="string" xml-mode="true" gui-mode="ReadWrite" label="Part Name" help="" />
972 <CfgOpt name="VsccEntryVendorId" value="0x1F" type="byte" xml-mode="true" gui-mode="ReadWrite" label="Vendor ID" help="" />
973 <CfgOpt name="VsccEntryDeviceId0" value="0x47" type="byte" xml-mode="true" gui-mode="ReadWrite" label="Device ID 0" help="" />
974 <CfgOpt name="VsccEntryDeviceId1" value="0x00" type="byte" xml-mode="true" gui-mode="ReadWrite" label="Device ID 1" help="" />
975
976 <LayoutEntry name="vscc_entry" type="class:BLOB" target="$VTBAX/VATBA##" />
977 <LayoutEntry name="vendor_id" type="byte" value="0xFF" target="vscc_entry" />
978 <LayoutEntry name="device_id0" type="byte" value="0xFF" target="vscc_entry" />
979 <LayoutEntry name="device_id1" type="byte" value="0xFF" target="vscc_entry" />
980 <LayoutEntry name="reserved" type="byte" value="0x00" target="vscc_entry" />
981 <LayoutEntry name="device_value" type="dword" value="0xFFFFFFFF" target="vscc_entry" />
982
983 <Action name="ProcessVsccEntry" module="Fit" source="this" target="device_value" params="" />
984 <Action name="GetValue" module="Bin" source="VsccEntryVendorId" target="vendor_id" params="value" />
985 <Action name="GetValue" module="Bin" source="VsccEntryDeviceId0" target="device_id0" params="value" />
986 <Action name="GetValue" module="Bin" source="VsccEntryDeviceId1" target="device_id1" params="value" />
987
988 <Action name="AddMapEntry" module="Bin" target="vscc_entry" source="VsccEntryName" params="{'indent':'2'}" />
989 </Class>
990
991 <Class name="MemoryRanges" label="Memory Ranges">
992 <ParentCandidate value="IsolatedMemoryRanges" />
993
994 <CfgOpt name="Imr00" value="0" type="dword" required="true" params="{'imr_index':'0','displayFormat':'decimal'}" help="Override IMR size setting. Set to 0 to use default configuration value." />
995 <Action name="HandleImrValue" module="Imr" source="Imr00" target="this" />
996
997 <CfgOpt name="Imr01" value="0" type="dword" required="true" params="{'imr_index':'1','displayFormat':'decimal'}" help="Override IMR size setting. Set to 0 to use default configuration value." />
998 <Action name="HandleImrValue" module="Imr" source="Imr01" target="this" />
999
1000 <CfgOpt name="Imr02" value="0" type="dword" required="true" params="{'imr_index':'2','displayFormat':'decimal'}" help="Override IMR size setting. Set to 0 to use default configuration value." />
1001 <Action name="HandleImrValue" module="Imr" source="Imr02" target="this" />
1002
1003 <CfgOpt name="Imr03" value="0" type="dword" required="true" params="{'imr_index':'3','displayFormat':'decimal'}" help="Override IMR size setting. Set to 0 to use default configuration value." />
1004 <Action name="HandleImrValue" module="Imr" source="Imr03" target="this" />
1005
1006 <CfgOpt name="Imr04" value="0" type="dword" required="true" params="{'imr_index':'4','displayFormat':'decimal'}" help="Override IMR size setting. Set to 0 to use default configuration value." />
1007 <Action name="HandleImrValue" module="Imr" source="Imr04" target="this" />
1008
1009 <CfgOpt name="Imr05" value="0" type="dword" required="true" params="{'imr_index':'5','displayFormat':'decimal'}" help="Override IMR size setting. Set to 0 to use default configuration value." />
1010 <Action name="HandleImrValue" module="Imr" source="Imr05" target="this" />
1011
1012 <CfgOpt name="Imr06" value="0" type="dword" required="true" params="{'imr_index':'6','displayFormat':'decimal'}" help="Override IMR size setting. Set to 0 to use default configuration value." />
1013 <Action name="HandleImrValue" module="Imr" source="Imr06" target="this" />
1014
1015 <CfgOpt name="Imr07" value="0" type="dword" required="true" params="{'imr_index':'7','displayFormat':'decimal'}" help="Override IMR size setting. Set to 0 to use default configuration value." />
1016 <Action name="HandleImrValue" module="Imr" source="Imr07" target="this" />
1017
1018 <CfgOpt name="Imr08" value="0" type="dword" required="true" params="{'imr_index':'8','displayFormat':'decimal'}" help="Override IMR size setting. Set to 0 to use default configuration value." />
1019 <Action name="HandleImrValue" module="Imr" source="Imr08" target="this" />
1020
1021 <CfgOpt name="Imr09" value="0" type="dword" required="true" params="{'imr_index':'9','displayFormat':'decimal'}" help="Override IMR size setting. Set to 0 to use default configuration value." />
1022 <Action name="HandleImrValue" module="Imr" source="Imr09" target="this" />
1023
1024 <CfgOpt name="Imr10" value="0" type="dword" required="true" params="{'imr_index':'10','displayFormat':'decimal'}" help="Override IMR size setting. Set to 0 to use default configuration value." />
1025 <Action name="HandleImrValue" module="Imr" source="Imr10" target="this" />
1026
1027 <CfgOpt name="Imr11" value="0" type="dword" required="true" params="{'imr_index':'11','displayFormat':'decimal'}" help="Override IMR size setting. Set to 0 to use default configuration value." />
1028 <Action name="HandleImrValue" module="Imr" source="Imr11" target="this" />
1029
1030 <CfgOpt name="Imr12" value="0" type="dword" required="true" params="{'imr_index':'12','displayFormat':'decimal'}" help="Override IMR size setting. Set to 0 to use default configuration value." />
1031 <Action name="HandleImrValue" module="Imr" source="Imr12" target="this" />
1032
1033 <CfgOpt name="Imr13" value="0" type="dword" required="true" params="{'imr_index':'13','displayFormat':'decimal'}" help="Override IMR size setting. Set to 0 to use default configuration value." />
1034 <Action name="HandleImrValue" module="Imr" source="Imr13" target="this" />
1035
1036 <CfgOpt name="Imr14" value="0" type="dword" required="true" params="{'imr_index':'14','displayFormat':'decimal'}" help="Override IMR size setting. Set to 0 to use default configuration value." />
1037 <Action name="HandleImrValue" module="Imr" source="Imr14" target="this" />
1038
1039 <CfgOpt name="Imr15" value="0" type="dword" required="true" params="{'imr_index':'15','displayFormat':'decimal'}" help="Override IMR size setting. Set to 0 to use default configuration value." />
1040 <Action name="HandleImrValue" module="Imr" source="Imr15" target="this" />
1041
1042 <CfgOpt name="Imr16" value="0" type="dword" required="true" params="{'imr_index':'16','displayFormat':'decimal'}" help="Override IMR size setting. Set to 0 to use default configuration value." />
1043 <Action name="HandleImrValue" module="Imr" source="Imr16" target="this" />
1044
1045 <CfgOpt name="Imr17" value="0" type="dword" required="true" params="{'imr_index':'17','displayFormat':'decimal'}" help="Override IMR size setting. Set to 0 to use default configuration value." />
1046 <Action name="HandleImrValue" module="Imr" source="Imr17" target="this" />
1047
1048 <CfgOpt name="Imr18" value="0" type="dword" required="true" params="{'imr_index':'18','displayFormat':'decimal'}" help="Override IMR size setting. Set to 0 to use default configuration value." />
1049 <Action name="HandleImrValue" module="Imr" source="Imr18" target="this" />
1050
1051 <CfgOpt name="Imr19" value="0" type="dword" required="true" params="{'imr_index':'19','displayFormat':'decimal'}" help="Override IMR size setting. Set to 0 to use default configuration value." />
1052 <Action name="HandleImrValue" module="Imr" source="Imr19" target="this" />
1053
1054 <Action name="ProcessImrValues" module="Imr" source="this" target="this" params="{'nvar_file':'bup/oem_imr_data','displayFormat':'decimal'}" />
1055 </Class>
1056
1057 <Class name="IsolatedMemoryRanges" label="Isolated Memory Ranges">
1058 <ParentCandidate value="FitData" />
1059 <LayoutEntry name="MemoryRanges" type="class:MemoryRanges" />
1060 </Class>
1061
1062 <Class name="PlatformProtection" label="Platform Protection">
1063 <ParentCandidate value="FitData" />
1064 </Class>
1065
1066
1067 <Class name="LspconPortValues">
1068 <CfgOpt name="None" value="0x0" type="byte" required="false" />
1069 <CfgOpt name="PortB" value="0x2" type="byte" required="false" />
1070 <CfgOpt name="PortC" value="0x4" type="byte" required="false" />
1071 <CfgOpt name="PortD" value="0x8" type="byte" required="false" />
1072 </Class>
1073
1074 <Class name="VgaPortValues">
1075 <CfgOpt name="None" value="0x0" type="byte" required="false" />
1076 <CfgOpt name="PortA" value="0x1" type="byte" required="false" />
1077 </Class>
1078
1079 <Class name="DisplayPortValues">
1080 <CfgOpt name="None" value="0x0" type="byte" required="false" />
1081 <CfgOpt name="PortA" value="0x1" type="byte" required="false" />
1082 <CfgOpt name="PortB" value="0x2" type="byte" required="false" />
1083 <CfgOpt name="PortC" value="0x4" type="byte" required="false" />
1084 <CfgOpt name="PortD" value="0x8" type="byte" required="false" />
1085 </Class>
1086
1087 <Class name="DisplayPortValuesBitmap">
1088 <CfgOpt name="PortA" value="0" type="byte" required="false" />
1089 <CfgOpt name="PortB" value="1" type="byte" required="false" />
1090 <CfgOpt name="PortC" value="2" type="byte" required="false" />
1091 <CfgOpt name="PortD" value="3" type="byte" required="false" />
1092 </Class>
1093
1094 <Class name="CryptoHardwareSupport" label="Crypto Hardware Support">
1095 <ParentCandidate value="PlatformProtection" />
1096 <CfgOpt name="CryptoHwSupport" label="Crypto HW Support" value="Yes" type="class:YesNoValues" help="This setting can be used to disable crypto funtionality. This settings disables all crypto dependent features." />
1097 <Action name="ProcessNvar" module="Nvar" source="null" target="CryptoHwSupport" params="{'filePath':'$FilePaths/CryptoDisable','varSize':'1'}" />
1098 </Class>
1099
1100 <Class name="ContentProtection" label="Content Protection">
1101 <ParentCandidate value="PlatformProtection" />
1102
1103 <CfgOpt name="PavpSupported" label="PAVP Supported" value="Yes" type="class:NoYesValues" required="true" help="This setting determines if the Protected Audio Video Path (PAVP) feature will be permanently disabled in the FW image." />
1104 <CfgOpt name="CEKBinary" label="Content Encryption Key" value="" type="path" required="true" help="This option is for entering the raw hash 256 bit string or certificate file for the Content Encryption" />
1105
1106 <CfgOpt name="Lspcon4kdisp" label="LSPCON Internal Display Port 1 - LSPCON / 4K" value="None" type="class:LspconPortValues" required="true" help="This setting determines which port for LSPCON will be connected to the HDCP 2.2 bridge adapter Display 1." />
1107 <CfgOpt name="Hdcp5kedisp1" label="HDCP Internal Display Port 1 - 5K" value="None" type="class:DisplayPortValues" required="true" help="This setting determines which port is connected for 5K output on Internal Display 1. Note: Both Display 1 & 2 need to be configured for proper operation." />
1108 <CfgOpt name="Hdcp5kedisp2" label="HDCP Internal Display Port 2 - 5K" value="None" type="class:DisplayPortValues" required="true" help="This setting determines which port is connected for 5K output on Internal Display 2. Note: Both Display 1 & 2 need to be configured for proper operation." />
1109 <CfgOpt name="VgaPort" label="VGA Display Port" value="None" type="class:VgaPortValues" help="This setting determines if VGA adaptor is configured for port A." />
1110
1111 <!-- This stores the final value to be used for the hdcp_ports NVAR and is an OR of InternalDispPort1 and InternalDispPort2 -->
1112 <CfgOpt name="FinalInternalDisp" value="" type="bitmap:DisplayPortValuesBitmap" required="false" />
1113 <Action name="ConvertDiscreteToBitmap" module="Fit" source="null" target="FinalInternalDisp" params="{'sources':['Hdcp5kedisp1','Hdcp5kedisp2'],'zeroValue':'None'}" />
1114
1115 <Action name="ProcessNvar" module="Nvar" source="null" target="Lspcon4kdisp" params="{'filePath':'$FilePaths/PavpLspcon'}" />
1116 <Action name="ProcessNvar" module="Nvar" source="null" target="VgaPort" params="{'filePath':'$FilePaths/PavpVga'}" />
1117 <Action name="ProcessNvar" module="Nvar" source="null" target="FinalInternalDisp" params="{'filePath':'$FilePaths/PavpHdcp'}" />
1118
1119 <Action name="PreventDuplicates" module="Fit" source="Lspcon4kdisp" target="this" params="{'targets':['Lspcon4kdisp','Hdcp5kedisp1','Hdcp5kedisp2','VgaPort'],'excludeValue':'None'}" />
1120 <Action name="PreventDuplicates" module="Fit" source="Hdcp5kedisp1" target="this" params="{'targets':['Lspcon4kdisp','Hdcp5kedisp1','Hdcp5kedisp2','VgaPort'],'excludeValue':'None'}" />
1121 <Action name="PreventDuplicates" module="Fit" source="Hdcp5kedisp2" target="this" params="{'targets':['Lspcon4kdisp','Hdcp5kedisp1','Hdcp5kedisp2','VgaPort'],'excludeValue':'None'}" />
1122 <Action name="PreventDuplicates" module="Fit" source="VgaPort" target="this" params="{'targets':['Lspcon4kdisp','Hdcp5kedisp1','Hdcp5kedisp2','VgaPort'],'excludeValue':'None'}" />
1123
1124 <Action name="ProcessNvar" module="Nvar" source="null" target="CEKBinary" params="{'filePath':'$FilePaths/PavpCek','isBinaryFile':'true','varSize':'256','checkBinSize':'true'}" />
1125 </Class>
1126
1127
1128 <Class name="GraphicsuController" label="Graphics uController">
1129 <ParentCandidate value="PlatformProtection" />
1130
1131 <CfgOpt name="GucHash" label="GuC Encryption Key" value="0000000000000000000000000000000000000000000000000000000000000000" type="string" required="true" help="Raw hash 256 bit string for the Graphics uController. Hash is permenently set in FPF" />
1132
1133 <Action name="ValidateCertHash" module="Fit" source="GucHash" target="this" params="{'fixedLength':'32'}" /> <!-- Hash size must be 32 bytes (SHA-256) -->
1134 <Action name="ProcessNvar" module="Nvar" source="null" target="GucHash" params="{'filePath':'$FilePaths/GucHash','varSize':'32','isHash':'true'}}" />
1135 </Class>
1136
1137 <Class name="PlatformIntegrity" label="Platform Integrity">
1138 <ParentCandidate value="PlatformProtection" />
1139
1140 <CfgOpt name="SmipSigningKey" label="SMIP Signing Key" value="" type="path" required="true" params="{'dialogType':'open','validFileTypes':'Private Key (*.pem *.bin)','dialogTitle':'Select Private Key'}" help="This is the path to the private key used to sign the SMIP, while public key hash of it is included in the OEM hash manifest. This setting is only configurable when OEM signing is enabled (See PlatformIntegrity/OemPublicKeyHash)." />
1141 <CfgOpt name="OemPublicKeyHash" label="OEM Public Key Hash" value="0000000000000000000000000000000000000000000000000000000000000000" type="string" required="true" help="Raw hash string for the SHA-256 hash of the OEM public key corresponding to the private key used to sign the OEM Key hash manifest. When manufacture is completed, this hash value is burned into an FPF, and is permament. This value is used to verify the OEM Key hash, and also DnX images. OEM signing is disabled when this hash is set to all 0s." />
1142 <CfgOpt name="OemExtInputFile" label="OEM Key Manifest Binary" value="" type="path" help="Signed manifest file containing hashes of keys used for signing components of image. This setting is only configurable when OEM signing is enabled (See PlatformIntegrity/OemPublicKeyHash)." />
1143
1144 <Action name="ValidateCertHash" module="Fit" source="OemPublicKeyHash" target="this" params="{'fixedLength':'32','zeroIfEmpty':'true'}" /> <!-- Hash size must be 32 bytes (SHA-256) -->
1145
1146 <CfgOpt name="OemSigningEnabled" value="No" type="class:NoYesValues" required="false" /> <!-- This is a hidden setting, set based on OemPublicKeyHash, which is used by certain actions to tell if signing is enabled -->
1147 <Action name="SetIfElse" module="Bin" source="OemPublicKeyHash" target="OemSigningEnabled" params="{'test':'HashSet','targetValue':'Yes','elseValue':'No'}" />
1148
1149 <Action name="DisableIf" module="Fit" source="OemSigningEnabled" target="OemExtInputFile" params="{'sourceVal':'No','setToDefault':'true','targets':[
1150 'SmipSigningKey',
1151 '$DnxConfiguration/SigningKey',
1152 '$BootGuardConfiguration/BtGuardProfileConfig'
1153 ]}" />
1154 <Action name="DisableIf" module="Fit" source="OemSigningEnabled" target="$BootGuardConfiguration/BtGuardKeyManifestId" params="{'sourceVal':'No','targetVal':'0'}" />
1155
1156 <Action name="ValidateKeyManifests" module="Ifwi" source="this" target="this" params="
1157 {'oemSigningEnPath':'$PlatformIntegrity/OemSigningEnabled',
1158 'oemKeyHashPath':'$PlatformIntegrity/OemPublicKeyHash',
1159 'oemKmIdPath':'$BootGuardConfiguration/BtGuardKeyManifestId',
1160 'usageBitsClass':'KeyManifestHashUsages',
1161 'partitionData':[
1162 {'attr':'$CseMainSubPartition/data','usage':'CseMainManifest','nameAttr':'$SubPartitions/TXESubPartition'},
1163 {'attr':'$CseBupSubPartition/data','usage':'CseBupManifest','nameAttr':'$SubPartitions/TXESubPartition'},
1164 {'attr':'$OemSmipSubPartition/data','usage':'OemSmipManifest','nameAttr':'$SubPartitions/SmipSubPartition','oemOnly':'true'},
1165 {'attr':'$PmcpSubPartition/data','usage':'PmcManifest','nameAttr':'$SubPartitions/PmcSubPartition'},
1166 {'attr':'$IbbSubPartition/data','usage':'BootPolicyManifest','nameAttr':'$SubPartitions/BiosSubPartition','oemOnly':'true'},
1167 {'attr':'$IunpSubPartition/data','usage':'iUnitBootLoaderManifest','nameAttr':'$SubPartitions/IunitSubPartition'},
1168 {'attr':'$IshSubPartition/data','usage':'IshManifest','nameAttr':'$IntegratedSensorHub/IshImage'}
1169 ]
1170 }" />
1171 </Class>
1172
1173 <Class name="BootGuardConfiguration" label="Boot Guard Configuration">
1174 <ParentCandidate value="PlatformProtection" />
1175
1176 <CfgOpt name="BtGuardKeyManifestId" label="Key Manifest ID" value="0x1" type="byte" range="{'max':'0xF'}" help="ODM identifier used during the Key manifest authentication process. This setting is only configurable, and must be non-0, when OEM signing is enabled (See PlatformIntegrity/OemPublicKeyHash)." />
1177 <CfgOpt name="BtGuardProfileConfig" label="Boot Profile" value="Boot Guard Profile 0 - Legacy" type="class:BootGuardProfiles" required="true" help="Boot Guard Profile 0 - Legacy is for platforms that do not wish to enable Boot Guard boot block verification or measurement protection. <br />Boot Guard Profile 1 - V is Strict Verification Enforcement. Prevents unverified bios components from running. <br />Boot Guard Profile 2 - VM is Strict Verification and Measurement enforcement. Prevents unverified Bios components from running. <br /> When manufacture is completed, this value is burned into an FPF, and is permament. This setting is only configurable when OEM signing is enabled (See PlatformIntegrity/OemPublicKeyHash)." />
1178 <CfgOpt name="BtGuardS3Optimize" label="S3 Optimization" value="Enabled" type="class:EnabledDisabledValues" required="true" /> <!-- Enabled by XML tag -->
1179 <CfgOpt name="BtGuardRegionCommit" label="Auto commit OEM Region FPFs" value="No" type="class:NoYesValues" required="true" /> <!-- Enabled by XML tag -->
1180
1181 <CfgOpt name="BtGuardArbUCode" label="uCode Anti Rollback Enable" value="Yes" type="class:NoYesValues" help="" />
1182 <CfgOpt name="BtGuardArbOemKeyManifest" label="OEM Key Manifest Anti Rollback Enable" value="Yes" type="class:NoYesValues" help="" />
1183 <CfgOpt name="BtGuardArbBiosMetadata" label="Bios Metadata Anti Rollback Enable" value="Yes" type="class:NoYesValues" help="" />
1184 <CfgOpt name="BtGuardArbAndroidOs" label="Android OS Anti Rollback Enable" value="Yes" type="class:NoYesValues" help="" />
1185 <CfgOpt name="BtGuardArbIUnitFw" label="IUnit Anti Rollback Enable" value="Yes" type="class:NoYesValues" help="" />
1186 <CfgOpt name="BtGuardArbADspFw" label="aDSP Anti Rollback Enable" value="Yes" type="class:NoYesValues" help="" />
1187 <CfgOpt name="BtGuardArbIfwi" label="IFWI Anti Rollback Enable" value="Yes" type="class:NoYesValues" help="" />
1188 <CfgOpt name="BtGuardArbPmc" label="PMC Anti Rollback Enable" value="Yes" type="class:NoYesValues" help="" />
1189
1190 <!-- Some of the ARB config options target multiple ARB bits -->
1191 <!-- ARB bit definitions follow: mft_key_manifest_usages_t in cse_manifest.h -->
1192 <Action name="ProcessNvar" module="Nvar" source="null" target="BtGuardArbPmc" params="{'filePath':'$FilePaths/BootGuardArb','cellIndex':'0','cellOffset':'0','cellSize':'4','bitHi':'2','bitLo':'2','isBitfield':'true'}" />
1193 <Action name="ProcessNvar" module="Nvar" source="null" target="BtGuardArbUCode" params="{'filePath':'$FilePaths/BootGuardArb','cellIndex':'0','cellOffset':'0','cellSize':'4','bitHi':'4','bitLo':'4','isBitfield':'true'}" />
1194 <Action name="ProcessNvar" module="Nvar" source="null" target="BtGuardArbOemKeyManifest" params="{'filePath':'$FilePaths/BootGuardArb','cellIndex':'1','cellOffset':'0','cellSize':'4','bitHi':'13','bitLo':'13','isBitfield':'true'}" />
1195 <Action name="ProcessNvar" module="Nvar" source="null" target="BtGuardArbBiosMetadata" params="{'filePath':'$FilePaths/BootGuardArb','cellIndex':'1','cellOffset':'0','cellSize':'4','bitHi':'0','bitLo':'0','isBitfield':'true'}" />
1196 <Action name="ProcessNvar" module="Nvar" source="null" target="BtGuardArbAndroidOs" params="{'filePath':'$FilePaths/BootGuardArb','cellIndex':'1','cellOffset':'0','cellSize':'4','bitHi':'6','bitLo':'6','isBitfield':'true'}" />
1197 <Action name="ProcessNvar" module="Nvar" source="null" target="BtGuardArbAndroidOs" params="{'filePath':'$FilePaths/BootGuardArb','cellIndex':'1','cellOffset':'0','cellSize':'4','bitHi':'7','bitLo':'7','isBitfield':'true'}" />
1198 <Action name="ProcessNvar" module="Nvar" source="null" target="BtGuardArbIUnitFw" params="{'filePath':'$FilePaths/BootGuardArb','cellIndex':'1','cellOffset':'0','cellSize':'4','bitHi':'1','bitLo':'1','isBitfield':'true'}" />
1199 <Action name="ProcessNvar" module="Nvar" source="null" target="BtGuardArbIUnitFw" params="{'filePath':'$FilePaths/BootGuardArb','cellIndex':'1','cellOffset':'0','cellSize':'4','bitHi':'2','bitLo':'2','isBitfield':'true'}" />
1200 <Action name="ProcessNvar" module="Nvar" source="null" target="BtGuardArbADspFw" params="{'filePath':'$FilePaths/BootGuardArb','cellIndex':'1','cellOffset':'0','cellSize':'4','bitHi':'3','bitLo':'3','isBitfield':'true'}" />
1201 <Action name="ProcessNvar" module="Nvar" source="null" target="BtGuardArbADspFw" params="{'filePath':'$FilePaths/BootGuardArb','cellIndex':'1','cellOffset':'0','cellSize':'4','bitHi':'4','bitLo':'4','isBitfield':'true'}" />
1202 <Action name="ProcessNvar" module="Nvar" source="null" target="BtGuardArbIfwi" params="{'filePath':'$FilePaths/BootGuardArb','cellIndex':'1','cellOffset':'0','cellSize':'4','bitHi':'5','bitLo':'5','isBitfield':'true'}" />
1203
1204
1205 <!-- ARB NVAR Updates -->
1206
1207 <CfgOpt name="SelfTestReset" label="SelfTestReset" value="false" type="class:BooleanValues" required="false" />
1208
1209 <Action name="ProcessNvar" module="Nvar" source="null" target="BtGuardRegionCommit" params="{'filePath':'$FilePaths/FPFOemRegionCommit', 'varSize':'1','bitHi':'0','bitLo':'0','isBitfield':'true'}" />
1210 </Class>
1211
1212 <Class name="BootGuardProfileSettings">
1213 <CfgOpt name="BtGuardCpuDebugEnable" label="CPU Debugging" value="Enabled" type="class:EnabledDisabledValues" xml-mode="false" required="false" help="This setting determines if CPU debug modes will be displayed. When set to 'Yes' CPU debugging is enabled." />
1214 <CfgOpt name="ProtectBiosEnvironment" label="Protect BIOS Environment Enabled" value="false" type="class:BooleanValues" xml-mode="false" gui-mode="Read" required="false" />
1215 <CfgOpt name="BtGuardBspInitEnable" label="BSP Initialization" value="Enabled" type="class:EnabledDisabledValues" xml-mode="false" required="false" help="This setting determines BSP behavior when it receives an INIT signal. When set to 'Yes', when BSP receives an INIT, BSP will signal an error to the BSS register and enter unrecoverable shutdown." />
1216 <CfgOpt name="VerifiedBoot" label="Verified Boot Enabled" value="false" type="class:BooleanValues" xml-mode="false" gui-mode="Read" required="false" />
1217 <CfgOpt name="MeasuredBoot" label="Measured Boot Enabled" value="false" type="class:BooleanValues" xml-mode="false" gui-mode="Read" required="false" />
1218 </Class>
1219
1220 <Class name="BootGuardProfiles">
1221 <LayoutEntry name="Boot Guard Profile 0 - Legacy" value="0" type="class:BootGuardProfileSettings" init="{'BtGuardCpuDebugEnable':'Enabled', 'ProtectBiosEnvironment':'false','BtGuardBspInitEnable':'Enabled', 'VerifiedBoot':'false','MeasuredBoot':'false'}" />
1222 <LayoutEntry name="Boot Guard Profile 1 - V" value="1" type="class:BootGuardProfileSettings" init="{'BtGuardCpuDebugEnable':'Disabled','ProtectBiosEnvironment':'true' ,'BtGuardBspInitEnable':'Disabled','VerifiedBoot':'true', 'MeasuredBoot':'false'}" />
1223 <LayoutEntry name="Boot Guard Profile 2 - VM" value="2" type="class:BootGuardProfileSettings" init="{'BtGuardCpuDebugEnable':'Disabled','ProtectBiosEnvironment':'true' ,'BtGuardBspInitEnable':'Disabled','VerifiedBoot':'true', 'MeasuredBoot':'true' }" />
1224 </Class>
1225
1226
1227 <Class name="DiscreteTpmLocationValues">
1228 <CfgOpt name="LPC" value="0x0" type="byte" required="false" />
1229 <CfgOpt name="SPI" value="0x1" type="byte" required="false" />
1230 </Class>
1231
1232 <Class name="TpmTypeValues">
1233 <CfgOpt name="PTT" value="0x0" type="byte" required="false" />
1234 <CfgOpt name="DTPM" value="0x1" type="byte" required="false" />
1235 </Class>
1236
1237 <Class name="dTpmSettings">
1238 <CfgOpt name="DiscreteTpmPresence" value="No" type="class:NoYesValues" required="false" />
1239 <CfgOpt name="DiscreteTpmLocation" value="LPC" type="class:DiscreteTpmLocationValues" required="false" />
1240 <CfgOpt name="SpiOverTpmBusEnable" value="No" type="class:NoYesValues" required="false" />
1241 </Class>
1242
1243 <Class name="dTpmLocationProfiles">
1244 <LayoutEntry name="None" value="0" type="class:dTpmSettings" init="{'DiscreteTpmPresence':'No', 'DiscreteTpmLocation':'LPC', 'SpiOverTpmBusEnable':'No'}" />
1245 <LayoutEntry name="LPC" value="1" type="class:dTpmSettings" init="{'DiscreteTpmPresence':'Yes', 'DiscreteTpmLocation':'LPC', 'SpiOverTpmBusEnable':'No'}" />
1246 <LayoutEntry name="SPI" value="2" type="class:dTpmSettings" init="{'DiscreteTpmPresence':'Yes', 'DiscreteTpmLocation':'SPI', 'SpiOverTpmBusEnable':'Yes'}" />
1247 </Class>
1248
1249 <Class name="dTpmLocationValues">
1250 <CfgOpt name="None" value="0" type="byte" required="false" />
1251 <CfgOpt name="LPC" value="1" type="byte" required="false" />
1252 <CfgOpt name="SPI" value="2" type="byte" required="false" />
1253 </Class>
1254
1255
1256 <Class name="TpmOverSpiBusConfiguration" label="TPM Over SPI Bus Configuration">
1257 <ParentCandidate value="PlatformProtection" />
1258
1259 <CfgOpt name="DiscreteTpmLocation" label="Discrete TPM Location" value="None" type="class:dTpmLocationValues" required="true" help="Location of discrete TPM" />
1260 <CfgOpt name="SpiOverTpmClkFreq" label="TPM Clock Frequency" value="17MHz" type="class:SpiTpmFreqValues" required="true" help="This field identifies the serial clock frequency for TPM on SPI. This field is undefined if the TPM on SPI is disabled either by softstrap or fuse. This field is defined with a broad range to support SOC implementations. The listed frequencies are approximate." />
1261
1262 <!-- Create instance of individual TPM Location settings which will be set based on the value of DiscreteTpmLocation -->
1263 <LayoutEntry name="dTpmSettings" type="class:dTpmSettings" />
1264 <Action name="ProcessProfile" module="Fit" source="DiscreteTpmLocation" target="dTpmSettings" params="{'profileClass':'dTpmLocationProfiles'}" />
1265 </Class>
1266
1267 <Class name="DalAppletSigning" label="DAL Applet Signing">
1268 <ParentCandidate value="PlatformProtection"/>
1269
1270 <CfgOpt name="OemSigningDalApplet" label="Allow OEM Signing of DAL Applets" value="No" type="enum:NoYesValues" help="FPF that enables OEM signing of DAL applets." />
1271 </Class>
1272
1273 <Class name="IntelTxeKernel" label="Intel(R) TXE Kernel">
1274 <ParentCandidate value="FitData" />
1275 </Class>
1276
1277 <Class name="IntelServicesConfiguration" label="Intel(R) Services Configuration">
1278 <ParentCandidate value="IntelTxeKernel" />
1279 <CfgOpt name="OdmIDIntelServices" label="ODM ID used by Intel(R) Services" value="0x00000000" type="dword" required="true" help="This setting is for entering the ODM ID for Intel(R) Services to identify the ODM Board builder. Note: This ID is either generated by or registered with Intel(R ) Services Web servers." />
1280 <CfgOpt name="SysIntIdIntelServices" label="System Integrator ID used by Intel(R) Services" value="0x00000000" type="dword" required="true" help="This setting is for entering the System Integrator ID for Intel(R) Services to identify the System Integrator. Note: This ID is either generated by or registered with Intel(R ) Services Web servers." />
1281 <CfgOpt name="ReservedIdIntelServices" label="Reserved ID used by Intel(R) Services" value="0x00000000" type="dword" required="true" help="This setting is for entering the Reserved ID for Intel(R) Services currently not used." />
1282
1283 <Action name="ProcessNvar" module="Nvar" source="null" target="OdmIDIntelServices" params="{'filePath':'$FilePaths/sysintid1','varSize':'4','startOffset':'0'}" />
1284 <Action name="ProcessNvar" module="Nvar" source="null" target="SysIntIdIntelServices" params="{'filePath':'$FilePaths/sysintid2','varSize':'4','startOffset':'0'}" />
1285 <Action name="ProcessNvar" module="Nvar" source="null" target="ReservedIdIntelServices" params="{'filePath':'$FilePaths/sysintid3','varSize':'4','startOffset':'0'}" />
1286 </Class>
1287
1288 <Class name="ImageIdentification" label="Image Identification">
1289 <ParentCandidate value="IntelTxeKernel" />
1290 <CfgOpt name="OemTag" label="OEM Tag" value="0x00000000" type="dword" required="true" help="" />
1291 <Action name="ProcessNvar" module="Nvar" source="null" target="OemTag" params="{'filePath':'$FilePaths/ME_CONF_WRK','cellIndex':'43','cellOffset':'8','cellSize':'12','varSize'='4'}" />
1292 </Class>
1293
1294 <Class name="Processor" label="Processor">
1295 <ParentCandidate value="IntelTxeKernel" />
1296 <CfgOpt name="ProcEmulation" label="Processor Emulation" value="No Emulation" type="class:ProcEmulationValues" required="true" />
1297 <Action name="ProcessNvar" module="Nvar" source="null" target="ProcEmulation" params="{'filePath':'$FilePaths/ME_CONF_WRK','cellIndex':'40','cellOffset':'8','cellSize':'12','bitHi':'3','bitLo':'0','isBitfield':'true'}" />
1298 </Class>
1299
1300 <Class name="FirmwareDiagnostics" label="Firmware Diagnostics">
1301 <ParentCandidate value="IntelTxeKernel" />
1302 <CfgOpt name="FwAutoBist" label="Automatic Built in Self Test" value="Disabled" type="class:DisabledEnabledValues" required="true" help="This setting enables the firmware Automatic Built in Self Test which is executed during first platform boot after initial image flashing." />
1303 <Action name="ProcessNvar" module="Nvar" source="null" target="FwAutoBist" params="{'filePath':'$FilePaths/BistMeAutoBistConfAndStatus', 'varSize':'4','bitHi':'0','bitLo':'0','isBitfield':'true'}" />
1304 </Class>
1305
1306 <Class name="DynamicApplicationLoader" label="Dynamic Application Loader">
1307 <ParentCandidate value="IntelTxeKernel" />
1308 <CfgOpt name="MEDynAppLoad" label="Firmware Dynamic Application Loader" value="Enabled" type="class:DisabledEnabledValues" required="true" help="This setting enables the Dynamic Application Loader capability of the Intel(R) ME Firmware." /> <!-- Enabled by XML tag -->
1309 </Class>
1310
1311 <Class name="Reserved" label="Reserved">
1312 <ParentCandidate value="IntelTxeKernel" />
1313 <!-- <CfgOpt name="Reserved" label="Reserved" value="No" type="class:NoYesValues" required="true" /> -->
1314 </Class>
1315
1316 <Class name="ManufacturingSettings" label="Manufacturing Settings">
1317 <ParentCandidate value="IntelTxeKernel" />
1318 <CfgOpt name="EnableEomWhenSpiLocked" label="Enable EOM when SPI access permissions are defined" value="Yes" type="class:NoYesValues" required="true" help="This setting determines if tool should enable end of manufacturing when access permissions are defined according to Intel recommendation."/>
1319
1320 <CfgOpt name="EndOfManufacturing" label="End of Manufacturing Enable" type="class:NoYesValues" value="No" help="EOM should be set when the image is built in production mode. This will trigger close manuf flows in FW. This setting is not configurable in SPI mode." />
1321 <Action name="ProcessNvar" module="Nvar" source="null" target="EndOfManufacturing" params="{'filePath':'$FilePaths/EOM','varSize':'1'}" />
1322
1323 <CfgOpt name="PostManufLockEnable" label="Post Manufacturing NVAR Configuration Enabled" type="class:NoYesValues" value="No" help="This setting determines if modifications to Customer configuable NVARs is to be allowed after close of manufacturing." />
1324 <Action name="ProcessNvar" module="Nvar" source="null" target="PostManufLockEnable" params="{'filePath':'$FilePaths/PostManuf','varSize':'1'}" />
1325 </Class>
1326
1327 <Class name="SecureNfc" label="Secure NFC">
1328 <ParentCandidate value="FitData" />
1329 </Class>
1330
1331 <Class name="IntelNfcConfiguration" label="Intel(R) NFC Configuration">
1332 <ParentCandidate value="SecureNfc" />
1333
1334 <CfgOpt name="NfcEnable" label="Enable Near Field Communication" value="No" type="class:NoYesValues" required="true" />
1335 <CfgOpt name="NfcSmbusAddress" label="NFC SMBus Address" value="0x28-NXP" type="class:NfcSlaveAddressValues" required="true" help="SMBus Address for NFC Device" />
1336
1337 <Action name="ProcessNvar" module="Nvar" source="null" target="NfcSmbusAddress" params="{'filePath':'$FilePaths/NfcSlaveAddress'}" />
1338 </Class>
1339
1340 <Class name="LockedUnlockedValues">
1341 <CfgOpt name="Locked" value="0x0" type="byte" required="false" />
1342 <CfgOpt name="Unlocked" value="0x1" type="byte" required="false" />
1343 </Class>
1344
1345 <Class name="CpuStraps" label="CPU Straps">
1346 <ParentCandidate value="FitData" />
1347 </Class>
1348
1349
1350 <Class name="FlexIo" label="Flex I/O">
1351 <ParentCandidate value="FitData" />
1352 </Class>
1353
1354 <Class name="UfsComboPortValues">
1355 <CfgOpt name="non-UFS" value="0x0" type="byte" required="false" />
1356 <CfgOpt name="UFS" value="0x1" type="byte" required="false" />
1357 </Class>
1358
1359 <Class name="PcieUsbComboPortValues">
1360 <CfgOpt name="USB3" value="0x0" type="byte" required="false" />
1361 <CfgOpt name="PCIe" value="0x1" type="byte" required="false" />
1362 </Class>
1363
1364 <Class name="Exi" label="EXI">
1365 <ParentCandidate value="FlexIo" />
1366 <CfgOpt name="Usb3SsicComboPort1" value="USB3" type="class:Usb3SsicPortOwnershipValues" label="USB3/SSIC Combo Port 1" help="See SPI and SMIP Programming Guide for more information" />
1367 <CfgOpt name="Usb3SsicComboPort2" value="USB3" type="class:Usb3SsicPortOwnershipValues" label="USB3/SSIC Combo Port 2" help="See SPI and SMIP Programming Guide for more information" />
1368 <CfgOpt name="UfsComboPort0" value="non-UFS" type="class:UfsComboPortValues" label="UFS Combo Port 0" help="See SPI and SMIP Programming Guide for more information" />
1369 <CfgOpt name="PcieUsb3ComboPort0" value="USB3" type="class:PcieUsbComboPortValues" label="PCIe/USB3 Combo Port 0" help="See SPI and SMIP Programming Guide for more information" />
1370 <CfgOpt name="PcieUsb3ComboPort1" value="USB3" type="class:PcieUsbComboPortValues" label="PCIe/USB3 Combo Port 1" help="See SPI and SMIP Programming Guide for more information" />
1371 <CfgOpt name="PcieUsb3ComboPort2" value="USB3" type="class:PcieUsbComboPortValues" label="PCIe/USB3 Combo Port 2" help="See SPI and SMIP Programming Guide for more information" />
1372 <CfgOpt name="PcieUsb3ComboPort3" value="USB3" type="class:PcieUsbComboPortValues" label="PCIe/USB3 Combo Port 3" help="See SPI and SMIP Programming Guide for more information" />
1373 </Class>
1374
1375 <Class name="PcieRoot2xPortConfigValues">
1376 <CfgOpt name="2x1" value="0" type="byte" />
1377 <CfgOpt name="1x2" value="1" type="byte" />
1378 </Class>
1379
1380 <Class name="PcieX2" label="PCIe (x2)">
1381 <ParentCandidate value="FlexIo" />
1382 <CfgOpt name="PcieRootPortConfig" value="2x1" type="class:PcieRoot2xPortConfigValues" label="Root Port Configuration (RPCFG)" />
1383 <CfgOpt name="PcieLaneReversal" value="No" type="class:NoYesValues" label="Lane Reversal (LNREV)" />
1384 <CfgOpt name="PciePort0NonCmnClockSscMode" value="Disabled" type="class:DisabledEnabledValues" label="PCIe Port 0 Non-Common Clock With SSC Mode Enable" help="See SPI and SMIP Programming Guide for more information" />
1385 <CfgOpt name="PciePort1NonCmnClockSscMode" value="Disabled" type="class:DisabledEnabledValues" label="PCIe Port 1 Non-Common Clock With SSC Mode Enable" help="See SPI and SMIP Programming Guide for more information" />
1386 <CfgOpt name="PciePort2NonCmnClockSscMode" value="Disabled" type="class:DisabledEnabledValues" label="PCIe Port 2 Non-Common Clock With SSC Mode Enable" help="See SPI and SMIP Programming Guide for more information" />
1387 <CfgOpt name="PciePort3NonCmnClockSscMode" value="Disabled" type="class:DisabledEnabledValues" label="PCIe Port 3 Non-Common Clock With SSC Mode Enable" help="See SPI and SMIP Programming Guide for more information" />
1388 </Class>
1389 <!-- end flex io -->
1390
1391
1392 <Class name="PlatformPowerGpio" label="Platform Power / GPIO">
1393 <ParentCandidate value="Gpio" />
1394
1395 <!-- <CfgOpt name="SlpAGpd6ConfigShadow" label="SLP_A# / GPD6 Signal Configuration" type="class:SlpAGpd6ConfigValues" value="SLP_A#" gui-mode="Read" xml-mode="false" required="true" /> -->
1396 <!-- <CfgOpt name="SlpS3Gpd4ConfigShadow" label="SLP_S3# / GPD4 Signal Configuration" type="class:SlpS3Gpd4ConfigValues" value="SLP_S3#" gui-mode="Read" xml-mode="false" required="true" /> -->
1397 <!-- <CfgOpt name="SlpS4Gpd5ConfigShadow" label="SLP_S4# / GPD5 Signal Configuration" type="class:SlpS4Gpd5ConfigValues" value="SLP_S4#" gui-mode="Read" xml-mode="false" required="true" /> -->
1398 <!-- <CfgOpt name="SlpS5Gpd10ConfigShadow" label="SLP_S5# / GPD10 Signal Configuration" type="class:SlpS5Gpd10ConfigValues" value="SLP_S5#" gui-mode="Read" xml-mode="false" required="true" /> -->
1399 <!-- <CfgOpt name="UsbWakeGpd7ConfigShadow" label="USB_Wakeout# / GPD7 Signal Configuration" type="class:UsbWakeGpd7ConfigValues" value="USB_WAKEOUT#" gui-mode="Read" xml-mode="false" required="true" /> -->
1400
1401 <!-- <Action name="ShadowCfgOpt" module="Fit" source="$PlatformPower/SlpAGpd6Config" target="SlpAGpd6ConfigShadow" params="" /> -->
1402 <!-- <Action name="ShadowCfgOpt" module="Fit" source="$PlatformPower/SlpS3Gpd4Config" target="SlpS3Gpd4ConfigShadow" params="" /> -->
1403 <!-- <Action name="ShadowCfgOpt" module="Fit" source="$PlatformPower/SlpS4Gpd5Config" target="SlpS4Gpd5ConfigShadow" params="" /> -->
1404 <!-- <Action name="ShadowCfgOpt" module="Fit" source="$PlatformPower/SlpS5Gpd10Config" target="SlpS5Gpd10ConfigShadow" params="" /> -->
1405 <!-- <Action name="ShadowCfgOpt" module="Fit" source="$PlatformPower/UsbWakeGpd7Config" target="UsbWakeGpd7ConfigShadow" params="" /> -->
1406 </Class>
1407
1408 <Class name="WlanGpioSelect" label="WLAN / GPIO Select">
1409 <ParentCandidate value="Gpio" />
1410
1411 <!-- <CfgOpt name="SlpWlanGpd9ConfigShadow" label="SLP_WLAN# / GPD9 Signal Configuration" type="class:SlpWlanGpd9ConfigValues" value="SLP_WLAN#" gui-mode="Read" xml-mode="false" required="true" /> -->
1412
1413 <!-- <Action name="ShadowCfgOpt" module="Fit" source="$WirelessLanConfiguration/SlpWlanGpd9Config" target="SlpWlanGpd9ConfigShadow" params="" /> -->
1414 </Class>
1415
1416
1417 <Class name="LanGpioSelect" label="LAN / GPIO Select">
1418 <ParentCandidate value="Gpio" />
1419
1420 <!-- <CfgOpt name="LanPhyPwrCtrlGpd11ConfigShadow" label="LAN PHY Power Control GPD11 Signal Configuration" type="class:LanPhyPwrCtrlGpd11ConfigValues" value="LANPHYPC" gui-mode="Read" xml-mode="false" required="true" /> -->
1421 <!-- <Action name="ShadowCfgOpt" module="Fit" source="$WiredLanConfiguration/LanPhyPwrCtrlGpd11Config" target="LanPhyPwrCtrlGpd11ConfigShadow" params="" /> -->
1422 </Class>
1423
1424
1425 <Class name="SlpAGpd6ConfigValues">
1426 <CfgOpt name="SLP_A#" value="0x0" type="byte" required="false" />
1427 <CfgOpt name="GPD6" value="0x1" type="byte" required="false" />
1428 </Class>
1429
1430 <Class name="SlpS3Gpd4ConfigValues">
1431 <CfgOpt name="SLP_S3#" value="0x0" type="byte" required="false" />
1432 <CfgOpt name="GPD4" value="0x1" type="byte" required="false" />
1433 </Class>
1434
1435 <Class name="SlpS4Gpd5ConfigValues">
1436 <CfgOpt name="SLP_S4#" value="0x0" type="byte" required="false" />
1437 <CfgOpt name="GPD5" value="0x1" type="byte" required="false" />
1438 </Class>
1439
1440 <Class name="SlpS5Gpd10ConfigValues">
1441 <CfgOpt name="SLP_S5#" value="0x0" type="byte" required="false" />
1442 <CfgOpt name="GPD10" value="0x1" type="byte" required="false" />
1443 </Class>
1444
1445 <Class name="UsbWakeGpd7ConfigValues">
1446 <CfgOpt name="GPD7" value="0x0" type="byte" required="false" />
1447 <CfgOpt name="USB_WAKEOUT#" value="0x1" type="byte" required="false" />
1448 </Class>
1449
1450 <Class name="IntegratedSensorHub" label="Integrated Sensor Hub">
1451 <ParentCandidate value="FitData" />
1452
1453 <CfgOpt name="IshSupported" value="No" type="class:NoYesValues" label="Integrated Sensor Hub Supported" help="This setting allows customers to permanently disable ISH FPF on the platform." /> <!-- Strap & OEM Cap -->
1454 <CfgOpt name="IshPowerUpState" value="Disabled" type="class:DisabledEnabledValues" label="Integrated Sensor Hub Initial Power State" help="This setting allows customers to determine the power up state for ISH." />
1455
1456 <Action name="DisableIf" module="Fit" source="IshSupported" target="IshPowerUpState" params="{'sourceVal':'No','targetVal':'Disabled'}" />
1457 <Action name="ProcessNvar" module="Nvar" source="null" target="IshPowerUpState" params="{'filePath':'$FilePaths/ME_CONF_WRK','cellIndex':'33','cellOffset':'8','cellSize':'12','bitHi':'10','bitLo':'10','isBitfield':'true'}" />
1458 </Class>
1459
1460 <Class name="IshImage" label="ISH Image">
1461 <ParentCandidate value="IntegratedSensorHub" />
1462
1463 <CfgOpt name="Length" value="0x40000" type="dword" required="true" help="Total size (in bytes) of the ISH code partition including reserved space. It is recommended to be at least 256kb." />
1464 <CfgOpt name="InputFile" value="" type="path" required="true" help="Path to your ISH firmware binary file." label="Input File" />
1465
1466 <Action name="CheckIshLength" module="Fit" source="Length" target="this" params="{'inputAttr':'InputFile','lengthAttr':'Length'}" />
1467 <Action name="CheckIshLength" module="Fit" source="InputFile" target="this" params="{'inputAttr':'InputFile','lengthAttr':'Length'}" />
1468 <Action name="ParseIshImage" module="Ifwi" source="InputFile" target="this" params="{'lengthAttr':'Length','enableAttr':'parent/IshSupported','enableValue':'Yes','OemKeyHashAttr':'$PlatformIntegrity/OemPublicKeyHash'}" />
1469 </Class>
1470
1471 <Class name="IshData" label="ISH Data">
1472 <ParentCandidate value="IntegratedSensorHub" />
1473
1474 <CfgOpt name="PdtBinary" label="PDT Binary File" value="" type="path" required="true" help="Path to your PDT binary file." />
1475
1476 <Action name="ProcessNvarPackage" module="Nvar" source="null" target="PdtBinary" params="{'defaultNvar':'$FilePaths/IshPdt','packageName':'PDTD'}" />
1477 </Class>
1478
1479 <Class name="IUnit" label="iUnit">
1480 <ParentCandidate value="FitData" />
1481 </Class>
1482
1483 <Class name="IUnitSecureTouch" label="Secure Touch">
1484 <ParentCandidate value="IUnit" />
1485 <CfgOpt name="IUnitSecureTouch" value="Disabled" type="class:DisabledEnabledValues" label="Secure Touch" help="If enabled, the CSI streams identified by the CAMERA_MASK register have all pixels replaced by a fixed value (i.e. disable camera)" />
1486 <Action name="ProcessNvar" module="Nvar" source="null" target="IUnitSecureTouch" params="{'filePath':'$FilePaths/IUnitSecTouch','varSize':'1'}" />
1487 </Class>
1488
1489 <Class name="IUnitSecurityControl" label="Security Control">
1490 <ParentCandidate value="IUnit" />
1491 <CfgOpt name="IUnitFWSecureMode" value="Enabled" type="class:DisabledEnabledValues" label="Firmware Secure Mode" help="If enabled, access blockers in IS and PS are enabled, so as to authenticate camera firmware. Must be enabled for FW authentication flow and execution of authenticated FW." />
1492 <CfgOpt name="IUnitDfxSecFeatEnOvrd" value="Enabled" type="class:DisabledEnabledValues" label="Dfx Secure Feature En Override" help="If enabled, NPK is enabled, else dfxsecure_feature_en signal is checked to see if the NPK feature should be enabled or not." />
1493 <Action name="ProcessNvar" module="Nvar" source="null" target="IUnitFWSecureMode" params="{'filePath':'$FilePaths/IUnitSecCtl','cellIndex':'3','cellSize':'4'}" />
1494 <Action name="ProcessNvar" module="Nvar" source="null" target="IUnitDfxSecFeatEnOvrd" params="{'filePath':'$FilePaths/IUnitSecCtl','cellIndex':'0','cellSize':'4'}" />
1495 </Class>
1496
1497 <Class name="IUnitCameraMask" label="Camera Mask">
1498 <ParentCandidate value="IUnit" />
1499 <CfgOpt name="IUnitCameraMask1" value="0x3F" type="byte" range="{'max':'0x3F'}" label="Camera Mask 1" help="Bit mask that identifies cameras that are subject to secure touch, in CSI port A. 1 indicates camera is subject to secure touch, 0 means it is not." />
1500 <CfgOpt name="IUnitCameraMask2" value="0x3F" type="byte" range="{'max':'0x3F'}" label="Camera Mask 2" help="Bit mask that identifies cameras that are subject to secure touch, in CSI port B. 1 indicates camera is subject to secure touch, 0 means it is not." />
1501 <Action name="ProcessNvar" module="Nvar" source="null" target="IUnitCameraMask1" params="{'filePath':'$FilePaths/IUnitCameraMask','cellIndex':'0','cellSize':'4'}" />
1502 <Action name="ProcessNvar" module="Nvar" source="null" target="IUnitCameraMask2" params="{'filePath':'$FilePaths/IUnitCameraMask','cellIndex':'1','cellSize':'4'}" />
1503 </Class>
1504
1505 <Class name="IUnitCSI2PortConfigAB" label="CSI2 Port Config AB">
1506 <ParentCandidate value="IUnit" />
1507 <CfgOpt name="IUnitPortIdA" value="0x00" type="byte" range="{'max':'0x3F'}" label="PORT_ID_A" help="Specifies configuration of cameras and data lanes allocated to each camera port, for CSI port A. (MSB not used). The 20-pins of set A can be configured and connected to up to four cameras in the platform using MIPI DPHY protocol. The field PORT_ID_A is used to select the number of cameras (also called ports) and the number of data lanes allocated to each camera port. See IUNIT AE for more information on how to configure this field." />
1508 <CfgOpt name="IUnitPortIdB" value="0x00" type="byte" range="{'max':'0x3F'}" label="PORT_ID_B" help="Specifies configuration of cameras and data lanes allocated to each camera port, for CSI port B. (MSB not used). The 12-pins of set B can be configured and connected to either four cameras in the platform using MIPI CPHY protocol OR up to two cameras in the platform using the MIPI DPHY protocol. See IUNIT AE for more information on how to configure this field." />
1509 <Action name="ProcessNvar" module="Nvar" source="null" target="IUnitPortIdA" params="{'filePath':'$FilePaths/IUnitPortCfg','cellIndex':'0','cellSize':'1'}" />
1510 <Action name="ProcessNvar" module="Nvar" source="null" target="IUnitPortIdB" params="{'filePath':'$FilePaths/IUnitPortCfg','cellIndex':'3','cellSize':'1'}" />
1511 </Class>
1512
1513 <Class name="Debug" label="Debug">
1514 <ParentCandidate value="FitData" />
1515 </Class>
1516
1517 <Class name="IntelTxeFirmwareDebuggingOverrides" label="Intel(R) TXE Firmware Debugging Overrides">
1518 <ParentCandidate value="Debug" />
1519
1520 <CfgOpt name="DbgOverridePreProdSi" label="Debug Override Pre-Production Silicon" value="0x0" type="dword" help="Allows the OEM to control FW features to assist with pre-production platform debugging. This control has no effect if used on production silicon. Note: Certain options will do not work when the descriptor is locked (See FW Bring-up Guide for setting details)." />
1521 <CfgOpt name="DbgOverrideProdSi" label="Debug Override Production Silicon" value="0x0" type="dword" help="Allows the OEM to control FW features to assist with production platform debugging. Note: Certain options will do not work when the descriptor is locked (See FW Bring-up Guide for setting details)." />
1522 <Action name="ProcessNvar" module="Nvar" source="null" target="DbgOverridePreProdSi" params="{'filePath':'$FilePaths/KernFixedData','startOffset':'12','varSize':'4'}" />
1523 <Action name="ProcessNvar" module="Nvar" source="null" target="DbgOverrideProdSi" params="{'filePath':'$FilePaths/KernFixedData','startOffset':'16','varSize':'4'}" />
1524
1525 <!-- TODO: Missing softstrap -->
1526 <!-- <CfgOpt name="MERstCapCLRst1Enabled" label="Enable Intel(R) ME Reset Capture on CLR_RST#" value="No" type="class:NoYesValues" required="true" /> -->
1527
1528 <CfgOpt name="TxeRomBypassEnable" label="Firmware ROM Bypass" value="No" type="class:NoYesValues" required="true" gui-mode="Read" help="" /> <!-- Read only by default until valid ME image is loaded with ROMB supported -->
1529
1530 <!-- Hidden Setting -->
1531 <CfgOpt name="ForceOEMKeyHashFailure" label="Force OEM Key Hash Failure" value="No" type="class:NoYesValues" required="false" help="See SPI and SMIP Programming Guide for more information" />
1532 </Class>
1533
1534 <Class name="DirectConnectInterfaceConfiguration" label="Direct Connect Interface Configuration">
1535 <ParentCandidate value="Debug" />
1536
1537 <!-- <CfgOpt name="DciEnable" label="Direct Connect Interface (DCI) Enabled" type="class:NoYesValues" value="No" required="true" help="Direct Connect Interface (DCI) Enabled" /> -->
1538 </Class>
1539
1540 <Class name="IntelTraceHubTechnology" label="Intel(R) Trace Hub Technology">
1541 <ParentCandidate value="Debug" />
1542
1543 <!-- TODO: Missing Softstrap
1544 <CfgOpt name="RomTraceEmergencyModeEn" label="Intel(R) Trace Hub Emergency Mode Enabled" type="class:NoYesValues" value="No" required="true" help="This option enables ROM Tracing in the base platform image." />
1545 -->
1546 <!--<CfgOpt name="RomTraceSoftEnable" label="Intel(R) Trace Hub Soft Enabled" type="class:NoYesValues" value="No" required="false " /> --><!-- SPI Guide says this should not be visible -->
1547
1548 <CfgOpt name="IntelTrcHubBinary" label="Intel(R) Trace Hub Binary" value="" type="path" help="This loads the Intel (R) Trace Hub binary that will be merged into the into the output image generated by the Intel(R) FIT tool." />
1549 <Action name="ProcessNvar" module="Nvar" source="null" target="IntelTrcHubBinary" params="{'filePath':'$FilePaths/NorthPeakDebug','isBinaryFile':'true'}" />
1550
1551 <CfgOpt name="UtokLength" label="" value="0x2000" type="dword" />
1552 <CfgOpt name="UnlockToken" label="Unlock Token" value="" type="path" help="This allows the OEM to input an Unlock Token binary file for closed chassis debug." />
1553 <CfgOpt name="NpkPtiDis" label="Early boot NPK" type="class:EnabledDisabledValues" value="Enabled" help="This configuration allows enabling/disabling NorthPeak logging capability for early boot. By enabling this feature, TXE engine will control GPIO_0 to GPIO_4 pins for PTI. Disable it if you do not wish for TXE to control these GPIOs"/>
1554 <Action name="ProcessNvar" module="Nvar" source="null" target="NpkPtiDis" params="{'filePath':'$FilePaths/NpkPtiDisable','varSize':'1'}"/>
1555 </Class>
1556
1557 <Class name="Idlm" label="IDLM">
1558 <ParentCandidate value="Debug" />
1559 <CfgOpt name="IdlmBinary" label="IDLM Binary" value="" type="path" help="This allows an IDLM binary to be merged into output image built by Intel (R) FIT" />
1560 </Class>
1561
1562 <Class name="BootSourceSelection" label="Boot Source Selection">
1563 <ParentCandidate value="FlashSettings" />
1564
1565 <CfgOpt name="SpiBootSourceEnabled" label="SPI Boot Source Enable/Disable" type="class:EnabledDisabledValues" value="Disabled" help="Permanent Enable/Disable SPI Boot Device FPF" />
1566 <CfgOpt name="UfsBootSourceEnabled" label="UFS Boot Source Enable/Disable" type="class:EnabledDisabledValues" value="Disabled" help="Permanent Enable/Disable UFS Boot Device FPF" />
1567 <CfgOpt name="EmmcBootSourceEnabled" label="eMMc Boot Source Enable/Disable" type="class:EnabledDisabledValues" value="Enabled" help="Permanent Enable/Disable eMMc Boot Device FPF" />
1568 </Class>
1569
1570 <Class name="IfpEmulation" label="IFP Emulation">
1571 <ParentCandidate value="Debug" />
1572 <CfgOpt name="IfpEmulationEnable" label="SPI Soft Strap Emulation Enable" type="class:NoYesValues" value="Yes" help="" />
1573 <CfgOpt name="EmulatePreBootSourceEnable" label="SPI Soft Strap Emulation IFP Pre Boot Source Enable" type="class:NoYesValues" value="No" help="" />
1574 <CfgOpt name="EmulateDataPartRdyOper" value="No" type="class:NoYesValues" label="SPI Soft Strap Emulation of IFP Data Partition Ready Operational" />
1575 <CfgOpt name="EmulatePreDataPartRdy" value="No" type="class:NoYesValues" label="SPI Soft Strap Emulation of IFP Pre Data Partition Ready" />
1576 <CfgOpt name="EmulateDataPartRdyCfg" value="No" type="class:NoYesValues" label="SPI Soft Strap Emulation of IFP Data Partition Ready Config" />
1577 </Class>
1578
1579 <Class name="UepDebug" label="UEP Debug Settings">
1580 <ParentCandidate value="Debug" />
1581 <CfgOpt name="RpmbRebindCounter" label="RPMB Rebind Counter" type="dword" value="0" help="" />
1582 <CfgOpt name="RpmbMigrationDone" label="RPM Migration Done" type="class:NoYesValues" value="No" help="" />
1583
1584 <CfgOpt name="SocConfigLockEnabled" label="SOC Config Lock Enable" type="class:NoYesValues" value="No" help="" />
1585 <CfgOpt name="PartSpecificUnlockEnabled" label="Part Specific Unlock Enable" type="class:NoYesValues" value="No" help="" />
1586 <Action name="DisableIf" module="Fit" source="SocConfigLockEnabled" target="PartSpecificUnlockEnabled" params="{'sourceVal':'No','targetVal':'No'}" />
1587
1588 <!-- The following ISHC bits are most likely not going to be used since we have the OEM/ROT
1589 key manifests. -->
1590 <CfgOpt name="IshcOemSigned" label="ISHC OEM Signed" type="class:NoYesValues" value="Yes" help="" />
1591 <CfgOpt name="IshdOemSigned" label="ISHD OEM Signed" type="class:NoYesValues" value="Yes" help="" />
1592
1593 <Action name="DisableIf" module="Fit" source="$IntegratedSensorHub/IshSupported" target="IshcOemSigned" params="{'sourceVal':'No','targetVal':'No'}" />
1594 <Action name="DisableIf" module="Fit" source="$IntegratedSensorHub/IshSupported" target="IshdOemSigned" params="{'sourceVal':'No','targetVal':'No'}" />
1595
1596 <CfgOpt name="AuxOemPublicKeyHash" label="AUX OEM Public Key Hash" value="00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" type="string" required="true" help="This option is for entering the raw hash string or certificate file for the SHA-256 hash of the OEM public key corresponding to the private key used to sign the OEM Key hash manifest. When manufacture is completed, this hash value is burned into an FPF. This value is used to verify the OEM Key hash, and also DnX images." />
1597 <Action name="ValidateCertHash" module="Fit" source="AuxOemPublicKeyHash" target="this" params="{'fixedLength':'32'}" /> <!-- Hash size must be 32 bytes (SHA-256) -->
1598 </Class>
1599
1600 <Class name="HvmFuseEmulation" label="HVM Fuse Emulation">
1601 <ParentCandidate value="Debug" />
1602 <CfgOpt name="EmulateOverrideSocDevReuseDisabled" label="Override SoC Device Reuse HVM fuse value Emulation" type="class:NoYesValues" value="No" help="See SPI and SMIP Programming Guide for more information" />
1603 </Class>
1604
1605 <Class name="SeKeyModeValues">
1606 <CfgOpt name="0" value="0x0" type="byte" required="false" />
1607 <CfgOpt name="1" value="0x1" type="byte" required="false" />
1608 </Class>
1609
1610 <!-- CPU Straps -->
1611 <Class name="CpuStraps" label="CPU Straps">
1612 <ParentCandidate value="FitData" />
1613 <!--
1614 <CfgOpt name="CpuBlank" type="dword" value="0x0" required="true" />
1615 <CfgOpt name="SaPowerPlaneTopology" type="dword" value="0x2" required="true" />
1616 <CfgOpt name="SaVrType" type="dword" value="0x0" required="true" />
1617 <CfgOpt name="IaPowerPlaneTopology" type="dword" value="0x0" required="true" />
1618 <CfgOpt name="IaVrType" type="dword" value="0x0" required="true" />
1619 <CfgOpt name="RingPowerPlaneTopology" type="dword" value="0x0" required="true" />
1620 <CfgOpt name="RingVrType" type="dword" value="0x0" required="true" />
1621 <CfgOpt name="GtUsPowerPlaneTopology" type="dword" value="0x1" required="true" />
1622 <CfgOpt name="GtUsVrType" type="dword" value="0x0" required="true" />
1623 <CfgOpt name="GtSPowerPlaneTopology" type="dword" value="0x1" required="true" />
1624 <CfgOpt name="GtSVrType" type="dword" value="0x0" required="true" />
1625 <CfgOpt name="PlatformImonDisable" type="dword" value="0x0" required="true" />
1626 <CfgOpt name="EopioPowerPlaneTopology" type="dword" value="0x0" required="true" />
1627 <CfgOpt name="EopioVrType" type="dword" value="0x1" required="true" />
1628 <CfgOpt name="EdramPowerPlaneTopology" type="dword" value="0x0" required="true" />
1629 <CfgOpt name="EdramVrType" type="dword" value="0x1" required="true" />
1630 <CfgOpt name="SeKeyMode" type="class:SeKeyModeValues" value="0" required="true" /> -->
1631 </Class>
1632
1633 <!-- End of PCH and CPU Straps -->
1634 <Class name="Overrides">
1635 <ParentCandidate value="FitData" />
1636 </Class>
1637
1638 <Class name="OverrideTypes">
1639 <CfgOpt name="byte" value="byte" type="string" required="false" />
1640 <CfgOpt name="word" value="word" type="string" required="false" />
1641 <CfgOpt name="dword" value="dword" type="string" required="false" />
1642 <CfgOpt name="bitfield8" value="bitfield8" type="string" required="false" />
1643 <CfgOpt name="bitfield16" value="bitfield16" type="string" required="false" />
1644 <CfgOpt name="bitfield32" value="bitfield32" type="string" required="false" />
1645 </Class>
1646
1647 <Class name="Override">
1648 <ParentCandidate value="Overrides" />
1649 <CfgOpt name="OverrideOffset" value="0x0" type="dword" xml-mode="true" xml-attr="offset" required="true" />
1650 <CfgOpt name="OverrideValue" value="0x0" type="dword" xml-mode="true" xml-attr="value" required="true" default="true" />
1651 <CfgOpt name="OverrideType" value="byte" type="string" xml-mode="true" xml-attr="type" required="true" />
1652 <CfgOpt name="OverrideBitStart" value="0x0" type="byte" xml-mode="true" xml-attr="start" required="false" />
1653 <CfgOpt name="OverrideBitEnd" value="0x0" type="byte" xml-mode="true" xml-attr="end" required="false" />
1654 </Class>
1655
1656
1657 <!--
1658 IFWI Definitions start here.
1659 ************************************************************************************************
1660 -->
1661
1662 <!-- Nodes to skip in CSE decomposition mode -->
1663 <Class name="CseDecomSkipNodes">
1664 <CfgOpt name="BuildSettings" value="true" type="boolean" required="false" />
1665 <CfgOpt name="DescriptorRegion" value="true" type="boolean" required="false" />
1666 <CfgOpt name="BiosSubPartition" value="true" type="boolean" required="false" />
1667 <CfgOpt name="FlashSettings" value="true" type="boolean" required="false" />
1668 <CfgOpt name="PchStraps" value="true" type="boolean" required="false" />
1669 <CfgOpt name="CpuStraps" value="true" type="boolean" required="false" />
1670 <CfgOpt name="IfwiImage" value="true" type="boolean" required="false" />
1671 <CfgOpt name="GpioProfile" value="true" type="boolean" required="false" /> <!-- Profile decomp is handled by an action -->
1672 </Class>
1673
1674 <!-- This table is al used when decomposing the UFS type -->
1675 <Class name="eMMCDecompIgnoreNodes">
1676 <CfgOpt name="SpiHeader" value="true" type="boolean" required="false" />
1677 <CfgOpt name="bpdt" value="true" type="boolean" required="false" />
1678 <CfgOpt name="ucode_data" value="true" type="boolean" required="false" />
1679 <CfgOpt name="GpioProfile" value="true" type="boolean" required="false" /> <!-- Profile decomp is handled by an action -->
1680 </Class>
1681
1682 <Class name="SpiDecompIgnoreNodes">
1683 <CfgOpt name="bpdt" value="true" type="boolean" required="false" />
1684 <CfgOpt name="ucode_data" value="true" type="boolean" required="false" />
1685
1686 <CfgOpt name="GpioProfile" value="true" type="boolean" required="false" /> <!-- Profile decomp is handled by an action -->
1687 </Class>
1688
1689 <Class name="IfwiMapping">
1690 <CfgOpt name="name" value="" type="string" />
1691 <CfgOpt name="critical" value="0" type="byte" />
1692 <CfgOpt name="nonCritical" value="0" type="byte" />
1693 <CfgOpt name="layoutPath" value="" type="string" />
1694 </Class>
1695
1696 <Class name="IfwiImage">
1697 <LayoutEntry name="SpiHeader" type="class:SpiHeader" />
1698
1699 <LayoutEntry name="RegionData" type="class:RegionData" />
1700
1701 <!-- FIT Versioning -->
1702 <CfgOpt name="VersionMajor" value="0" type="word" required="false" />
1703 <CfgOpt name="VersionMinor" value="0" type="word" required="false" />
1704 <CfgOpt name="VersionHotfix" value="0" type="word" required="false" />
1705 <CfgOpt name="VersionBuild" value="0" type="word" required="false" />
1706 <Action name="GetToolVersion" module="Bin" source="null" target="this" />
1707 </Class>
1708
1709 <Class name="IfwiRegionData">
1710 <LayoutEntry name="RomBypassData" type="class:RomBypassData" />
1711 <LayoutEntry name="BootPartition1" type="class:BootPartition1" />
1712 <LayoutEntry name="BootPartition2" type="class:BootPartition2" />
1713
1714 <!-- The Boot Guard Profile settings are placed here and are set by
1715 ProcessProfile on interact. These settings are placed in IfwiRegionData
1716 after the uep class instance because for decomposition, uep must be
1717 decomposed first before trying to determine the profile.
1718 It cannot be placed in the uep class because there will be multiple
1719 instances due to the 2 primary boot partitions which causes
1720 GetBitArrayValue to blow up.-->
1721 <LayoutEntry name="BootGuardProfileSettings" type="class:BootGuardProfileSettings" />
1722 <Action name="ProcessProfile" module="Fit" source="$BootGuardConfiguration/BtGuardProfileConfig" target="BootGuardProfileSettings" params="{'profileClass':'BootGuardProfiles'}" />
1723 </Class>
1724
1725
1726 <!-- Basic data structures -->
1727 <Class name="CPD_HEADER">
1728 <LayoutEntry name="marker" value="0" type="dword" />
1729 <LayoutEntry name="entries" value="0" type="dword" />
1730 <LayoutEntry name="header_version" value="1" type="byte" />
1731 <LayoutEntry name="entry_version" value="1" type="byte" />
1732 <LayoutEntry name="header_length" value="0" type="byte" />
1733 <LayoutEntry name="checksum" value="0" type="byte" />
1734 <LayoutEntry name="partition_name" value="0" type="dword" />
1735
1736 <Action module="Bin" name="SetString" target="marker" source="null" params="$CPD" />
1737 <Action module="Bin" name="GetValue" target="header_length" source="this" params="length" />
1738 </Class>
1739
1740 <Class name="CPD_ENTRY">
1741
1742 <LayoutEntry name="name" value="0" type="byte12" />
1743 <LayoutEntry name="offset_address" value="0" type="bitfield32" bitfield_low="0" bitfield_high="24" />
1744 <LayoutEntry name="offset_compress_flag" value="0" type="bitfield32" bitfield_low="25" bitfield_high="25" />
1745 <LayoutEntry name="offset_reserved" value="0" type="bitfield32" bitfield_low="26" bitfield_high="31" />
1746 <LayoutEntry name="length" value="0" type="dword" />
1747 <LayoutEntry name="reserved" value="0" type="dword" />
1748 </Class>
1749
1750 <Class name="MANIFEST_HEADER">
1751 <LayoutEntry name="type" value="4" type="dword" description="Must be 0x4" />
1752 <LayoutEntry name="length" value="161" type="dword" description="in Dwords equals 161 for this version" />
1753 <LayoutEntry name="version" value="0x10000" type="dword" description="0x1000 for this version" />
1754 <LayoutEntry name="flags" value="0" type="dword" description="Debug intel owned" />
1755 <LayoutEntry name="vendor" value="0x8086" type="dword" description="0x8086 for intel" />
1756 <LayoutEntry name="date" value="0" type="dword" description="yyymmdd in BCD format" />
1757 <LayoutEntry name="size" value="0" type="dword" description="in Dwords size of the entire manifest. Maximum size is 2K DWORDS (8KB)" />
1758 <LayoutEntry name="header_id" value="0" type="dword" description="Magic number. Equals $MN2 for this version" />
1759 <LayoutEntry name="reserved0" value="0" type="dword" description="Must be 0x4" />
1760 <LayoutEntry name="version_major" value="11" type="word" description="Major Version" />
1761 <LayoutEntry name="version_minor" value="0" type="word" description="Minor Version" />
1762 <LayoutEntry name="version_hotfix" value="0" type="word" description="Hotfix" />
1763 <LayoutEntry name="version_build" value="0" type="word" description="Build number" />
1764 <LayoutEntry name="svn" value="1" type="dword" description="Secure Version Number" />
1765 <LayoutEntry name="reserved1" value="0" type="qword" description="must be 0" />
1766 <LayoutEntry name="reserved2" value="0" type="byte64" description="will be set to 0" />
1767 <LayoutEntry name="modulus_size" value="64" type="dword" description="In DWORDs; 64 for pkcs 1.5-2048" />
1768 <LayoutEntry name="exponent_size" value="1" type="dword" description="In DWORDs; 1 for pkcs 1.5-2048" />
1769
1770 <Action module="Bin" name="SetString" target="header_id" source="null" params="$MN2" />
1771 <Action module="Bin" name="SetDate" target="date" source="date" />
1772 <Action module="Bin" name="GetValue" target="version_major" source="$IfwiImage/VersionMajor" params="value" />
1773 <Action module="Bin" name="GetValue" target="version_minor" source="$IfwiImage/VersionMinor" params="value" />
1774 <Action module="Bin" name="GetValue" target="version_hotfix" source="$IfwiImage/VersionHotfix" params="value" />
1775 <Action module="Bin" name="GetValue" target="version_build" source="$IfwiImage/VersionBuild" params="value" />
1776 <Action module="Bin" name="GetValue" target="svn" source="parent/parent/SecurityVersionNumber" params="value" />
1777 <Action module="Bin" name="GetValue" target="size" source="parent/data" params="length" />
1778 <Action module="Bin" name="ConvertToDword" target="size" source="size" />
1779 </Class>
1780
1781 <Class name="CRYPTO_BLOCK">
1782 <LayoutEntry name="public_key" value="0" type="byte256" description="Publick Key" />
1783 <LayoutEntry name="exponent" value="0" type="dword" description="Exponent" />
1784 <LayoutEntry name="signature" value="0" type="byte256" description="RSA signature of manifest" />
1785 </Class>
1786 <!-- end of basic data structures -->
1787
1788
1789 <Class name="SpiHeader" label="SPI Header">
1790 <CfgOpt name="Length" value="0x0" type="dword" required="false" />
1791
1792 <!-- Option used to store ROM Bypass command line override -->
1793 <CfgOpt name="RombCli" value="RombCliDisabled" type="class:RombCliValues" required="false" />
1794 <!-- Option used to store User Delta XML override -->
1795 <CfgOpt name="RombUserXml" value="RombCliDisabled" type="class:RombCliValues" required="false" />
1796
1797 <!-- SPI Descriptor should be placed here -->
1798 <CfgOpt name="Name" value="Descriptor Region" type="string" required="false" />
1799
1800 <!-- Setting the round_to option to expand the size of each region without
1801 having to expand the layout of each child subclass -->
1802
1803 <!-- TODO: The binary generator has a bug in which the round_to calculation is
1804 off by 4 bytes if the class instance ends with a bitfield32 type. The WA
1805 is to pad the class instance with a regular native type if the round_to
1806 directive is required -->
1807 <LayoutEntry name="Descriptor" type="class:BLOB" round_to="0x1000" />
1808 <LayoutEntry name="DescFdBar" type="class:FDBAR" align="4096" round_to="0x30" description="offset 0x00" target="Descriptor" />
1809 <LayoutEntry name="DescFcBa" type="class:FCBA" description="offset 0x30" target="Descriptor" />
1810 <LayoutEntry name="reserved" value="0xFFFFFFFF" type="dword" target="Descriptor" />
1811 <LayoutEntry name="DescFrBa" type="class:FRBA" round_to="0x40" description="offset 0x40" target="Descriptor" />
1812 <LayoutEntry name="DescFmBa" type="class:FMBA" round_to="0x80" description="offset 0x80" target="Descriptor" />
1813 <LayoutEntry name="DescFPSBA" type="class:FPSBA" round_to="0x200" description="offset 0x100" target="Descriptor" />
1814 <LayoutEntry name="DescFMSBA" type="class:FMSBA" round_to="0xAF0" description="offset 0x300" target="Descriptor" />
1815 <LayoutEntry name="DescVtbax" type="class:VTBAX" description="offset 0xDF0" target="Descriptor" />
1816 <LayoutEntry name="DescOEM" type="class:OEM" round_to="0x100" description="offset 0xF00" target="Descriptor" />
1817 <LayoutEntry name="DescRibax" type="class:RIBAX" target="Descriptor" />
1818
1819 <Action name="DecompRegionMap" module="Fit" source="null" target="this" params="" />
1820
1821 <Action name="BxtSpiSetup" module="Ifwi" source="null" target="this" params="" />
1822 <Action name="BxtSpiPost" module="Ifwi" source="$RomBypassData/rombData" target="this" params="" />
1823 </Class>
1824
1825 <Class name="DataPartition">
1826 <CfgOpt name="Name" label="Name" value="TXE Data Region" type="string" required="false" />
1827
1828 <!-- These are dummy CfgOpts to make this region play nice with the IFWI size calculations -->
1829 <CfgOpt name="InputFile" value="" type="path" required="false" />
1830 <CfgOpt name="InputFilePath" value="$DataPartition/InputFile" type="string" required="false" />
1831 <CfgOpt name="LengthPath" value="$SpiDataRegion/Length" type="string" required="false" />
1832
1833 <!-- It seems that in order to pad the data properly, it is required to have
1834 at least one native type targeting this BLOB -->
1835 <LayoutEntry name="data" type="class:BLOB" align="4096" />
1836 <LayoutEntry name="fill" value="0xFF" type="byte" target="data" />
1837
1838 <Action name="CheckLength" module="Bin" source="$SpiDataRegion/Length" target="data" params="" />
1839 <Action name="Enable" module="Bin" source="$SpiDataRegion/Enabled" target="this" />
1840
1841 <Action name="AddMapEntry" module="Bin" target="this" source="Name" params="" />
1842 </Class>
1843
1844 <Class name="BpdtTypeValues">
1845 <CfgOpt name="OEM SMIP" value="0" type="dword" required="false" />
1846 <CfgOpt name="CSE RBE" value="1" type="dword" required="false" />
1847 <CfgOpt name="CSE BUP" value="2" type="dword" required="false" />
1848 <CfgOpt name="uCode" value="3" type="dword" required="false" />
1849 <CfgOpt name="IBB" value="4" type="dword" required="false" />
1850 <CfgOpt name="S-BPDT" value="5" type="dword" required="false" />
1851 <CfgOpt name="OBB" value="6" type="dword" required="false" />
1852 <CfgOpt name="CSE Main" value="7" type="dword" required="false" />
1853 <CfgOpt name="ISH" value="8" type="dword" required="false" />
1854 <CfgOpt name="CSE IDLM" value="9" type="dword" required="false" />
1855 <CfgOpt name="IFP Override" value="10" type="dword" required="false" />
1856 <CfgOpt name="Debug Tokens" value="11" type="dword" required="false" />
1857 <CfgOpt name="UFS Phy" value="12" type="dword" required="false" />
1858 <CfgOpt name="UFS GPP LUN" value="13" type="dword" required="false" />
1859 <CfgOpt name="PMC" value="14" type="dword" required="false" />
1860 <CfgOpt name="iUnit" value="15" type="dword" required="false" />
1861 <CfgOpt name="UEP" value="17" type="dword" required="false" />
1862 </Class>
1863
1864 <Class name="BpdtFixedOrderEntries" gui-mode="Hidden">
1865 <ParentCandidate value="PrimaryBootPartition" />
1866 <ParentCandidate value="SecondaryBootPartition" />
1867 </Class>
1868
1869 <Class name="BpdtFixedOrderType" gui-mode="Hidden">
1870 <ParentCandidate value="BpdtFixedOrderEntries" />
1871 <CfgOpt name="TypeId" value="0x0" type="dword" required="true" default="true" />
1872 </Class>
1873
1874 <Class name="BpdtFixedOrderEntry" gui-mode="Hidden">
1875 <ParentCandidate value="BpdtFixedOrderEntries" />
1876 <CfgOpt name="TypeId" value="0x0" type="class:BpdtTypeValues" required="true" default="true" />
1877 </Class>
1878
1879 <Class name="PrimaryBootPartitionFixedOrderEntries">
1880 <LayoutEntry name="entry" type="class:BpdtFixedOrderType" init="{'TypeId':'0x9'}" />
1881 <LayoutEntry name="entry" type="class:BpdtFixedOrderEntry" init="{'TypeId':'IFP Override'}" />
1882 <LayoutEntry name="entry" type="class:BpdtFixedOrderEntry" init="{'TypeId':'S-BPDT'}" />
1883 <LayoutEntry name="entry" type="class:BpdtFixedOrderEntry" init="{'TypeId':'CSE RBE'}" />
1884 <LayoutEntry name="entry" type="class:BpdtFixedOrderEntry" init="{'TypeId':'UFS Phy'}" />
1885 <LayoutEntry name="entry" type="class:BpdtFixedOrderEntry" init="{'TypeId':'UFS GPP LUN'}" />
1886 <LayoutEntry name="entry" type="class:BpdtFixedOrderEntry" init="{'TypeId':'CSE BUP'}" />
1887 <LayoutEntry name="entry" type="class:BpdtFixedOrderEntry" init="{'TypeId':'UEP'}" />
1888 </Class>
1889
1890 <Class name="SecondaryBootPartitionFixedOrderEntries">
1891 <!-- Enter fixed layout entry dependencies for secondary boot partition -->
1892 </Class>
1893
1894 <Class name="CseSubPartitions">
1895 <LayoutEntry name="CSE RBE" value="CSE RBE" type="class:BpdtTypeValues" />
1896 <LayoutEntry name="CSE BUP" value="CSE BUP" type="class:BpdtTypeValues" />
1897 <LayoutEntry name="CSE Main" value="CSE Main" type="class:BpdtTypeValues" />
1898 <LayoutEntry name="CSE IDLM" value="CSE IDLM" type="class:BpdtTypeValues" />
1899 </Class>
1900
1901
1902 <Class name="BiosSubPartitions">
1903 <LayoutEntry name="IBB" value="IBB" type="class:BpdtTypeValues" />
1904 <LayoutEntry name="OBB" value="OBB" type="class:BpdtTypeValues" />
1905 </Class>
1906
1907
1908 <Class name="BootPartition1" label="Boot Partition One">
1909 <ParentCandidate value="ftoolRoot" />
1910
1911 <CfgOpt name="Enabled" value="true" type="class:BooleanValues" required="true" help="Enable/Disable boot partition." />
1912 <CfgOpt name="Length" value="0x400000" type="dword" required="true" help="Set the length of the boot partition." />
1913
1914 <Action name="CheckLength" module="Bin" source="Length" target="this" />
1915
1916 <!-- CC and NC partitions -->
1917 <LayoutEntry name="PrimaryBootPartition" type="class:PrimaryBootPartition" />
1918 <LayoutEntry name="SecondaryBootPartition" type="class:SecondaryBootPartition" />
1919
1920 <CfgOpt name="Name" value="Boot Partition 1" type="string" />
1921 <Action name="AddMapEntry" module="Bin" target="this" source="Name" params="" />
1922 </Class>
1923
1924 <Class name="BootPartition2" label="Boot Partition Two">
1925 <ParentCandidate value="ftoolRoot" />
1926
1927 <CfgOpt name="Enabled" value="true" type="class:BooleanValues" required="true" help="Enable/Disable boot partition." />
1928 <CfgOpt name="Length" value="0x400000" type="dword" required="true" help="Set the length of the boot partition." />
1929
1930 <Action name="CheckLength" module="Bin" source="Length" target="this" />
1931
1932 <!-- CC and NC partitions -->
1933 <LayoutEntry name="PrimaryBootPartition" type="class:PrimaryBootPartition" />
1934 <LayoutEntry name="SecondaryBootPartition" type="class:SecondaryBootPartition" />
1935
1936 <CfgOpt name="Name" value="Boot Partition 2" type="string" />
1937 <Action name="AddMapEntry" module="Bin" target="this" source="Name" params="" />
1938 </Class>
1939
1940 <Class name="PrimaryBootPartition" label="Primary Boot Partition">
1941 <CfgOpt name="Length" value="0x0" type="dword" required="true" help="Set the length of the primary boot partition." />
1942 <LayoutEntry name="bpdt_start" type="class:BLOB" align="1" round_to="512" />
1943 <LayoutEntry name="bpdt" type="class:BLOB" target="bpdt_start" />
1944 <LayoutEntry name="header" value="0x000055AA" type="dword" target="bpdt" />
1945 <LayoutEntry name="count" value="0" type="word" target="bpdt" />
1946 <LayoutEntry name="version" value="1" type="word" target="bpdt" />
1947 <LayoutEntry name="checksum" value="0" type="dword" target="bpdt" />
1948 <LayoutEntry name="ifwi_version" value="0" type="dword" target="bpdt" />
1949 <LayoutEntry name="VersionMajor" value="0" type="word" target="bpdt" />
1950 <LayoutEntry name="VersionMinor" value="0" type="word" target="bpdt" />
1951 <LayoutEntry name="VersionHotfix" value="0" type="word" target="bpdt" />
1952 <LayoutEntry name="VersionBuild" value="0" type="word" target="bpdt" />
1953 <LayoutEntry name="entries" value="0" type="class:BLOB" target="bpdt" />
1954
1955 <!--
1956 Sub Partitions that must be defined in the first 4KB of the Primary boot
1957 partition.
1958 -->
1959 <LayoutEntry name="UfsGppLun" type="class:BLOB" align="512" />
1960 <LayoutEntry name="UfsPhyConfig" type="class:BLOB" />
1961 <LayoutEntry name="IfpOverrides" type="class:BLOB" />
1962 <LayoutEntry name="UepData" type="class:BLOB" />
1963
1964 <Action name="CheckLength" module="Bin" source="Length" target="this" />
1965 <Action name="GetValue" module="Bin" source="$BuildResults/IfwiBuildVersion" target="ifwi_version" params="value" />
1966 <Action name="AdjustBpdtTable" module="Ifwi" source="this" target="bpdt" params="bpdt" />
1967
1968 <Action name="GetValue" module="Bin" source="$IfwiImage/VersionMajor" target="VersionMajor" params="value" />
1969 <Action name="GetValue" module="Bin" source="$IfwiImage/VersionMinor" target="VersionMinor" params="value" />
1970 <Action name="GetValue" module="Bin" source="$IfwiImage/VersionHotfix" target="VersionHotfix" params="value" />
1971 <Action name="GetValue" module="Bin" source="$IfwiImage/VersionBuild" target="VersionBuild" params="value" />
1972
1973 <Action name="CalcBpdtXor" module="Ifwi" source="$BuildResults/RedundancyEnabled" target="bpdt" params="" />
1974
1975 <!-- Sub Partitions -->
1976
1977 <!-- Partitions that are part of the first 4KB -->
1978 <LayoutEntry name="UfsPhyLunSubPartition" type="class:UfsPhyLunSubPartition" target="UfsGppLun" />
1979 <LayoutEntry name="UfsPhySubPartition" type="class:UfsPhySubPartition" target="UfsPhyConfig" />
1980 <LayoutEntry name="IfpOverrideSubPartition" type="class:IfpOverrideSubPartition" target="IfpOverrides" />
1981 <LayoutEntry name="UepSubPartition" type="class:UepSubPartition" target="UepData" />
1982
1983 <!-- Rest of the partitions -->
1984 <LayoutEntry name="OemSmipSubPartition" type="class:OemSmipSubPartition" align="4096" />
1985 <LayoutEntry name="CseRbeSubPartition" type="class:CseRbeSubPartition" />
1986 <LayoutEntry name="PmcpSubPartition" type="class:PmcpSubPartition" />
1987 <LayoutEntry name="CseBupSubPartition" type="class:CseBupSubPartition" />
1988 <LayoutEntry name="UCodeSubPartitionBin" type="class:UCodeSubPartitionBin" />
1989 <LayoutEntry name="IbbSubPartition" type="class:IbbSubPartition" />
1990 <LayoutEntry name="IdlmSubPartition" type="class:IdlmSubPartition" />
1991 <LayoutEntry name="DebugTokenSubPartition" type="class:DebugTokenSubPartition" />
1992
1993
1994 <!-- Fixed order entries -->
1995 <LayoutEntry name="BpdtFixedOrderEntries" type="class:PrimaryBootPartitionFixedOrderEntries" />
1996
1997 <CfgOpt name="Name" value="Primary Boot Partition" type="string" />
1998 <Action name="AddMapEntry" module="Bin" target="this" source="Name" params="{'indent':'1'}" />
1999 </Class>
2000
2001 <Class name="SecondaryBootPartition" label="Secondary Boot Partition">
2002 <CfgOpt name="RegionType" value="0x5" type="dword" required="false" />
2003 <CfgOpt name="Length" value="0x0" type="dword" required="true" help="Set the length of the secondary boot partition." />
2004
2005 <!-- S-BPDT Entry in BPDT -->
2006 <LayoutEntry name="entry" type="class:BLOB" target="parent/PrimaryBootPartition/entries" />
2007 <LayoutEntry name="type" value="0" type="dword" target="entry" />
2008 <LayoutEntry name="offset" value="0" type="dword" target="entry" />
2009 <LayoutEntry name="size" value="0" type="dword" target="entry" />
2010
2011 <Action name="Add" module="Bin" source="null" target="parent/PrimaryBootPartition/count" params="1" />
2012 <Action name="GetValue" module="Bin" source="this" target="offset" params="offset" />
2013 <Action name="CalcOffset" module="Bin" source="this" target="offset" params="parent/PrimaryBootPartition/bpdt" />
2014 <Action name="GetValue" module="Bin" source="this" target="size" params="length" />
2015 <Action name="GetValue" module="Bin" source="RegionType" target="type" params="value" />
2016
2017 <!-- Secondary boot partition -->
2018 <LayoutEntry name="bpdt" type="class:BLOB" align="1" round_to="512" />
2019 <LayoutEntry name="header" value="0x000055AA" type="dword" target="bpdt" />
2020 <LayoutEntry name="count" value="0" type="word" target="bpdt" />
2021 <LayoutEntry name="version" value="1" type="word" target="bpdt" />
2022 <LayoutEntry name="checksum" value="0" type="dword" target="bpdt" />
2023 <LayoutEntry name="ifwi_version" value="1" type="dword" target="bpdt" />
2024 <LayoutEntry name="VersionMajor" value="0" type="word" target="bpdt" />
2025 <LayoutEntry name="VersionMinor" value="0" type="word" target="bpdt" />
2026 <LayoutEntry name="VersionHotfix" value="0" type="word" target="bpdt" />
2027 <LayoutEntry name="VersionBuild" value="0" type="word" target="bpdt" />
2028 <LayoutEntry name="entries" value="0" type="class:BLOB" target="bpdt" />
2029
2030 <Action name="CheckLength" module="Bin" source="Length" target="this" />
2031 <Action name="GetValue" module="Bin" source="$BuildResults/IfwiBuildVersion" target="ifwi_version" params="value" />
2032 <Action name="AdjustBpdtTable" module="Ifwi" source="this" target="bpdt" params="sbpdt" />
2033
2034
2035 <Action name="GetValue" module="Bin" source="$IfwiImage/VersionMajor" target="VersionMajor" params="value" />
2036 <Action name="GetValue" module="Bin" source="$IfwiImage/VersionMinor" target="VersionMinor" params="value" />
2037 <Action name="GetValue" module="Bin" source="$IfwiImage/VersionHotfix" target="VersionHotfix" params="value" />
2038 <Action name="GetValue" module="Bin" source="$IfwiImage/VersionBuild" target="VersionBuild" params="value" />
2039
2040
2041 <!-- Sub Partitions -->
2042 <LayoutEntry name="ObbSubPartition" type="class:ObbSubPartition" />
2043 <LayoutEntry name="IshSubPartition" type="class:IshSubPartition" />
2044 <LayoutEntry name="CseMainSubPartition" type="class:CseMainSubPartition" />
2045 <LayoutEntry name="IunpSubPartition" type="class:IunpSubPartition" />
2046
2047 <!-- Fixed order entries -->
2048 <LayoutEntry name="BpdtFixedOrderEntries" type="class:SecondaryBootPartitionFixedOrderEntries" />
2049
2050 <CfgOpt name="Name" value="Secondary Boot Partition" type="string" />
2051 <Action name="AddMapEntry" module="Bin" target="this" source="Name" params="{'indent':'1'}" />
2052 </Class>
2053
2054 <Class name="UfsPhyLunSubPartition">
2055 <!-- BPDT Entry flags -->
2056 <CfgOpt name="RegionType" value="0xD" type="dword" required="false" />
2057 <CfgOpt name="ContainsCpd" value="false" type="boolean" required="false" />
2058 <CfgOpt name="DramEnabled" value="true" type="boolean" required="false" />
2059
2060 <LayoutEntry name="bpdt_entry" type="class:BpdtEntry" />
2061 <LayoutEntry name="data" type="class:BLOB" />
2062
2063 <LayoutEntry name="checksum" value="0" type="byte" target="data" />
2064 <LayoutEntry name="id" value="6" type="byte" target="data" />
2065
2066 <Action name="GetValue" module="Bin" source="$UfsSettings/UfsGppLunId" target="id" params="value" />
2067 <Action name="GenChecksum" module="Bin" source="id" target="checksum" params="{'type':'CRC8'}" />
2068 <Action name="Enable" module="Bin" source="$UfsSettings/UfsGppLunEnabled" target="this" />
2069
2070 <CfgOpt name="Name" value="UFS GPP LUN Partition" type="string" />
2071 <Action name="AddMapEntry" module="Bin" target="data" source="Name" params="{'indent':'2'}" />
2072 </Class>
2073
2074 <Class name="UfsPhySubPartition">
2075 <ParentCandidate value="PrimaryBootPartition" />
2076
2077 <CfgOpt name="Length" value="0x0" type="dword" required="true" help="Set the length of sub partition." />
2078 <CfgOpt name="RegionType" value="0xC" type="dword" required="false" />
2079
2080 <LayoutEntry name="bpdt_entry" type="class:BpdtEntry" />
2081 <LayoutEntry name="data" type="class:BLOB" />
2082
2083 <Action name="LoadBin" module="Bin" source="$UfsSettings/UfsPhyBinary" target="data" />
2084 <Action name="CheckLength" module="Bin" source="Length" target="this" />
2085
2086 <CfgOpt name="Name" value="UFS PHY Partition" type="string" />
2087 <Action name="AddMapEntry" module="Bin" target="data" source="Name" params="{'indent':'2'}" />
2088 </Class>
2089
2090 <Class name="IfpOverrideSubPartition" label="IFP Overrides">
2091 <ParentCandidate value="PrimaryBootPartition" />
2092
2093 <CfgOpt name="RegionType" value="0xA" type="dword" required="false" />
2094
2095 <LayoutEntry name="bpdt_entry" type="class:BpdtEntry" />
2096 <LayoutEntry name="data" type="class:BLOB" />
2097 <LayoutEntry name="uep" type="class:EmulationPartition" target="data" />
2098
2099 <CfgOpt name="Name" value="IFP Overrides Partition" type="string" />
2100 <Action name="AddMapEntry" module="Bin" target="data" source="Name" params="{'indent':'2'}" />
2101 </Class>
2102
2103 <Class name="UepSubPartition" label="Unified Emulation Partition">
2104 <ParentCandidate value="PrimaryBootPartition" />
2105
2106 <CfgOpt name="RegionType" value="17" type="dword" required="false" />
2107
2108 <LayoutEntry name="bpdt_entry" type="class:BpdtEntry" />
2109 <LayoutEntry name="data" type="class:BLOB" />
2110 <LayoutEntry name="uep" type="class:Uep" target="data" />
2111
2112 <CfgOpt name="Name" value="Unified Emulation Partition (UEP)" type="string" />
2113 <Action name="AddMapEntry" module="Bin" target="data" source="Name" params="{'indent':'2'}" />
2114 </Class>
2115
2116 <Class name="OemSmipSubPartition" label="OEM-SMIP">
2117 <ParentCandidate value="PrimaryBootPartition" />
2118
2119 <CfgOpt name="Length" value="0x0" type="dword" required="true" help="Set the length of sub partition." />
2120 <CfgOpt name="RegionType" value="0x0" type="dword" required="false" />
2121
2122 <LayoutEntry name="bpdt_entry" type="class:BpdtEntry" />
2123 <LayoutEntry name="data" type="class:BLOB" align="4096" round_to="4096" />
2124
2125 <Action name="LoadSubPartition" module="Ifwi" source="RegionType" target="data" />
2126 <Action name="CheckLength" module="Bin" source="Length" target="this" />
2127
2128 <CfgOpt name="Name" value="OEM SMIP Partition" type="string" />
2129 <Action name="AddMapEntry" module="Bin" target="data" source="Name" params="{'indent':'2'}" />
2130 </Class>
2131
2132 <Class name="CseRbeSubPartition" label="CSE-RBE">
2133 <ParentCandidate value="PrimaryBootPartition" />
2134
2135 <CfgOpt name="Length" value="0x0" type="dword" required="true" help="Set the length of sub partition." />
2136 <CfgOpt name="RegionType" value="0x1" type="dword" required="false" />
2137
2138 <LayoutEntry name="bpdt_entry" type="class:BpdtEntry" />
2139 <LayoutEntry name="data" type="class:BLOB" align="4096" round_to="4096" />
2140
2141 <Action name="LoadSubPartition" module="Ifwi" source="RegionType" target="data" />
2142 <Action name="CheckLength" module="Bin" source="Length" target="this" />
2143
2144 <CfgOpt name="Name" value="CSE RBE Partition" type="string" />
2145 <Action name="AddMapEntry" module="Bin" target="data" source="Name" params="{'indent':'2'}" />
2146 </Class>
2147
2148 <Class name="CseBupSubPartition" label="CSE-BUP">
2149 <ParentCandidate value="PrimaryBootPartition" />
2150
2151 <CfgOpt name="Length" value="0x0" type="dword" required="true" help="Set the length of sub partition." />
2152 <CfgOpt name="RegionType" value="0x2" type="dword" required="false" />
2153
2154 <LayoutEntry name="bpdt_entry" type="class:BpdtEntry" />
2155 <LayoutEntry name="data" type="class:BLOB" align="4096" round_to="4096" />
2156
2157 <Action name="ProcessSkuEmulation" module="Nvar" source="null" target="data" params="" />
2158 <Action name="LoadSubPartition" module="Ifwi" source="RegionType" target="data" />
2159 <Action name="CheckLength" module="Bin" source="Length" target="this" />
2160
2161 <CfgOpt name="Name" value="CSE BUP Partition" type="string" />
2162 <Action name="AddMapEntry" module="Bin" target="data" source="Name" params="{'indent':'2'}" />
2163 </Class>
2164
2165 <Class name="Modules" interact-mode="true">
2166 <ParentCandidate value="UCodeSubPartitionBin" />
2167 </Class>
2168
2169 <Class name="uCodeDataModule">
2170 <ParentCandidate value="Modules" />
2171
2172 <CfgOpt name="Type" value="Module" type="string" required="false" />
2173
2174 <LayoutEntry name="ModuleDirEntry" type="class:CPD_ENTRY" target="parent/parent/DirectoryEntries" />
2175 <LayoutEntry name="data" type="class:BLOB" target="parent/parent/ModuleDataUCode" align="64" />
2176
2177 <Action module="Bin" name="Add" target="parent/parent/DirectoryHeader/entries" source="null" params="1" />
2178 <Action module="Bin" name="CalcOffset" target="ModuleDirEntry/offset_address" source="data" params="parent/parent/CodePartitionDirectory" />
2179 <Action module="Bin" name="GetValue" target="ModuleDirEntry/length" source="data" params="length" />
2180 </Class>
2181
2182 <Class name="uCodeModules">
2183 <CfgOpt name="Name1" value="upatch1" type="string" required="false" />
2184 <CfgOpt name="Name2" value="upatch2" type="string" required="false" />
2185
2186 <LayoutEntry name="DataModule1" type="class:uCodeDataModule" />
2187 <LayoutEntry name="DataModule2" type="class:uCodeDataModule" />
2188
2189 <Action name="SetString" module="Bin" source="Name1" target="DataModule1/ModuleDirEntry/name" />
2190 <Action name="SetString" module="Bin" source="Name2" target="DataModule2/ModuleDirEntry/name" />
2191 <Action name="LoadBin" module="Bin" source="$UCodeSubPartition/UCodePatch1InputFile" target="DataModule1/data" />
2192 <Action name="LoadBin" module="Bin" source="$UCodeSubPartition/UCodePatch2InputFile" target="DataModule2/data" params="{'fileRequired':'false','allowZeroSize':'true'}" />
2193
2194
2195 <Action name="AddMapEntry" module="Bin" target="DataModule1/data" source="$UCodeSubPartition/uCodeName1" params="{'indent':'3'}" />
2196 <Action name="AddMapEntry" module="Bin" target="DataModule2/data" source="$UCodeSubPartition/uCodeName2" params="{'indent':'3'}" />
2197 </Class>
2198
2199 <Class name="UCodeSubPartitionBin">
2200 <ParentCandidate value="PrimaryBootPartition" />
2201 <CfgOpt name="Name" value="UCOD" type="string" required="false" />
2202 <CfgOpt name="Enabled" value="false" type="class:BooleanValues" required="true" help="Enable sub partition." />
2203 <CfgOpt name="Length" value="0x0" type="dword" required="true" help="Set the length of sub partition." />
2204 <CfgOpt name="RegionType" value="0x3" type="dword" required="false" />
2205
2206 <LayoutEntry name="bpdt_entry" type="class:BpdtEntry" />
2207
2208 <LayoutEntry name="data" type="class:BLOB" align="4096" round_to="4096" />
2209 <LayoutEntry name="ucode_data" type="class:BLOB" target="data" />
2210 <LayoutEntry name="CodePartitionDirectory" type="class:BLOB" target="ucode_data" />
2211 <LayoutEntry name="DirectoryHeader" type="class:CPD_HEADER" target="CodePartitionDirectory" />
2212 <LayoutEntry name="DirectoryEntries" type="class:BLOB" target="CodePartitionDirectory" />
2213 <LayoutEntry name="ModuleDataUCode" type="class:BLOB" target="ucode_data" />
2214
2215 <Action module="Bin" name="SetString" target="DirectoryHeader/partition_name" source="Name" />
2216 <Action module="Bin" name="Checksum8" target="DirectoryHeader/checksum" source="CodePartitionDirectory" />
2217
2218 <Action name="Enable" module="Bin" source="Enabled" target="this" />
2219 <Action name="CheckLength" module="Bin" source="Length" target="this" />
2220
2221 <!-- uCode patches -->
2222 <LayoutEntry name="Modules" type="class:uCodeModules" />
2223
2224 <CfgOpt name="MapName" value="uCode Partition" type="string" />
2225 <Action name="AddMapEntry" module="Bin" target="data" source="MapName" params="{'indent':'2'}" />
2226 </Class>
2227
2228 <Class name="IbbSubPartition" label="IBB">
2229 <ParentCandidate value="PrimaryBootPartition" />
2230
2231 <CfgOpt name="Name" value="IBBP" type="string" required="false" />
2232 <CfgOpt name="Length" value="0x0" type="dword" required="true" help="Set the length of sub partition." />
2233 <CfgOpt name="RegionType" value="0x4" type="dword" required="false" />
2234
2235 <LayoutEntry name="bpdt_entry" type="class:BpdtEntry" />
2236 <LayoutEntry name="data" type="class:BLOB" align="4096" round_to="4096" />
2237
2238 <Action name="CheckLength" module="Bin" source="Length" target="this" />
2239 <Action name="LoadSubPartition" module="Ifwi" source="RegionType" target="data" />
2240
2241 <CfgOpt name="MapName" value="IBB Partition" type="string" />
2242 <Action name="AddMapEntry" module="Bin" target="data" source="MapName" params="{'indent':'2'}" />
2243 </Class>
2244
2245 <Class name="ObbSubPartition" label="OBB">
2246 <CfgOpt name="Name" value="OBBP" type="string" required="false" />
2247 <CfgOpt name="Length" value="0x0" type="dword" required="true" help="Set the length of sub partition." />
2248 <CfgOpt name="RegionType" value="0x6" type="dword" required="false" />
2249 <CfgOpt name="SplitFirstPart" value="0" type="byte" required="false" />
2250 <CfgOpt name="SplitSecondPart" value="0" type="byte" required="false" />
2251 <CfgOpt name="SplitOffset" value="0" type="dword" required="false" />
2252
2253 <LayoutEntry name="bpdt_entry" type="class:BpdtEntry" />
2254 <LayoutEntry name="data" type="class:BLOB" align="4096" round_to="4096" />
2255
2256 <Action name="CheckLength" module="Bin" source="Length" target="this" />
2257 <Action name="LoadSubPartition" module="Ifwi" source="RegionType" target="data" />
2258 <Action name="GetValue" module="Bin" source="SplitFirstPart" target="bpdt_entry/split_sub_partition_first_part" params="value" />
2259 <Action name="GetValue" module="Bin" source="SplitSecondPart" target="bpdt_entry/split_sub_partition_second_part" params="value" />
2260
2261 <CfgOpt name="MapName" value="OBB Partition" type="string" />
2262 <Action name="AddMapEntry" module="Bin" target="data" source="MapName" params="{'indent':'2'}" />
2263 </Class>
2264
2265 <!-- SBPDT table -->
2266 <Class name="IshSubPartition" label="ISH">
2267
2268 <CfgOpt name="Length" value="0x0" type="dword" required="true" help="Set the length of sub partition." />
2269 <CfgOpt name="RegionType" value="0x8" type="dword" required="false" />
2270
2271 <LayoutEntry name="bpdt_entry" type="class:BpdtEntry" />
2272 <LayoutEntry name="data" type="class:BLOB" align="4096" round_to="4096" />
2273
2274 <Action name="LoadSubPartition" module="Ifwi" source="RegionType" target="data" />
2275 <Action name="CheckLength" module="Bin" source="Length" target="this" />
2276
2277 <CfgOpt name="MapName" value="ISHC Partition" type="string" />
2278 <Action name="AddMapEntry" module="Bin" target="data" source="MapName" params="{'indent':'2'}" />
2279 </Class>
2280
2281 <Class name="CseMainSubPartition" label="CSE-Main">
2282
2283 <CfgOpt name="Length" value="0x0" type="dword" required="true" help="Set the length of sub partition." />
2284 <CfgOpt name="RegionType" value="0x7" type="dword" required="false" />
2285
2286 <LayoutEntry name="bpdt_entry" type="class:BpdtEntry" />
2287 <LayoutEntry name="data" type="class:BLOB" align="4096" round_to="4096" />
2288
2289 <Action name="LoadSubPartition" module="Ifwi" source="RegionType" target="data" />
2290 <Action name="CheckLength" module="Bin" source="Length" target="this" />
2291
2292 <CfgOpt name="MapName" value="CSE Main Partition" type="string" />
2293 <Action name="AddMapEntry" module="Bin" target="data" source="MapName" params="{'indent':'2'}" />
2294 </Class>
2295
2296 <Class name="IunpSubPartition" label="IUNP">
2297 <CfgOpt name="Name" value="IUNP" type="string" required="false" />
2298 <CfgOpt name="Length" value="0x0" type="dword" required="true" help="Set the length of sub partition." />
2299 <CfgOpt name="RegionType" value="0xF" type="dword" required="false" />
2300
2301 <LayoutEntry name="bpdt_entry" type="class:BpdtEntry" />
2302 <LayoutEntry name="data" type="class:BLOB" align="4096" round_to="4096" />
2303
2304 <Action name="LoadSubPartition" module="Ifwi" source="RegionType" target="data" />
2305 <Action name="CheckLength" module="Bin" source="Length" target="this" />
2306
2307 <CfgOpt name="MapName" value="IUnit Partition" type="string" />
2308 <Action name="AddMapEntry" module="Bin" target="data" source="MapName" params="{'indent':'2'}" />
2309 </Class>
2310
2311 <Class name="PmcpSubPartition">
2312 <CfgOpt name="Name" value="PMCP" type="string" required="false" />
2313 <CfgOpt name="Length" value="0x0" type="dword" required="true" help="Set the length of sub partition." />
2314 <CfgOpt name="RegionType" value="0xE" type="dword" required="false" />
2315
2316 <LayoutEntry name="bpdt_entry" type="class:BpdtEntry" />
2317 <LayoutEntry name="data" type="class:BLOB" align="4096" round_to="4096" />
2318
2319 <Action name="LoadSubPartition" module="Ifwi" source="RegionType" target="data" />
2320 <Action name="CheckLength" module="Bin" source="Length" target="this" />
2321
2322 <CfgOpt name="Name" value="PMC Partition" type="string" />
2323 <Action name="AddMapEntry" module="Bin" target="data" source="Name" params="{'indent':'2'}" />
2324 </Class>
2325
2326 <Class name="IdlmSubPartition">
2327 <ParentCandidate value="PrimaryBootPartition" />
2328
2329 <!-- TODO: Need to define partition flags. Do we need to define partition flags? -->
2330 <!-- TODO: Need to define if this partition can be added directly to BPDT0 -->
2331 <CfgOpt name="Length" value="0x0" type="dword" required="true" help="Set the length of sub partition." />
2332 <CfgOpt name="RegionType" value="0x9" type="dword" required="false" />
2333
2334 <LayoutEntry name="bpdt_entry" type="class:BpdtEntry" />
2335 <LayoutEntry name="data" type="class:BLOB" align="4096" round_to="4096" />
2336
2337 <Action name="LoadBin" module="Bin" source="$Idlm/IdlmBinary" target="data" />
2338 <Action name="CheckLength" module="Bin" source="Length" target="this" />
2339
2340 <CfgOpt name="MapName" value="IDLM Partition" type="string" />
2341 <Action name="AddMapEntry" module="Bin" target="data" source="MapName" params="{'indent':'2'}" />
2342 </Class>
2343
2344 <Class name="DebugTokenSubPartition" label="Debug Token">
2345
2346 <!-- Do we need to define partition flags? -->
2347 <CfgOpt name="Length" value="0x0" type="dword" required="true" help="Set the length of sub partition." />
2348 <CfgOpt name="RegionType" value="0xB" type="dword" required="false" />
2349
2350 <LayoutEntry name="bpdt_entry" type="class:BpdtEntry" />
2351 <LayoutEntry name="data" type="class:BLOB" align="4096" round_to="8192" />
2352
2353 <Action name="LoadBin" module="Bin" source="$IntelTraceHubTechnology/UnlockToken" target="data" params="{'fileRequired':'false','lengthAttr':'$IntelTraceHubTechnology/UtokLength','skipFileSizeCheck':'true'}" />
2354 <Action name="CheckLength" module="Bin" source="Length" target="this" />
2355
2356 <CfgOpt name="MapName" value="Debug Token Partition" type="string" />
2357 <Action name="AddMapEntry" module="Bin" target="data" source="MapName" params="{'indent':'2'}" />
2358 </Class>
2359
2360 <Class name="BpdtEntry">
2361 <LayoutEntry name="entry" type="class:BLOB" target="parent/parent/entries" />
2362
2363 <!-- Type struct definitions -->
2364 <LayoutEntry name="type" value="0" type="word" target="entry" />
2365 <LayoutEntry name="split_sub_partition_first_part" value="0" type="bitfield16" offset="0x2" bitfield_low="0" bitfield_high="0" target="entry"/>
2366 <LayoutEntry name="split_sub_partition_second_part" value="0" type="bitfield16" offset="0x2" bitfield_low="1" bitfield_high="1" target="entry" />
2367 <LayoutEntry name="code_sub_partition" value="0" type="bitfield16" offset="0x2" bitfield_low="2" bitfield_high="2" target="entry"/>
2368 <LayoutEntry name="uma_cachable" value="0" type="bitfield16" offset="0x2" bitfield_low="3" bitfield_high="3" target="entry"/>
2369 <LayoutEntry name="reserved" value="0" type="bitfield16" offset="0x2" bitfield_low="4" bitfield_high="15" target="entry"/>
2370
2371 <!-- Offset and size entries -->
2372 <LayoutEntry name="offset" value="0" type="dword" target="entry" />
2373 <LayoutEntry name="size" value="0" type="dword" target="entry" />
2374
2375 <Action name="Add" module="Bin" source="null" target="parent/parent/count" params="1" />
2376 <Action name="GetValue" module="Bin" source="parent/data" target="offset" params="offset" />
2377 <Action name="CalcOffset" module="Bin" source="parent/data" target="offset" params="parent/parent/parent" />
2378 <Action name="GetValue" module="Bin" source="parent/data" target="size" params="length" />
2379 <Action name="GetValue" module="Bin" source="parent/RegionType" target="type" params="value" />
2380 </Class>
2381
2382
2383 <Class name="CseSmipEntry">
2384 <ParentCandidate value="SmipSection" />
2385
2386 <CfgOpt name="Name" value="CSE Smip" type="string" required="false" />
2387 <CfgOpt name="SmipType" value="0x0" type="dword" required="true" />
2388 <CfgOpt name="SmipLength" value="0x0" type="dword" required="true" />
2389
2390 <!-- SMIP Entry -->
2391 <LayoutEntry name="smip_entry" type="class:BLOB" target="parent/smip_entries" />
2392 <LayoutEntry name="smip_type" value="0" type="word" target="smip_entry" />
2393 <LayoutEntry name="smip_offset" value="0" type="word" target="smip_entry" />
2394 <LayoutEntry name="smip_length" value="0" type="word" target="smip_entry" />
2395 <LayoutEntry name="smip_reserved" value="0" type="word" target="smip_entry" />
2396
2397
2398 <!-- SMIP data -->
2399 <LayoutEntry name="smip_data" type="class:CSE_SMIP" target="parent/smip_data_entries" />
2400
2401 <Action name="Add" module="Bin" source="null" target="parent/smip_count" params="1" />
2402 <Action name="GetValue" module="Bin" source="SmipType" target="smip_type" params="value" />
2403 <Action name="CalcOffset" module="Bin" source="smip_data" target="smip_offset" params="parent/data" />
2404 <Action name="GetValue" module="Bin" source="smip_data" target="smip_length" params="length" />
2405 <Action name="CheckLength" module="Bin" source="SmipLength" target="this" />
2406 </Class>
2407
2408 <Class name="SmipEntry">
2409 <ParentCandidate value="SmipSection" />
2410
2411 <CfgOpt name="Name" value="SmipEntryName" type="string" required="false" />
2412 <CfgOpt name="SmipType" value="0x1" type="dword" required="true" />
2413 <CfgOpt name="SmipLength" value="0x0" type="dword" required="true" />
2414
2415 <!-- SMIP Entry -->
2416 <LayoutEntry name="smip_entry" type="class:BLOB" target="parent/smip_entries" />
2417 <LayoutEntry name="smip_type" value="0" type="word" target="smip_entry" />
2418 <LayoutEntry name="smip_offset" value="0" type="word" target="smip_entry" />
2419 <LayoutEntry name="smip_length" value="0" type="word" target="smip_entry" />
2420 <LayoutEntry name="smip_reserved" value="0" type="word" target="smip_entry" />
2421
2422
2423 <!-- SMIP data -->
2424 <LayoutEntry name="smip_data" type="class:BLOB" target="parent/smip_data_entries" />
2425
2426 <Action name="Add" module="Bin" source="null" target="parent/smip_count" params="1" />
2427 <Action name="GetValue" module="Bin" source="SmipType" target="smip_type" params="value" />
2428 <Action name="CalcOffset" module="Bin" source="smip_data" target="smip_offset" params="parent/data" />
2429 <Action name="GetValue" module="Bin" source="smip_data" target="smip_length" params="length" />
2430 <Action name="CheckLength" module="Bin" source="SmipLength" target="this" />
2431 </Class>
2432
2433 <Class name="ManExtensionTypeValues">
2434 <CfgOpt name="KeyManifest" value="14" type="dword" />
2435 <CfgOpt name="SignedPackageInfo" value="15" type="dword" />
2436 <CfgOpt name="SecureToken" value="21" type="dword" />
2437 </Class>
2438
2439 <Class name="SIGNED_PACKAGE_INFO_EXT" >
2440 <CfgOpt name="ExtType" value="SignedPackageInfo" type="class:ManExtensionTypeValues" required="false" />
2441
2442 <LayoutEntry name="type" value="0" type="dword" description="Extension Type" />
2443 <LayoutEntry name="length" value="0" type="dword" description="In bytes" />
2444 <LayoutEntry name="package_name" value="0" type="dword" description="Name of the partition" />
2445 <LayoutEntry name="version_control_number" value="0" type="dword" description="The version control number (VCN) is incremented whenever a change is made to the FW that makes it incompatible from an update perspective with previously released versions of the FW." />
2446 <LayoutEntry name="usage_bitmap" value="0" type="byte16" description="Bitmap of usages depicted by this manifest, indicating which key is used to sign the manifest" />
2447 <LayoutEntry name="svn" value="1" type="dword" description="Secure Version Number" />
2448 <LayoutEntry name="reserved0" value="0" type="byte16" description="Must be 0" />
2449 <LayoutEntry name="module_info_entries" type="class:BLOB" description="Module info entries" />
2450
2451 <Action module="Bin" name="GetValue" target="type" source="ExtType" params="value" />
2452 <Action module="Bin" name="SetString" target="package_name" source="parent/parent/Name" />
2453 <Action module="Bin" name="GetValue" target="usage_bitmap" source="parent/parent/Usage" params="value" />
2454 <Action module="Bin" name="GetValue" target="length" source="this" params="length" />
2455 <Action module="Bin" name="GetValue" target="version_control_number" source="parent/parent/VersionControlNumber" params="value" />
2456 <Action module="Bin" name="GetValue" target="svn" source="parent/parent/SecurityVersionNumber" params="value" />
2457 </Class>
2458
2459 <Class name="SIGNED_PACKAGE_INFO_EXT_ENTRY" >
2460 <LayoutEntry name="name" value="0" type="byte12" description="Character array. If name length is shorter than field size the name is padded with 0 bytes" />
2461 <LayoutEntry name="type" value="0" type="byte" description="0 - Process; 1 - Shared Library; 2 - Data; 3 - TBD" />
2462 <LayoutEntry name="hash_algorithm" value="2" type="byte" description="0 - Reserved; 1 - SHA1; 2 - SHA256" />
2463 <LayoutEntry name="hash_size" value="32" type="word" description="Size of Hash in bytes = N; BXT to support only SHA256. So N=32." />
2464 <LayoutEntry name="metadata_size" value="0" type="dword" description="Size of metadata file" />
2465 <LayoutEntry name="metadata_hash" value="0" type="byte32" description="The SHA2 of the module metadata file" />
2466
2467 <Action module="Bin" name="SetString" target="name" source="parent/Name" />
2468 <Action module="Bin" name="GetValue" target="type" source="parent/ModuleType" params="value" />
2469 <Action module="Bin" name="GetValue" target="metadata_size" source="parent/metafile" params="length" />
2470 </Class>
2471
2472 <Class name="MOD_ATTR_EXTENSION" >
2473 <LayoutEntry name="type" value="0xA" type="dword" description="10 for this module attribute extension" />
2474 <LayoutEntry name="length" value="0" type="dword" description="In bytes; equals 56 for this version" />
2475 <LayoutEntry name="compression_type" value="0x0" type="byte" description="0 - Uncompressed 1 - Huffman Compressed 2 - LZMA Compressed" />
2476 <LayoutEntry name="reserved0" value="0x0" type="byte" description="Must be 0" />
2477 <LayoutEntry name="reserved1" value="0x0" type="byte" description="Must be 0" />
2478 <LayoutEntry name="reserved2" value="0x0" type="byte" description="Must be 0" />
2479 <LayoutEntry name="uncompressed_size" value="0x0" type="dword" description="Uncompressed image size must be divisible by 4K" />
2480 <LayoutEntry name="compressed_size" value="0x0" type="dword" description="Compressed image size. This is applicable for LZMA compressed modules only. For other modules should be the same as uncompressed_size field." />
2481 <LayoutEntry name="global_id.module_number" value="0x0" type="word" description="Module number unique in the scope of the vendor." />
2482 <LayoutEntry name="global_id.vendor_id" value="0x0" type="word" description="Vendor ID (PCI style). For Intel modules must be 0x8086." />
2483 <LayoutEntry name="image_hash" value="0x0" type="byte32" description="SHA2 Hash of uncompressed image." />
2484
2485 <Action module="Bin" name="GetValue" target="length" source="this" params="length" />
2486 <Action module="Bin" name="GetValue" target="compression_type" source="parent/parent/CompressionType" params="value" />
2487 <Action module="Bin" name="GetValue" target="global_id.module_number" source="parent/parent/ProcessId" params="value" />
2488 </Class>
2489
2490 <Class name="CodePartitionManifest" >
2491
2492 <LayoutEntry name="ManifestDirEntry" type="class:CPD_ENTRY" target="parent/DirectoryEntries" />
2493 <LayoutEntry name="data" type="class:BLOB" round_to="4"/>
2494 <LayoutEntry name="ManifestHeader" type="class:MANIFEST_HEADER" target="data" />
2495 <LayoutEntry name="CryptoBlock" type="class:CRYPTO_BLOCK" target="data"/>
2496 <LayoutEntry name="data_extensions" type="class:BLOB" target="data" round_to="4"/>
2497 <LayoutEntry name="PackageInfoExtension" type="class:SIGNED_PACKAGE_INFO_EXT" target="data_extensions" />
2498
2499 <Action module="Bin" name="Add" target="parent/DirectoryHeader/entries" source="null" params="1"/>
2500 <Action module="Bin" name="StrCat" target="ManifestDirEntry/name" source="parent/Name" params=".man" />
2501 <Action module="Bin" name="CalcOffset" target="ManifestDirEntry/offset_address" source="data" params="parent/data" />
2502 <Action module="Bin" name="GetValue" target="ManifestDirEntry/length" source="data" params="length" />
2503 </Class>
2504
2505 <Class name="DataModuleTemplateMeta" >
2506 <LayoutEntry name="data" type="class:BLOB" />
2507 <LayoutEntry name="ModuleAttributeExtension" type="class:MOD_ATTR_EXTENSION" target="data" />
2508
2509 <Action module="Bin" name="Add" target="parent/parent/parent/DirectoryHeader/entries" source="null" params="1"/>
2510 </Class>
2511
2512 <Class name="MODULE_TYPES">
2513 <CfgOpt name="PROCESS_TYPE" value="0" type="dword" required="false"/>
2514 <CfgOpt name="SHARED_LIBRARY_TYPE" value="1" type="dword" required="false"/>
2515 <CfgOpt name="DATA_TYPE" value="2" type="dword" required="false"/>
2516 <CfgOpt name="TBD" value="3" type="dword" required="false"/>
2517 </Class>
2518
2519 <Class name="COMPRESSION_TYPE">
2520 <ParentCandidate value="CseConfiguration"/>
2521 <CfgOpt name="NOT_COMPRESSED" value="0" type="dword" required="false"/>
2522 <!--<CfgOpt name="HUFFMAN" value="1" type="dword" required="false"/> Not supported for MEU-->
2523 <CfgOpt name="LZMA" value="2" type="dword" required="false"/>
2524 </Class>
2525
2526 <Class name="SmipDataModule" >
2527 <CfgOpt name="Name" value="smip" type="string" required="false" />
2528 <CfgOpt name="ModuleType" value="DATA_TYPE" type="class:MODULE_TYPES" required="false" />
2529 <CfgOpt name="CompressionType" value="NOT_COMPRESSED" type="class:COMPRESSION_TYPE" required="false" />
2530 <CfgOpt name="UncompressedSize" value="0x0" type="dword" required="false" />
2531 <CfgOpt name="CompressedSize" value="0x0" type="dword" required="false" />
2532 <CfgOpt name="ProcessId" value="0xF6" type="word" required="false" />
2533 <CfgOpt name="VendorId" value="0x0000" type="word" required="false" />
2534
2535 <CfgOpt name="InitCount" value="0" type="dword" required="false" />
2536 <CfgOpt name="Length" value="0x0" type="dword" required="true" />
2537
2538
2539 <LayoutEntry name="ModuleDirEntry" type="class:CPD_ENTRY" target="parent/DirectoryEntries" />
2540 <LayoutEntry name="MetaDirEntry" type="class:CPD_ENTRY" target="parent/DirectoryEntries" />
2541 <LayoutEntry name="ModuleInfoExtension" type="class:SIGNED_PACKAGE_INFO_EXT_ENTRY" target="parent/manifest/PackageInfoExtension/module_info_entries" />
2542 <LayoutEntry name="metafile" type="class:DataModuleTemplateMeta" target="parent/metadata" />
2543
2544 <LayoutEntry name="data" type="class:BLOB" align="64" />
2545 <LayoutEntry name="smip_header" type="class:BLOB" target="data" />
2546 <LayoutEntry name="smip_entries" type="class:BLOB" target="data" />
2547 <LayoutEntry name="smip_data_entries" type="class:BLOB" target="data" />
2548
2549 <!-- SMIP Header -->
2550 <LayoutEntry name="smip_count" value="0" type="word" target="smip_header" />
2551 <LayoutEntry name="smip_size" value="0" type="word" target="smip_header" />
2552
2553 <Action name="ResetValue" module="Bin" source="InitCount" target="smip_count" params="value" />
2554 <Action name="GetValue" module="Bin" source="data" target="smip_size" params="length" />
2555 <Action name="CheckLength" module="Bin" source="Length" target="this" />
2556
2557 <LayoutEntry name="CSESmip" type="class:CseSmipEntry" init="{'Name':'', 'SmipType':'0'}" />
2558 <LayoutEntry name="PmcSmip" type="class:PmcSmipEntry" init="{'Name':'Platform Config. Smip', 'SmipType':'1'}" />
2559 <LayoutEntry name="IaFwSmip" type="class:SmipEntry" init="{'Name':'IAFW Smip','SmipType':'2'}" />
2560 <LayoutEntry name="IshSmip" type="class:SmipEntry" init="{'Name':'Ish Smip', 'SmipType':'3'}" />
2561
2562 <!-- Load bin functions for each Smip entry -->
2563 <Action name="LoadBin" module="Bin" source="$SmipSubPartition/IaFwSmipInputFile" target="IaFwSmip/smip_data" params="{'OverrideNameLabel':'IaFwSmipName'}" />
2564
2565 <Action module="Bin" name="GetValue" target="metafile/ModuleAttributeExtension/global_id.vendor_id" source="VendorId" params="value" />
2566 <Action module="Bin" name="Add" target="parent/DirectoryHeader/entries" source="null" params="1" />
2567 <Action module="Bin" name="SetString" target="ModuleDirEntry/name" source="Name" />
2568 <Action module="Bin" name="StrCat" target="MetaDirEntry/name" source="Name" params=".met" />
2569 <Action module="Bin" name="GetValue" target="metafile/ModuleAttributeExtension/uncompressed_size" source="data" params="length" />
2570 <Action module="Bin" name="GetValue" target="metafile/ModuleAttributeExtension/compressed_size" source="data" params="length" />
2571 <Action module="Bin" name="Hash256Buffer" target="metafile/ModuleAttributeExtension/image_hash" source="data" />
2572 <Action module="Bin" name="Hash256Buffer" target="ModuleInfoExtension/metadata_hash" source="metafile/data" />
2573 <Action module="Bin" name="CalcOffset" target="ModuleDirEntry/offset_address" source="data" params="parent/data" />
2574 <Action module="Bin" name="CalcOffset" target="MetaDirEntry/offset_address" source="metafile/data" params="parent/data" />
2575 <Action module="Bin" name="GetValue" target="ModuleDirEntry/length" source="data" params="length" />
2576 <Action module="Bin" name="GetValue" target="MetaDirEntry/length" source="metafile/data" params="length" />
2577
2578 </Class>
2579
2580 <Class name="SmipData">
2581 <ParentCandidate value="PrimaryBootPartition" />
2582 <ParentCandidate value="SecondaryBootPartition" />
2583
2584 <CfgOpt name="Name" value="SMIP" type="string" required="false" />
2585 <CfgOpt name="Id" value="1" type="dword" required="false" />
2586 <CfgOpt name="RegionType" value="0x1" type="dword" required="true" />
2587 <CfgOpt name="SecurityVersionNumber" value="0" type="dword" required="false" />
2588 <CfgOpt name="Usage" value="OemSmipManifest" type="bitmap:KeyManifestHashUsages" required="false" />
2589 <CfgOpt name="VersionControlNumber" value="0" type="dword" required="false" />
2590
2591 <CfgOpt name="IntermediateFileOut" value="SmipSubPartitionRaw.bin" type="path" required="false" />
2592 <CfgOpt name="IntermediateFileIn" value="SmipSubPartitionSigned.bin" type="path" required="false" />
2593
2594 <LayoutEntry name="data" type="class:BLOB" />
2595 <LayoutEntry name="CodePartitionDirectory" type="class:BLOB" target="data" />
2596 <LayoutEntry name="DirectoryHeader" type="class:CPD_HEADER" target="CodePartitionDirectory" />
2597 <LayoutEntry name="DirectoryEntries" type="class:BLOB" target="CodePartitionDirectory" />
2598 <LayoutEntry name="manifest" type="class:CodePartitionManifest" target="data" />
2599 <LayoutEntry name="metadata" type="class:BLOB" target="data" />
2600 <LayoutEntry name="ModuleData" type="class:BLOB" target="data" />
2601
2602 <LayoutEntry name="SmipDataModule" type="class:SmipDataModule" target="ModuleData" />
2603
2604 <Action module="Bin" name="GetValue" target="manifest/ManifestHeader/vendor" source="SmipDataModule/VendorId" params="value" />
2605 <Action module="Bin" name="SetString" target="DirectoryHeader/partition_name" source="Name" />
2606 <Action module="Bin" name="Checksum8" target="DirectoryHeader/checksum" source="CodePartitionDirectory" />
2607 </Class>
2608
2609 <Class name="SmipSection">
2610 <LayoutEntry name="SmipData" type="class:SmipData" />
2611 </Class>
2612
2613 <Class name="SubSectionMn2" gui-mode="Hidden">
2614
2615 <CfgOpt name="ManifestMaxLength" value="0x2000" type="dword" required="false" />
2616
2617 <!-- The use of data and data_extensions target is required by the way we are
2618 performing signing of the manifest, as well as by the length calculation -->
2619
2620 <LayoutEntry name="ManifestDirEntry" type="class:CPD_ENTRY" target="parent/DirectoryEntries" />
2621 <LayoutEntry name="data" type="class:BLOB" round_to="4" />
2622 <LayoutEntry name="ManifestHeader" type="class:MANIFEST_HEADER" target="data" />
2623 <LayoutEntry name="CryptoBlock" type="class:CRYPTO_BLOCK" target="data" />
2624 <LayoutEntry name="data_extensions" type="class:BLOB" target="data" round_to="4" />
2625
2626 <Action module="Bin" name="CheckLength" target="this" source="ManifestMaxLength" params="skip_round_to" />
2627 <Action module="Bin" name="Add" target="parent/DirectoryHeader/entries" source="null" params="1" />
2628 <Action module="Bin" name="StrCat" target="ManifestDirEntry/name" source="parent/Name" params=".man" />
2629 <Action module="Bin" name="CalcOffset" target="ManifestDirEntry/offset_address" source="data" params="parent" />
2630 <Action module="Bin" name="GetValue" target="ManifestDirEntry/length" source="data" params="length" />
2631 </Class>
2632
2633 <!--
2634 DNX Definitions start here.
2635 ************************************************************************************************
2636 -->
2637
2638 <!-- DNX Support -->
2639 <Class name="DnxConfiguration" label="DnX Configuration">
2640 <ParentCandidate value="Dnx" />
2641
2642 <CfgOpt name="DnxEnabled" label="DnX Enabled" value="Yes" type="class:YesNoValues" help="DnX permanent enable/disable FPF" />
2643 <CfgOpt name="DnxPlatformId" label="Platform ID" value="0" type="word" help="Platform ID that DnX uses to verify the image is suitable for the platform. Before FPFs lock, this field is ignored and DnX will accept any image. After FPS lock, only images with this Platform ID will be accepted by DnX." />
2644 <CfgOpt name="DnxOemId" label="OEM ID" value="0" type="word" help="OEM ID that DnX uses to verify the image is suitable for the platform. Before FPFs lock, this field is ignored and DnX will accept any image. After FPF lock, only images with this OEM ID will be accepted by DnX." />
2645 <CfgOpt name="DnxLedEnabled" label="LED Enabled" value="Yes" type="class:YesNoValues" help="DnX LED Permanently Enabled/Disabled FPF" />
2646
2647 <CfgOpt name="BuildEnabled" label="" value="No" type="class:NoYesValues" help="Should Intel FIT build a DnX image"/>
2648 <CfgOpt name="OutputFileName" label="" value="dnx.bin" type="path" params="{'dialogType':'save'}" />
2649 <CfgOpt name="SigningKey" label="" value="" type="path" params="{'dialogType':'open','validFileTypes':'Private Key (*.pem *.bin)','dialogTitle':'Select Private Key'}" help="The path to the private key to use to sign the DnX image. This setting is only configurable when OEM signing is enabled (See PlatformIntegrity/OemPublicKeyHash)." />
2650
2651 <!-- Hidden Values -->
2652 <CfgOpt name="InputFile" value="" type="path" required="false" />
2653 </Class>
2654
2655 <Class name="UsbDnxDescriptor" label="USB Descriptor">
2656 <ParentCandidate value="Dnx" />
2657 <CfgOpt name="DnxUsbStringDescriptor1" value="" type="string" label="USB String Descriptor 1" help="Used by ROM to communicate manufacturer string (32 characters) to recovery host. If this descriptor is not defined by OEM, identified by all 0’s, ROM will use default descriptors" />
2658 <CfgOpt name="DnxUsbStringDescriptor2" value="" type="string" label="USB String Descriptor 2" help="Used by ROM to communicate manufacturer string (32 characters) to recovery host. If this descriptor is not defined by OEM, identified by all 0’s, ROM will use default descriptors" />
2659 <CfgOpt name="DnxUsbEnumTimeout" value="0x0" type="byte" required="false" />
2660 <CfgOpt name="DnxUsbPingTimeout" value="0x0" type="byte" required="false" />
2661 </Class>
2662
2663 <Class name="DnxSpiConfiguration" label="DnX SPI Regions Configuration">
2664 <ParentCandidate value="Dnx" />
2665 <CfgOpt name="DnxSpiIfwiRegion" label="Enable DnX SPI Region IFWI" value="Yes" type="class:NoYesValues" help="Enable DnX SPI flash update of IFWI region." />
2666 <CfgOpt name="DnxSpiPdrRegion" label="Enable DnX SPI Region PDR" value="Yes" type="class:NoYesValues" help="Enable DnX SPI flash update of PDR region." />
2667 <Action name="SetIfElse" module="Bin" source="DnxSpiIfwiRegion" target="DnxSpiPdrRegion" params="{'test':'EqVal','testValue':'No','targetValue':'Yes'}" />
2668 <Action name="SetIfElse" module="Bin" source="DnxSpiPdrRegion" target="DnxSpiIfwiRegion" params="{'test':'EqVal','testValue':'No','targetValue':'Yes'}" />
2669 <Action name="DisableIf" module="Fit" source="$BuildResults/TargetType" target="DnxSpiIfwiRegion" params="{'sourceValNot':'SPI','setToDefault':'true','targets':['DnxSpiPdrRegion']}" />
2670 </Class>
2671
2672 <Class name="Dnx" label="Download and Execute">
2673 <ParentCandidate value="FitData" />
2674 </Class>
2675
2676 <!-- End of DNX Support -->
2677<!--</FtoolLayout>-->