coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
cse.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
3 #ifndef SOC_INTEL_COMMON_CSE_H
4 #define SOC_INTEL_COMMON_CSE_H
5 
6 #include <types.h>
7 #include <vb2_api.h>
8 
9 /* MKHI Command groups */
10 #define MKHI_GROUP_ID_CBM 0x0
11 #define MKHI_GROUP_ID_HMRFPO 0x5
12 #define MKHI_GROUP_ID_GEN 0xff
13 #define MKHI_GROUP_ID_BUP_COMMON 0xf0
14 #define MKHI_GROUP_ID_FWCAPS 0x3
15 
16 /* Global Reset Command ID */
17 #define MKHI_CBM_GLOBAL_RESET_REQ 0xb
18 
19 /* Set State Command ID */
20 #define MKHI_SET_ME_DISABLE 0x3
21 #define MKHI_SET_ME_ENABLE 0x3
22 
23 /* Origin of Global Reset command */
24 #define GR_ORIGIN_BIOS_POST 0x2
25 
26 /* HMRFPO Command Ids */
27 #define MKHI_HMRFPO_ENABLE 0x1
28 #define MKHI_HMRFPO_GET_STATUS 0x3
29 
30 /* Get Firmware Version Command Id */
31 #define MKHI_GEN_GET_FW_VERSION 0x2
32 
33 /* MEI bus disable command. Must be sent to MEI client endpoint, not MKHI */
34 #define MEI_BUS_DISABLE_COMMAND 0xc
35 
36 /* Set End-of-POST in CSE */
37 #define MKHI_END_OF_POST 0xc
38 
39 /* Boot partition info and set boot partition info command ids */
40 #define MKHI_BUP_COMMON_GET_BOOT_PARTITION_INFO 0x1c
41 #define MKHI_BUP_COMMON_SET_BOOT_PARTITION_INFO 0x1d
42 #define MKHI_BUP_COMMON_DATA_CLEAR 0x20
43 
44 /* Get boot performance command id */
45 #define MKHI_BUP_COMMON_GET_BOOT_PERF_DATA 0x8
46 
47 /* ME Current Working States */
48 #define ME_HFS1_CWS_NORMAL 0x5
49 
50 /* ME Current Operation Modes */
51 #define ME_HFS1_COM_NORMAL 0x0
52 #define ME_HFS1_COM_SOFT_TEMP_DISABLE 0x3
53 #define ME_HFS1_COM_SECOVER_MEI_MSG 0x5
54 
55 /* ME Disable Rule */
56 #define ME_DISABLE_RULE_ID 6
57 #define ME_DISABLE_RULE_LENGTH 4
58 #define ME_DISABLE_COMMAND 0
59 #define ME_DISABLE_ATTEMPTS 3
60 
61 /* ME Firmware SKU Types */
62 #define ME_HFS3_FW_SKU_CONSUMER 0x2
63 #define ME_HFS3_FW_SKU_CORPORATE 0x3
64 #define ME_HFS3_FW_SKU_LITE 0x5
65 
66 /* Number of cse boot performance data */
67 #define NUM_CSE_BOOT_PERF_DATA 64
68 
69 /* HFSTS register offsets in PCI config space */
70 enum {
71  PCI_ME_HFSTS1 = 0x40,
72  PCI_ME_HFSTS2 = 0x48,
73  PCI_ME_HFSTS3 = 0x60,
74  PCI_ME_HFSTS4 = 0x64,
75  PCI_ME_HFSTS5 = 0x68,
76  PCI_ME_HFSTS6 = 0x6C,
77 };
78 
79 /* MKHI Message Header */
80 struct mkhi_hdr {
87 
88 /* CSE FW Version */
89 struct fw_version {
94 } __packed;
95 
96 /* ME FW Version */
97 struct me_version {
102 } __packed;
103 
104 /* ME FW Version response */
106  struct mkhi_hdr hdr;
107  struct me_version code;
108  struct me_version rec;
109  struct me_version fitc;
110 } __packed;
111 
112 /* CSE RX and TX error status */
114  /*
115  * Transmission of HECI message is success or
116  * Reception of HECI message is success.
117  */
119 
120  /* Timeout to send a message to CSE */
122 
123  /* Timeout to receive the response message from CSE */
125 
126  /*
127  * Response length doesn't match with expected
128  * response message length
129  */
131 
132  /* CSE is not ready during TX flow */
134 
135  /* CSE is not ready during RX flow */
137 
138  /* Invalid input arguments provided for TX API */
140 
141  /* Invalid input arguments provided for RX API */
143 };
144 
145 /* CSE recovery sub-error codes */
147  /* No error */
149 
150  /* Unspecified error */
152 
153  /* CSE fails to boot from RW */
155 
156  /* CSE RW boot partition access error */
158 
159  /* Fails to set next boot partition as RW */
161 
162  /* CSE firmware update failure */
164 
165  /* Fails to communicate with CSE */
167 
168  /* Fails to wipe CSE runtime data */
170 
171  /* CSE RW is not found */
173 
174  /* CSE CBFS RW SHA-256 mismatch with the provided SHA */
176 
177  /* CSE CBFS RW metadata is not found */
179 
180  /* CSE CBFS RW blob layout is not correct */
182 
183  /* Error sending EOP to CSE */
185 
186  /* CSE Sub-partition update fail */
188 
189  /* CSE sub-partition access failure */
191 
192  /* CSE CBFS sub-partition access error */
194 
195  /* CSE Lite sub-partition update is not required */
197 
198  /* CSE Lite sub-partition layout mismatch error */
200 
201  /* CSE Lite sub-partition update success */
203 };
204 
205 /* Boot performance data */
207  /* CSME ROM start execution */
209 
210  /* EC Boot Load Done (CSME ROM starts main execution) */
212 
213  /* CSME ROM completed execution / CSME RBE started */
215 
216  /* CSME got ESE Init Done indication from ESE */
218 
219  /* CSME RBE start PMC patch/es loading */
221 
222  /* CSME RBE completed PMC patch/es loading */
224 
225  /* CSME RBE set "Boot Stall Done" indication to PMC */
227 
228  /* CSME start poll for PMC PPS register */
230 
231  /* PMC set PPS */
233 
234  /* CSME BUP start running */
236 
237  /* CSME set "Host Boot Prep Done" indication to PMC */
239 
240  /* CSME starts PHYs loading */
242 
243  /* CSME completed PHYs loading */
245 
246  /* PMC indicated CSME that xxPWRGOOD was asserted */
248 
249  /* PMC indicated CSME that SYS_PWROK was asserted */
251 
252  /* PMC sent "CPU_BOOT_CONFIG" start message to CSME */
254 
255  /* CSME sent "CPU_BOOT_CONFIG" done message to PMC */
257 
258  /* PMC indicated CSME that xxPLTRST was de-asserted */
260 
261  /* PMC indicated CSME that TCO_S0 was asserted */
263 
264  /* PMC sent "Core Reset Done Ack - Sent" message to CSME */
266 
267  /* ACM Active indication - ACM started its execution */
269 
270  /* ACM Done indication - ACM completed execution */
272 
273  /* BIOS sent DRAM Init Done message */
275 
276  /* CSME sent DRAM Init Done message back to BIOS */
278 
279  /* CSME completed loading TCSS */
281 
282  /* CSME started loading ISH Bringup module */
284 
285  /* CSME completed loading ISH Bringup module */
287 
288  /* CSME started loading ISH Main module */
290 
291  /* CSME completed loading Main module */
293 
294  /* BIOS sent "End Of Post" message to CSME */
296 
297  /* CSME sent "End Of Post" ack message back to BIOS */
299 
300  /* BIOS sent "Core BIOS Done" message to CSME */
302 
303  /* CSME sent "Core BIOS Done" ack message back to BIOS */
305 
306  /* CSME reached Firmware Init Done */
308 
309  /* 34 - 62 Reserved */
310 
311  /* Timestamp when CSME responded to BupGetBootData message itself */
313 };
314 
315 /* CSE boot performance data */
317  struct mkhi_hdr hdr;
318 
319  /* Data version */
321 
322  /* Data length in DWORDs, represents number of valid elements in timestamp array */
324 
325  /* Boot performance data */
327 } __packed;
328 
329 /* set up device for use in early boot enviroument with temp bar */
330 void heci_init(uintptr_t bar);
331 
332 /*
333  * Send message from BIOS_HOST_ADDR to cse_addr.
334  * Sends snd_msg of size snd_sz, and reads message into buffer pointed by
335  * rcv_msg of size rcv_sz
336  * Returns CSE_TX_RX_SUCCESS on success and other enum values on failure scenarios.
337  */
338 enum cse_tx_rx_status heci_send_receive(const void *snd_msg, size_t snd_sz, void *rcv_msg,
339  size_t *rcv_sz, uint8_t cse_addr);
340 
341 /*
342  * Attempt device reset. This is useful and perhaps only thing left to do when
343  * CPU and CSE are out of sync or CSE fails to respond.
344  * Returns 0 on failure and 1 on success.
345  */
346 int heci_reset(void);
347 /* Disable HECI1 using Sideband interface communication */
348 void heci1_disable(void);
349 
350 /* Reads config value from a specified offset in the CSE PCI Config space. */
352 
353 /*
354  * Check if the CSE device as per function argument `devfn` is enabled in device tree
355  * and also visible on the PCI bus.
356  */
357 bool is_cse_devfn_visible(unsigned int devfn);
358 
359 /*
360  * Check if the CSE device is enabled in device tree. Also check if the device
361  * is visible on the PCI bus by reading config space.
362  * Return true if device present and config space enabled, else return false.
363  */
364 bool is_cse_enabled(void);
365 
366 /* Makes the host ready to communicate with CSE */
367 void cse_set_host_ready(void);
368 
369 /*
370  * Polls for ME state 'HECI_OP_MODE_SEC_OVERRIDE' for 15 seconds.
371  * Returns 0 on failure and 1 on success.
372  */
374 
378 };
379 
380 /*
381  * Sends GLOBAL_RESET_REQ cmd to CSE with reset type GLOBAL_RESET.
382  * Returns 0 on failure and 1 on success.
383  */
384 int cse_request_global_reset(void);
385 /*
386  * Sends HMRFPO_ENABLE command.
387  * HMRFPO - Host ME Region Flash Protection Override.
388  * For CSE Lite SKU, procedure to place CSE in HMRFPO (SECOVER_MEI_MSG) mode:
389  * 1. Ensure CSE boots from RO(BP1).
390  * - Set CSE's next boot partition to RO
391  * - Issue GLOBAL_RESET command to reset the system
392  * 2. Send HMRFPO_ENABLE command to CSE. Further, no reset is required.
393  *
394  * The HMRFPO mode prevents CSE to execute SPI I/O cycles to CSE region, and unlocks
395  * the CSE region to perform updates to it.
396  * This command is only valid before EOP.
397  *
398  * Returns 0 on failure to send HECI command and to enable HMRFPO mode, and 1 on success.
399  *
400  */
401 int cse_hmrfpo_enable(void);
402 
403 /*
404  * Send HMRFPO_GET_STATUS command.
405  * returns -1 on failure and 0 (DISABLED)/ 1 (LOCKED)/ 2 (ENABLED)
406  * on success.
407  */
408 int cse_hmrfpo_get_status(void);
409 
410 /* Fixed Address MEI Header's Host Address field value */
411 #define BIOS_HOST_ADDR 0x00
412 
413 /* Fixed Address MEI Header's ME Address field value */
414 #define HECI_MKHI_ADDR 0x07
415 
416 /* Fixed Address MEI Header's ME Address for MEI bus messages */
417 #define HECI_MEI_ADDR 0x00
418 
419 /* HMRFPO Status types */
420 /* Host can't access ME region */
421 #define MKHI_HMRFPO_DISABLED 0
422 
423 /*
424  * ME Firmware locked down HMRFPO Feature.
425  * Host can't access ME region.
426  */
427 #define MKHI_HMRFPO_LOCKED 1
428 
429 /* Host can access ME region */
430 #define MKHI_HMRFPO_ENABLED 2
431 
432 /*
433  * Queries and logs ME firmware version
434  */
435 void print_me_fw_version(void *unused);
436 
437 /*
438  * Queries and gets ME firmware version
439  */
440 enum cb_err get_me_fw_version(struct me_fw_ver_resp *resp);
441 
442 /*
443  * Checks current working operation state is normal or not.
444  * Returns true if CSE's current working state is normal, otherwise false.
445  */
446 bool cse_is_hfs1_cws_normal(void);
447 
448 /*
449  * Checks CSE's current operation mode is normal or not.
450  * Returns true if CSE's current operation mode is normal, otherwise false.
451  */
452 bool cse_is_hfs1_com_normal(void);
453 
454 /*
455  * Checks CSE's current operation mode is SECOVER_MEI_MSG or not.
456  * Returns true if CSE's current operation mode is SECOVER_MEI_MSG, otherwise false.
457  */
459 
460 /*
461  * Checks CSE's current operation mode is Soft Disable Mode or not.
462  * Returns true if CSE's current operation mode is Soft Disable Mode, otherwise false.
463  */
465 
466 /*
467  * Checks CSE's spi protection mode is protected or unprotected.
468  * Returns true if CSE's spi protection mode is protected, otherwise false.
469  */
470 bool cse_is_hfs1_spi_protected(void);
471 
472 /*
473  * Checks CSE's Firmware SKU is Lite or not.
474  * Returns true if CSE's Firmware SKU is Lite, otherwise false
475  */
476 bool cse_is_hfs3_fw_sku_lite(void);
477 
478 /*
479  * Polls for CSE's current operation mode 'Soft Temp Disable'.
480  * Returns 0 on failure and 1 on success.
481  */
483 
484 /*
485  * The CSE Lite SKU supports notion of RO and RW boot partitions. The function will set
486  * CSE's boot partition as per Chrome OS boot modes. In normal mode, the function allows CSE to
487  * boot from RW and triggers recovery mode if CSE fails to jump to RW.
488  * In software triggered recovery mode, the function allows CSE to boot from whatever is
489  * currently selected partition.
490  */
491 void cse_fw_sync(void);
492 
493 /* Perform a board-specific reset sequence for CSE RO<->RW jump */
494 void cse_board_reset(void);
495 
496 /* Trigger vboot recovery mode on a CSE error */
498 
502 };
503 
504 /* Function to get the current CSE device state as per `cse_device_state` */
505 enum cse_device_state get_cse_device_state(unsigned int devfn);
506 
507 /* Function that put the CSE into desired state based on `requested_state` */
508 bool set_cse_device_state(unsigned int devfn, enum cse_device_state requested_state);
509 
510 /*
511  * Check if cse sub-parition update is required or not.
512  * Returns true if cse sub-parition update is required otherwise false.
513  */
514 bool skip_cse_sub_part_update(void);
515 
516 /*
517  * This command retrieves a set of boot performance timestamps CSME collected during
518  * the last platform boot flow.
519  */
520 bool cse_get_boot_performance_data(struct cse_boot_perf_rsp *boot_perf);
521 
522 /* Function to make cse disable using PMC IPC */
523 bool cse_disable_mei_devices(void);
524 
525 /* Set CSE device state to D0I3 */
526 void cse_set_to_d0i3(void);
527 
528 /* Function sets D0I3 for all HECI devices */
529 void heci_set_to_d0i3(void);
530 
531 /* Function performs the global reset lock */
533 
534 /* Send End of Post (EOP) command to CSE device */
535 void cse_send_end_of_post(void);
536 
537 /*
538  * SoC override API to make heci1 disable using PCR.
539  *
540  * Allow SoC to implement heci1 disable override due to PSF registers being
541  * different across SoC generation.
542  */
543 void soc_disable_heci1_using_pcr(void);
544 
545 /*
546  * Get all the timestamps CSE collected using cse_get_boot_performance_data() and
547  * insert them into the CBMEM timestamp table.
548  */
549 void cse_get_telemetry_data(void);
550 
551 #endif // SOC_INTEL_COMMON_CSE_H
cb_err
coreboot error codes
Definition: cb_err.h:15
void print_me_fw_version(void *unused)
Definition: cse.c:855
void cse_set_to_d0i3(void)
Definition: cse.c:1003
bool cse_is_hfs1_com_soft_temp_disable(void)
Definition: cse.c:260
bool cse_is_hfs1_cws_normal(void)
Definition: cse.c:241
enum cb_err get_me_fw_version(struct me_fw_ver_resp *resp)
Definition: cse.c:871
void cse_set_host_ready(void)
Definition: cse.c:289
bool cse_is_hfs1_com_normal(void)
Definition: cse.c:250
uint8_t cse_wait_sec_override_mode(void)
Definition: cse.c:299
enum cse_tx_rx_status heci_send_receive(const void *snd_msg, size_t snd_sz, void *rcv_msg, size_t *rcv_sz, uint8_t cse_addr)
Definition: cse.c:574
enum cse_device_state get_cse_device_state(unsigned int devfn)
Definition: cse.c:961
bool is_cse_enabled(void)
Definition: cse.c:640
void heci_set_to_d0i3(void)
Definition: cse.c:1012
int heci_reset(void)
Definition: cse.c:599
csme_failure_reason
Definition: cse.h:146
@ CSE_COMMUNICATION_ERROR
Definition: cse.h:166
@ CSE_EOP_FAIL
Definition: cse.h:184
@ CSE_LITE_SKU_SUB_PART_LAYOUT_MISMATCH_ERROR
Definition: cse.h:199
@ CSE_LITE_SKU_SUB_PART_BLOB_ACCESS_ERR
Definition: cse.h:193
@ CSE_NO_ERROR
Definition: cse.h:148
@ CSE_LITE_SKU_RW_ACCESS_ERROR
Definition: cse.h:157
@ CSE_LITE_SKU_LAYOUT_MISMATCH_ERROR
Definition: cse.h:181
@ CSE_LITE_SKU_SUB_PART_UPDATE_NOT_REQ
Definition: cse.h:196
@ CSE_LITE_SKU_FW_UPDATE_ERROR
Definition: cse.h:163
@ CSE_LITE_SKU_SUB_PART_ACCESS_ERR
Definition: cse.h:190
@ CSE_LITE_SKU_RW_SWITCH_ERROR
Definition: cse.h:160
@ CSE_LITE_SKU_RW_JUMP_ERROR
Definition: cse.h:154
@ CSE_LITE_SKU_RW_BLOB_SHA256_MISMATCH
Definition: cse.h:175
@ CSE_LITE_SKU_PART_UPDATE_SUCCESS
Definition: cse.h:202
@ CSE_LITE_SKU_RW_BLOB_NOT_FOUND
Definition: cse.h:172
@ CSE_LITE_SKU_DATA_WIPE_ERROR
Definition: cse.h:169
@ CSE_LITE_SKU_RW_METADATA_NOT_FOUND
Definition: cse.h:178
@ CSE_ERROR_UNSPECIFIED
Definition: cse.h:151
@ CSE_LITE_SKU_SUB_PART_UPDATE_FAIL
Definition: cse.h:187
void cse_fw_sync(void)
Definition: cse_lite.c:1042
cse_tx_rx_status
Definition: cse.h:113
@ CSE_RX_ERR_TIMEOUT
Definition: cse.h:124
@ CSE_TX_ERR_INPUT
Definition: cse.h:139
@ CSE_TX_ERR_TIMEOUT
Definition: cse.h:121
@ CSE_TX_ERR_CSE_NOT_READY
Definition: cse.h:133
@ CSE_RX_ERR_RESP_LEN_MISMATCH
Definition: cse.h:130
@ CSE_RX_ERR_INPUT
Definition: cse.h:142
@ CSE_TX_RX_SUCCESS
Definition: cse.h:118
@ CSE_RX_ERR_CSE_NOT_READY
Definition: cse.h:136
uint32_t me_read_config32(int offset)
Definition: cse.c:645
bool cse_disable_mei_devices(void)
Definition: disable_heci.c:31
bool cse_get_boot_performance_data(struct cse_boot_perf_rsp *boot_perf)
Definition: cse_lite.c:133
void heci_init(uintptr_t bar)
Definition: cse.c:92
void cse_send_end_of_post(void)
Definition: cse_eop.c:236
bool skip_cse_sub_part_update(void)
Definition: romstage.c:29
int cse_hmrfpo_get_status(void)
Definition: cse.c:812
int cse_request_global_reset(void)
Definition: cse.c:722
bool cse_is_hfs1_spi_protected(void)
Definition: cse.c:274
bool cse_is_hfs1_com_secover_mei_msg(void)
Definition: cse.c:255
bool is_cse_devfn_visible(unsigned int devfn)
Definition: cse.c:622
void soc_disable_heci1_using_pcr(void)
Definition: cse.c:195
rst_req_type
Definition: cse.h:375
@ GLOBAL_RESET
Definition: cse.h:376
@ CSE_RESET_ONLY
Definition: cse.h:377
void cse_board_reset(void)
Definition: cse_lite.c:350
cse_device_state
Definition: cse.h:499
@ DEV_ACTIVE
Definition: cse.h:501
@ DEV_IDLE
Definition: cse.h:500
void heci1_disable(void)
Definition: disable_heci.c:84
bool set_cse_device_state(unsigned int devfn, enum cse_device_state requested_state)
Definition: cse.c:987
void cse_control_global_reset_lock(void)
Definition: cse.c:1023
uint8_t cse_wait_com_soft_temp_disable(void)
Definition: cse.c:319
struct mkhi_hdr __packed
cse_boot_perf_data
Definition: cse.h:206
@ PERF_DATA_PMC_CPU_BOOT_CONFIG_START
Definition: cse.h:253
@ PERF_DATA_CSME_POLL_FOR_PMC_PPS_START
Definition: cse.h:229
@ PERF_DATA_CSME_RBE_BOOT_STALL_DONE_TO_PMC
Definition: cse.h:226
@ PERF_DATA_CSME_PHY_LOADING_START
Definition: cse.h:241
@ PERF_DATA_CSME_RBE_PMC_PATCH_LOADING_START
Definition: cse.h:220
@ PERF_DATA_CSME_GET_PERF_RESPONSE
Definition: cse.h:312
@ PERF_DATA_CSME_HOST_BOOT_PREP_DONE
Definition: cse.h:238
@ PERF_DATA_PERF_DATA_CSME_LOAD_ISH_BRINGUP_START
Definition: cse.h:283
@ PERF_DATA_CSME_END_OF_POST
Definition: cse.h:298
@ PERF_DATA_PMC_PLTRST_DEASSERTED
Definition: cse.h:259
@ PERF_DATA_CSME_ROM_COMPLETED
Definition: cse.h:214
@ PERF_DATA_CSME_LOAD_ISH_MAIN_DONE
Definition: cse.h:292
@ PERF_DATA_BIOS_DRAM_INIT_DONE
Definition: cse.h:274
@ PERF_DATA_PMC_PWRGOOD_ASSERTED
Definition: cse.h:247
@ PERF_DATA_CSME_ROM_START
Definition: cse.h:208
@ PERF_DATA_BIOS_BIOS_CORE_DONE
Definition: cse.h:301
@ PERF_DATA_PMC_TC0_S0_ASSERTED
Definition: cse.h:262
@ PERF_DATA_CSME_LOAD_TCSS_COMPLETED
Definition: cse.h:280
@ PERF_DATA_CSME_PHY_LOADING_COMPLETED
Definition: cse.h:244
@ PERF_DATA_BIOS_END_OF_POST
Definition: cse.h:295
@ PERF_DATA_PMC_SYS_PWROK_ASSERTED
Definition: cse.h:250
@ PERF_DATA_PMC_SENT_CRDA
Definition: cse.h:265
@ PERF_DATA_PMC_SET_PPS
Definition: cse.h:232
@ PERF_DATA_CSME_DRAM_INIT_DONE
Definition: cse.h:277
@ PERF_DATA_CSME_GOT_ESE_INIT_DONE
Definition: cse.h:217
@ PERF_DATA_CSME_LOAD_ISH_MAIN_START
Definition: cse.h:289
@ PERF_DATA_ACM_START
Definition: cse.h:268
@ PERF_DATA_ACM_DONE
Definition: cse.h:271
@ PERF_DATA_CSME_LOAD_ISH_BRINGUP_DONE
Definition: cse.h:286
@ PERF_DATA_CSME_GW_INIT_DONE
Definition: cse.h:307
@ PERF_DATA_CSME_BUP_START
Definition: cse.h:235
@ PERF_DATA_EC_BOOT_LOAD_DONE
Definition: cse.h:211
@ PERF_DATA_CSME_RBE_PMC_PATCH_LOADING_COMPLETED
Definition: cse.h:223
@ PERF_DATA_CSME_BIOS_CORE_DONE
Definition: cse.h:304
@ PERF_DATA_CSME_CPU_BOOT_CONFIG_DONW
Definition: cse.h:256
bool cse_is_hfs3_fw_sku_lite(void)
Definition: cse.c:281
@ PCI_ME_HFSTS3
Definition: cse.h:73
@ PCI_ME_HFSTS4
Definition: cse.h:74
@ PCI_ME_HFSTS2
Definition: cse.h:72
@ PCI_ME_HFSTS6
Definition: cse.h:76
@ PCI_ME_HFSTS5
Definition: cse.h:75
@ PCI_ME_HFSTS1
Definition: cse.h:71
void cse_get_telemetry_data(void)
Definition: telemetry.c:76
void cse_trigger_vboot_recovery(enum csme_failure_reason reason)
Definition: cse.c:918
#define NUM_CSE_BOOT_PERF_DATA
Definition: cse.h:67
int cse_hmrfpo_enable(void)
Definition: cse.c:748
static size_t offset
Definition: flashconsole.c:16
unsigned short uint16_t
Definition: stdint.h:11
unsigned int uint32_t
Definition: stdint.h:14
unsigned long uintptr_t
Definition: stdint.h:21
unsigned char uint8_t
Definition: stdint.h:8
uint32_t num_valid_timestamps
Definition: cse.h:323
uint32_t timestamp[NUM_CSE_BOOT_PERF_DATA]
Definition: cse.h:326
uint32_t version
Definition: cse.h:320
struct mkhi_hdr hdr
Definition: cse.h:317
Definition: cse.h:89
uint16_t major
Definition: cse.h:90
uint16_t build
Definition: cse.h:93
uint16_t minor
Definition: cse.h:91
uint16_t hotfix
Definition: cse.h:92
struct me_version rec
Definition: cse.h:108
struct me_version fitc
Definition: cse.h:109
struct mkhi_hdr hdr
Definition: cse.h:106
struct me_version code
Definition: cse.h:107
Definition: cse.h:97
uint16_t build
Definition: cse.h:100
uint16_t hotfix
Definition: cse.h:101
uint16_t major
Definition: cse.h:99
uint16_t minor
Definition: cse.h:98
Definition: cse.h:80
uint8_t command
Definition: cse.h:82
uint8_t rsvd
Definition: cse.h:84
uint8_t group_id
Definition: cse.h:81
uint8_t is_resp
Definition: cse.h:83
uint8_t result
Definition: cse.h:85