blob: 55c9e7999e2585b1c207517ca036e8f758aad69a [file] [log] [blame]
Subrata Banik76806c32022-01-03 17:33:35 +00001config DISABLE_HECI1_AT_PRE_BOOT
2 bool "Disable HECI1 at the end of boot"
3 depends on SOC_INTEL_COMMON_BLOCK_CSE
4 default n
5 help
6 This config decides the state of HECI1(CSE) device at the end of boot.
7 Mainboard users to select this config to make HECI1 `function disable`
8 prior to handing off to payload.
9
Subrata Banik526cc3e2022-01-31 21:55:51 +053010config MAX_HECI_DEVICES
11 int
12 default 6
13
14config SOC_INTEL_COMMON_BLOCK_CSE
15 bool
16 default n
17 help
18 Driver for communication with Converged Security Engine (CSE)
19 over Host Embedded Controller Interface (HECI)
20
Subrata Banik32e06732022-01-28 02:05:15 +053021config SOC_INTEL_COMMON_BLOCK_HECI1_DISABLE_USING_SBI
Subrata Banik7e899842018-05-17 18:28:26 +053022 bool
23 default y if HECI_DISABLE_USING_SMM
24 select SOC_INTEL_COMMON_BLOCK_P2SB
25 help
Subrata Banik32e06732022-01-28 02:05:15 +053026 Use this config to allow common CSE block to make HECI1 function disable
27 in the SMM mode. From CNL PCH onwards,`HECI1` disabling can only be done
28 using the non-posted sideband write after FSP-S sets the postboot_sai
29 attribute.
30
31config SOC_INTEL_COMMON_BLOCK_HECI1_DISABLE_USING_PMC_IPC
32 bool
33 default n
34 select SOC_INTEL_COMMON_BLOCK_PMC
35 help
36 Use this config to allow common CSE block to make HECI1 function disable
37 using PMC IPC command `0xA9`. From TGL PCH onwards, disabling heci1
38 device using PMC IPC doesn't required to run the operation in SMM.
39
40config SOC_INTEL_COMMON_BLOCK_HECI1_DISABLE_USING_PCR
41 bool
42 default n
43 select SOC_INTEL_COMMON_BLOCK_PCR
44 help
45 Use this config for SoC platform prior to CNL PCH (with postboot_sai implemented)
46 to make `HECI1` device disable using private configuration register (PCR) write.
Sridhar Siricillaf87ff332019-09-12 17:18:20 +053047
MAULIK V VAGHELA61b8f892021-12-17 17:55:22 +053048config SOC_INTEL_CSE_SEND_EOP_EARLY
Michał Kopeć9c4ae912022-10-29 18:00:18 +020049 bool "CSE send EOP early"
MAULIK V VAGHELA61b8f892021-12-17 17:55:22 +053050 depends on SOC_INTEL_COMMON_BLOCK_CSE
51 help
52 Use this config to send End Of Post (EOP) earlier through SoC code in order to
53 reduce time required to send EOP and getting CSE response.
54 In later stages, CSE might be busy and might require more time to process EOP command.
55 SoC can use this Kconfig to send EOP earlier by itself.
56
Subrata Banikbed82b02022-11-24 21:02:00 +053057config SOC_INTEL_CSE_SEND_EOP_LATE
58 bool
59 depends on SOC_INTEL_COMMON_BLOCK_CSE
60 help
61 Use this config to send End Of Post (EOP) late (even after CSE `final` operation)
62 using boot state either `BS_PAYLOAD_BOOT` or `BS_PAYLOAD_LOAD` from common code
63 in order to reduce time required to send EOP and getting CSE response.
64 It has been observed that CSE might be busy and might require more time to
65 process the EOP command.
66 SoC can use this Kconfig to send EOP later by itself.
67 Starting with Jasper Lake, coreboot sends EOP before loading payload hence, this
68 config is applicable for those platforms.
69
Jeremy Compostellae7a12042023-03-13 13:59:08 -070070config SOC_INTEL_CSE_SEND_EOP_ASYNC
71 bool
72 depends on SOC_INTEL_COMMON_BLOCK_CSE
73 depends on !SOC_INTEL_CSE_SEND_EOP_LATE
74 depends on !SOC_INTEL_CSE_SEND_EOP_EARLY
75 help
76 Use this config to handle End Of Post (EOP) completion
77 asynchronously. The EOP command is sent first and the result
78 is checked later leaving time to CSE to complete the
79 operation while coreboot perform other activities.
80 Performing EOP asynchronously reduces the time spent
81 actively waiting for command completion which can have a
82 significant impact on boot time.
83
84 Using this asynchronous approach comes with the limitation
85 that no HECI command should be sent between the time the EOP
86 request is posted (at CSE .final device operation) and the
87 time coreboot check for its completion (BS_PAYLOAD_LOAD).
88
Sridhar Siricilla99dbca32020-05-12 21:05:04 +053089config SOC_INTEL_CSE_LITE_SKU
Sridhar Siricillaf87ff332019-09-12 17:18:20 +053090 bool
91 default n
Sridhar Siricillaf87ff332019-09-12 17:18:20 +053092 help
Sridhar Siricilla99dbca32020-05-12 21:05:04 +053093 Enables CSE Lite SKU
Rizwan Qureshiec321092019-09-06 20:28:43 +053094
Johnny Lina3e68c92022-08-09 15:36:30 +080095config SOC_INTEL_CSE_SERVER_SKU
96 bool
97 default n
98 help
99 Enables CSE Server SKU
100
V Sowmyaf9905522020-11-12 20:19:04 +0530101config SOC_INTEL_CSE_RW_UPDATE
102 bool "Enable the CSE RW Update Feature"
103 default n
104 depends on SOC_INTEL_CSE_LITE_SKU
105 help
106 This config will enable CSE RW firmware update feature and also will be used ensure
107 all the required configs are provided by mainboard.
108
Rizwan Qureshiec321092019-09-06 20:28:43 +0530109config SOC_INTEL_CSE_FMAP_NAME
Sridhar Siricilla4c2890d2020-12-09 00:28:30 +0530110 string "Name of CSE Region in FMAP" if SOC_INTEL_CSE_RW_UPDATE
Rizwan Qureshiec321092019-09-06 20:28:43 +0530111 default "SI_ME"
112 help
113 Name of CSE region in FMAP
114
Sridhar Siricilla361e3642020-10-18 20:14:07 +0530115config SOC_INTEL_CSE_RW_A_FMAP_NAME
Sridhar Siricilla4c2890d2020-12-09 00:28:30 +0530116 string "Location of CSE RW A in FMAP" if SOC_INTEL_CSE_RW_UPDATE
Sridhar Siricilla361e3642020-10-18 20:14:07 +0530117 default "ME_RW_A"
118 help
119 Name of CSE RW A region in FMAP
120
121config SOC_INTEL_CSE_RW_B_FMAP_NAME
Sridhar Siricilla4c2890d2020-12-09 00:28:30 +0530122 string "Location of CSE RW B in FMAP" if SOC_INTEL_CSE_RW_UPDATE
Sridhar Siricilla361e3642020-10-18 20:14:07 +0530123 default "ME_RW_B"
124 help
125 Name of CSE RW B region in FMAP
126
Rizwan Qureshiec321092019-09-06 20:28:43 +0530127config SOC_INTEL_CSE_RW_CBFS_NAME
Sridhar Siricilla4c2890d2020-12-09 00:28:30 +0530128 string "CBFS entry name for CSE RW blob" if SOC_INTEL_CSE_RW_UPDATE
Rizwan Qureshiec321092019-09-06 20:28:43 +0530129 default "me_rw"
130 help
131 CBFS entry name for Intel CSE CBFS RW blob
Sridhar Siricillab2353a72019-09-13 16:32:00 +0530132
Furquan Shaikhd2da8702021-10-07 00:08:59 -0700133config SOC_INTEL_CSE_RW_HASH_CBFS_NAME
134 string "CBFS name for CSE RW hash file" if SOC_INTEL_CSE_RW_UPDATE
135 default "me_rw.hash"
V Sowmya338b83c2020-11-11 07:04:13 +0530136 help
Furquan Shaikhd2da8702021-10-07 00:08:59 -0700137 CBFS name for Intel CSE CBFS RW hash file
138
139config SOC_INTEL_CSE_RW_VERSION_CBFS_NAME
140 string "CBFS name for CSE RW version file" if SOC_INTEL_CSE_RW_UPDATE
141 default "me_rw.version"
142 help
143 CBFS name for Intel CSE CBFS RW version file
V Sowmya338b83c2020-11-11 07:04:13 +0530144
Sridhar Siricillab2353a72019-09-13 16:32:00 +0530145config SOC_INTEL_CSE_RW_FILE
Furquan Shaikh3f0d6432021-10-09 00:08:56 -0700146 string "Intel CSE CBFS RW path and filename" if SOC_INTEL_CSE_RW_UPDATE && !STITCH_ME_BIN
Sridhar Siricillab2353a72019-09-13 16:32:00 +0530147 default ""
148 help
149 Intel CSE CBFS RW blob path and file name
V Sowmya187f06f2020-11-11 06:33:43 +0530150
151config SOC_INTEL_CSE_RW_VERSION
Sridhar Siricilla4c2890d2020-12-09 00:28:30 +0530152 string "Intel CSE RW firmware version" if SOC_INTEL_CSE_RW_UPDATE
V Sowmya187f06f2020-11-11 06:33:43 +0530153 default ""
154 help
155 This config contains the Intel CSE RW version of the blob that is provided by
156 SOC_INTEL_CSE_RW_FILE config and the version must be set in the format
157 major.minor.hotfix.build (ex: 14.0.40.1209).
Tim Wawrzynczak064ca182021-06-17 12:40:13 -0600158
159config SOC_INTEL_CSE_SET_EOP
160 bool
161 default n
Tim Wawrzynczak9fdd2b22021-06-18 10:34:09 -0600162 select PMC_IPC_ACPI_INTERFACE
Tim Wawrzynczak064ca182021-06-17 12:40:13 -0600163 help
164 This config ensures coreboot will send the CSE the End-of-POST message
165 just prior to loading the payload. This is a security feature so the
166 CSE will no longer respond to Pre-Boot commands.
Furquan Shaikh6ef863c2021-10-01 11:39:48 -0700167
Krishna Prasad Bhat333edcc2021-11-26 06:52:27 +0530168config SOC_INTEL_CSE_SUB_PART_UPDATE
169 bool "Enable the CSE sub-partition update Feature"
170 default n
171 depends on SOC_INTEL_CSE_LITE_SKU
172 help
173 This config will enable CSE sub-partition firmware update feature and also will be used ensure
174 all the required configs are provided by mainboard.
175
176config SOC_INTEL_CSE_IOM_CBFS_NAME
177 string "CBFS name for CSE sub-partition IOM binary" if SOC_INTEL_CSE_SUB_PART_UPDATE
178 default "cse_iom"
179 help
180 CBFS entry name for Intel CSE sub-partition IOM binary
181
182config SOC_INTEL_CSE_IOM_CBFS_FILE
183 string "Intel CBFS path and file name for CSE sub-partition IOM binary" if SOC_INTEL_CSE_SUB_PART_UPDATE
184 default ""
185 help
186 CBFS path and file name for Intel CSE sub-partition IOM binary
187
188config SOC_INTEL_CSE_NPHY_CBFS_NAME
189 string "CBFS name for CSE sub-partition NPHY binary" if SOC_INTEL_CSE_SUB_PART_UPDATE
190 default "cse_nphy"
191 help
192 CBFS entry name for Intel CSE sub-partition NPHY binary
193
194config SOC_INTEL_CSE_NPHY_CBFS_FILE
195 string "Intel CBFS path and file name for CSE sub-partition NPHY binary" if SOC_INTEL_CSE_SUB_PART_UPDATE
196 default ""
197 help
198 CBFS path and file name for Intel CSE sub-partition NPHY binary
199
Krishna Prasad Bhata67a92e2022-02-25 10:45:55 +0530200config SOC_INTEL_CSE_LITE_COMPRESS_ME_RW
201 bool
202 default n
203 depends on SOC_INTEL_CSE_LITE_SKU
204 help
205 Enable compression on Intel CSE CBFS RW blob
206
Bora Guvendik860672e2021-09-26 17:25:48 -0700207config SOC_INTEL_CSE_PRE_CPU_RESET_TELEMETRY
208 def_bool n
209 depends on SOC_INTEL_CSE_LITE_SKU
210 help
211 Mainboard user to select this Kconfig in order to capture pre-cpu
212 reset boot performance telemetry data.
213
Krishna Prasad Bhatddd66ed2022-06-23 22:14:28 +0530214config SOC_INTEL_CSE_LITE_SYNC_IN_ROMSTAGE
215 bool
216 default y
217 depends on SOC_INTEL_CSE_LITE_SKU && !SOC_INTEL_CSE_LITE_COMPRESS_ME_RW
218 help
219 Use default flow of CSE FW Update in romstage when uncompressed ME_RW blobs are used.
220
221config SOC_INTEL_CSE_LITE_SYNC_IN_RAMSTAGE
222 bool
223 default n
224 depends on SOC_INTEL_CSE_LITE_COMPRESS_ME_RW
225 help
226 Use this option for CSE FW Update when compressed blobs are used.
227
Dinesh Gehlot73fcbf12023-02-20 06:18:23 +0000228config SOC_INTEL_CSE_HAVE_SPEC_SUPPORT
229 bool
230 depends on SOC_INTEL_COMMON_BLOCK_CSE
231 default n
232 help
233 This option config will allow SoC platform to use applicable ME specification.
234 The version based CSE measured ME specification data structures are defined at
235 common code. Enabling this option will use those CSE defined ME specification
236 for the SoC. User should select pertinent ME spec version along with this option.
237
238config SOC_INTEL_COMMON_BLOCK_ME_SPEC_12
239 bool
240 select SOC_INTEL_CSE_HAVE_SPEC_SUPPORT
241 help
242 This config will enable 'ME specification version 12'. It will ensure ME specific
243 declaration and uses of required data structures for Host firmware status registers.
244
245config SOC_INTEL_COMMON_BLOCK_ME_SPEC_13
246 bool
247 select SOC_INTEL_CSE_HAVE_SPEC_SUPPORT
248 help
249 This config will enable 'ME specification version 13'. It will ensure ME specific
250 declaration and uses of required data structures for Host firmware status registers.
251
252config SOC_INTEL_COMMON_BLOCK_ME_SPEC_15
253 bool
254 select SOC_INTEL_CSE_HAVE_SPEC_SUPPORT
255 help
256 This config will enable 'ME specification version 15'. It will ensure ME specific
257 declaration and uses of required data structures for Host firmware status registers.
258
259config SOC_INTEL_COMMON_BLOCK_ME_SPEC_16
260 bool
261 select SOC_INTEL_CSE_HAVE_SPEC_SUPPORT
262 help
263 This config will enable 'ME specification version 16'. It will ensure ME specific
264 declaration and uses of required data structures for Host firmware status registers.
265
266config SOC_INTEL_COMMON_BLOCK_ME_SPEC_18
267 bool
268 select SOC_INTEL_CSE_HAVE_SPEC_SUPPORT
269 help
270 This config will enable 'ME specification version 18'. It will ensure ME specific
271 declaration and uses of required data structures for Host firmware status registers.
272
273if SOC_INTEL_CSE_HAVE_SPEC_SUPPORT
274
275config ME_SPEC
276 int
277 default 12 if SOC_INTEL_COMMON_BLOCK_ME_SPEC_12
278 default 13 if SOC_INTEL_COMMON_BLOCK_ME_SPEC_13
279 default 15 if SOC_INTEL_COMMON_BLOCK_ME_SPEC_15
280 default 16 if SOC_INTEL_COMMON_BLOCK_ME_SPEC_16
281 default 18 if SOC_INTEL_COMMON_BLOCK_ME_SPEC_18
282 help
283 This config holds the ME spec version if defined.
284
285endif # SOC_INTEL_CSE_HAVE_SPEC_SUPPORT
286
Furquan Shaikh6ef863c2021-10-01 11:39:48 -0700287if STITCH_ME_BIN
288
289config CSE_COMPONENTS_PATH
290 string "Path to directory containing all CSE input components to stitch"
291 default "3rdparty/blobs/mainboard/\$(CONFIG_MAINBOARD_DIR)/firmware"
292 help
293 This is the file path containing all the input CSE component files.
294 These will be used by cse_serger tool to stitch CSE image.
295
296config CSE_FPT_FILE
297 string "Name of CSE FPT file"
298 default "cse_fpt.bin"
299 help
300 This file is the CSE input binary as released by Intel in a CSE kit.
301
302config CSE_DATA_FILE
303 string "Name of CSE data file"
304 default "cse_data.bin"
305 help
306 This file is the CSE data binary typically generated by Intel FIT tool.
307
308config CSE_PMCP_FILE
309 string "Name of PMC file"
310 default "pmc.bin"
311 help
312 This file is the PMC input binary as released by Intel in a CSE kit.
313
314config CSE_IOMP_FILE
315 string "Name of IOM file"
316 default "iom.bin"
317 help
318 This file is the IOM input binary as released by Intel in a CSE kit.
319
320config CSE_TBTP_FILE
321 string "Name of TBT file"
322 default "tbt.bin"
323 help
324 This file is the TBT input binary as released by Intel in a CSE kit.
325
326config CSE_NPHY_FILE
327 string "Name of NPHY file"
328 default "nphy.bin"
329 help
330 This file is the NPHY input binary as released by Intel in a CSE kit.
331
332config CSE_PCHC_FILE
333 string "Name of PCHC file"
334 default "pchc.bin"
335 help
336 This file is the PCHC input binary as released by Intel in a CSE kit.
337
338config CSE_IUNP_FILE
339 string "Name of IUNIT file"
340 default "iunit.bin"
341 help
342 This file is the PCHC input binary as released by Intel in a CSE kit.
343
344config CSE_BPDT_VERSION
345 string
346 help
347 This config indicates the BPDT version used by CSE for a given SoC.
348
Ravindra N07092182021-12-06 10:11:51 +0530349config CSE_OEMP_FILE
ravindr1123312d2021-12-10 09:11:23 +0530350 string "Name of OEM Key Manifest file"
Ravindra N07092182021-12-06 10:11:51 +0530351 default "oem_km.bin"
ravindr1123312d2021-12-10 09:11:23 +0530352 help
353 OEM Key Manifest lists the public key hashes used for authenticating the
354 OEM created binaries to be loaded. This binary is generated by signing with
355 the key owned by trusted owner.
Ravindra N07092182021-12-06 10:11:51 +0530356
Furquan Shaikh6ef863c2021-10-01 11:39:48 -0700357endif