coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
me.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #ifndef _SKYLAKE_ME_H_
4 #define _SKYLAKE_ME_H_
5 
6 /*
7  * Management Engine PCI registers
8  */
9 #define ME_HFS_CWS_RESET 0
10 #define ME_HFS_CWS_INIT 1
11 #define ME_HFS_CWS_REC 2
12 #define ME_HFS_CWS_NORMAL 5
13 #define ME_HFS_CWS_WAIT 6
14 #define ME_HFS_CWS_TRANS 7
15 #define ME_HFS_CWS_INVALID 8
16 #define ME_HFS_STATE_PREBOOT 0
17 #define ME_HFS_STATE_M0_UMA 1
18 #define ME_HFS_STATE_M3 4
19 #define ME_HFS_STATE_M0 5
20 #define ME_HFS_STATE_BRINGUP 6
21 #define ME_HFS_STATE_ERROR 7
22 #define ME_HFS_ERROR_NONE 0
23 #define ME_HFS_ERROR_UNCAT 1
24 #define ME_HFS_ERROR_IMAGE 3
25 #define ME_HFS_ERROR_DEBUG 4
26 #define ME_HFS_MODE_NORMAL 0
27 #define ME_HFS_MODE_DEBUG 2
28 #define ME_HFS_MODE_DIS 3
29 #define ME_HFS_MODE_OVER_JMPR 4
30 #define ME_HFS_MODE_OVER_MEI 5
31 #define ME_HFS_BIOS_DRAM_ACK 1
32 #define ME_HFS_POWER_SOURCE_AC 1
33 #define ME_HFS_POWER_SOURCE_DC 2
34 
35 /* Infrastructure Progress Values */
36 #define ME_HFS2_PHASE_ROM 0
37 #define ME_HFS2_PHASE_UKERNEL 2
38 #define ME_HFS2_PHASE_BUP 3
39 #define ME_HFS2_PHASE_HOST_COMM 6
40 /* Current State - Based on Infra Progress values. */
41 /* ROM State */
42 #define ME_HFS2_STATE_ROM_BEGIN 0
43 #define ME_HFS2_STATE_ROM_DISABLE 6
44 /* BUP State */
45 #define ME_HFS2_STATE_BUP_INIT 0
46 #define ME_HFS2_STATE_BUP_DIS_HOST_WAKE 1
47 #define ME_HFS2_STATE_BUP_CG_ENABLE 2
48 #define ME_HFS2_STATE_BUP_PM_HND_EN 3
49 #define ME_HFS2_STATE_BUP_FLOW_DET 4
50 #define ME_HFS2_STATE_BUP_PMC_PATCHING 5
51 #define ME_HFS2_STATE_BUP_GET_FLASH_VSCC 6
52 #define ME_HFS2_STATE_BUP_SET_FLASH_VSCC 7
53 #define ME_HFS2_STATE_BUP_VSCC_ERR 8
54 #define ME_HFS2_STATE_BUP_EFSS_INIT 9
55 #define ME_HFS2_STATE_BUP_CHECK_STRAP 0xa
56 #define ME_HFS2_STATE_BUP_PWR_OK_TIMEOUT 0xb
57 #define ME_HFS2_STATE_BUP_STRAP_DIS 0xc
58 #define ME_HFS2_STATE_BUP_MANUF_OVRD_STRAP 0xd
59 #define ME_HFS2_STATE_BUP_M3 0x11
60 #define ME_HFS2_STATE_BUP_M0 0x12
61 #define ME_HFS2_STATE_BUP_FLOW_DET_ERR 0x13
62 #define ME_HFS2_STATE_BUP_M3_CLK_ERR 0x15
63 #define ME_HFS2_STATE_BUP_CPU_RESET_DID_TIMEOUT_MEM_MISSING 0x17
64 #define ME_HFS2_STATE_BUP_M3_KERN_LOAD 0x18
65 #define ME_HFS2_STATE_BUP_T32_MISSING 0x1c
66 #define ME_HFS2_STATE_BUP_WAIT_DID 0x1f
67 #define ME_HFS2_STATE_BUP_WAIT_DID_FAIL 0x20
68 #define ME_HFS2_STATE_BUP_DID_NO_FAIL 0x21
69 #define ME_HFS2_STATE_BUP_ENABLE_UMA 0x22
70 #define ME_HFS2_STATE_BUP_ENABLE_UMA_ERR 0x23
71 #define ME_HFS2_STATE_BUP_SEND_DID_ACK 0x24
72 #define ME_HFS2_STATE_BUP_SEND_DID_ACK_ERR 0x25
73 #define ME_HFS2_STATE_BUP_M0_CLK 0x26
74 #define ME_HFS2_STATE_BUP_M0_CLK_ERR 0x27
75 #define ME_HFS2_STATE_BUP_TEMP_DIS 0x28
76 #define ME_HFS2_STATE_BUP_M0_KERN_LOAD 0x32
77 /* Policy Module State */
78 #define ME_HFS2_STATE_POLICY_ENTRY 0
79 #define ME_HFS2_STATE_POLICY_RCVD_S3 3
80 #define ME_HFS2_STATE_POLICY_RCVD_S4 4
81 #define ME_HFS2_STATE_POLICY_RCVD_S5 5
82 #define ME_HFS2_STATE_POLICY_RCVD_UPD 6
83 #define ME_HFS2_STATE_POLICY_RCVD_PCR 7
84 #define ME_HFS2_STATE_POLICY_RCVD_NPCR 8
85 #define ME_HFS2_STATE_POLICY_RCVD_HOST_WAKE 9
86 #define ME_HFS2_STATE_POLICY_RCVD_AC_DC 0xa
87 #define ME_HFS2_STATE_POLICY_RCVD_DID 0xb
88 #define ME_HFS2_STATE_POLICY_VSCC_NOT_FOUND 0xc
89 #define ME_HFS2_STATE_POLICY_VSCC_INVALID 0xd
90 #define ME_HFS2_STATE_POLICY_FPB_ERR 0xe
91 #define ME_HFS2_STATE_POLICY_DESCRIPTOR_ERR 0xf
92 #define ME_HFS2_STATE_POLICY_VSCC_NO_MATCH 0x10
93 /* Current PM Event Values */
94 #define ME_HFS2_PMEVENT_CLEAN_MOFF_MX_WAKE 0
95 #define ME_HFS2_PMEVENT_MOFF_MX_WAKE_ERROR 1
96 #define ME_HFS2_PMEVENT_CLEAN_GLOBAL_RESET 2
97 #define ME_HFS2_PMEVENT_CLEAN_GLOBAL_RESET_ERROR 3
98 #define ME_HFS2_PMEVENT_CLEAN_ME_RESET 4
99 #define ME_HFS2_PMEVENT_ME_RESET_EXCEPTION 5
100 #define ME_HFS2_PMEVENT_PSEUDO_ME_RESET 6
101 #define ME_HFS2_PMEVENT_CM0_CM3 7
102 #define ME_HFS2_PMEVENT_CM3_CM0 8
103 #define ME_HFS2_PMEVENT_NON_PWR_CYCLE_RESET 9
104 #define ME_HFS2_PMEVENT_PWR_CYCLE_RESET_M3 0xa
105 #define ME_HFS2_PMEVENT_PWR_CYCLE_RESET_MOFF 0xb
106 #define ME_HFS2_PMEVENT_CMX_CMOFF 0xc
107 #define ME_HFS2_PMEVENT_CM0_CM0PG 0xd
108 #define ME_HFS2_PMEVENT_CM3_CM3PG 0xe
109 #define ME_HFS2_PMEVENT_CM0PG_CM0 0xf
110 
111 /* ME Host Firmware Status register 1 */
112 union me_hfsts1 {
113  u32 data;
114  struct {
115  u32 working_state: 4;
116  u32 mfg_mode: 1;
117  u32 fpt_bad: 1;
118  u32 operation_state: 3;
120  u32 ft_bup_ld_flr: 1;
122  u32 error_code: 4;
123  u32 operation_mode: 4;
124  u32 reset_count: 4;
126  u32 reserved1: 1;
127  u32 bist_test_state: 1;
133 };
134 
135 union me_hfsts2 {
137  struct {
154 };
155 
156 union me_hfsts3 {
157  u32 data;
158  struct {
160  u32 fw_sku: 3;
167 };
168 
169 #define ME_HFS6_FPF_NOT_COMMITTED 0x0
170 #define ME_HFS6_FPF_ERROR 0x2
171 
172 union me_hfsts6 {
174  struct {
178 };
179 
180 void intel_me_status(void);
181 int send_global_reset(void);
182 
183 #endif
void intel_me_status(void)
Definition: me_status.c:194
int send_global_reset(void)
Definition: me.c:341
uint32_t u32
Definition: stdint.h:51
Definition: x86.c:23
Definition: me.h:9
u32 boot_options_present
Definition: me.h:22
u32 reserved1
Definition: me.h:29
u32 operation_state
Definition: me.h:15
u32 d3_support_valid
Definition: me.h:130
u32 update_in_progress
Definition: me.h:18
u32 d0i3_support_valid
Definition: me.h:28
u32 fw_init_complete
Definition: me.h:16
u32 mfg_mode
Definition: me.h:13
u32 bist_reset_request
Definition: me.h:25
u32 bist_test_state
Definition: me.h:24
u32 reset_count
Definition: me.h:21
u32 ft_bup_ld_flr
Definition: me.h:17
u32 operation_mode
Definition: me.h:20
u32 current_power_source
Definition: me.h:26
u32 error_code
Definition: me.h:19
struct me_hfsts1::@464 fields
u32 data
Definition: me.h:10
u32 working_state
Definition: me.h:12
u32 fpt_bad
Definition: me.h:14
Definition: me.c:11
u32 invoke_mebx
Definition: me.h:139
u32 reserved2
Definition: me.h:141
u32 fw_upd_forced_sb
Definition: me.h:148
u32 power_gating_ind
Definition: me.h:146
u32 warm_reset_request
Definition: me.h:143
u32 data
Definition: me.h:136
u32 current_pmevent
Definition: me.h:151
u32 reserved4
Definition: me.h:149
u32 cpu_replaced_valid
Definition: me.h:144
u32 reserved3
Definition: me.h:147
u32 progress_code
Definition: me.h:152
u32 cpu_replaced_sts
Definition: me.h:140
u32 current_state
Definition: me.h:150
u32 reserved1
Definition: me.h:138
u32 mfs_failure
Definition: me.h:142
struct me_hfsts2::@477 fields
u32 low_power_state
Definition: me.h:145
Definition: me.h:33
u32 fw_sku
Definition: me.h:37
u32 pch_config_change
Definition: me.h:162
u32 data
Definition: me.h:34
u32 encrypt_key_override
Definition: me.h:164
u32 encrypt_key_check
Definition: me.h:161
u32 reserved1
Definition: me.h:159
u32 power_down_mitigation
Definition: me.h:165
struct me_hfsts3::@465 fields
u32 reserved2
Definition: me.h:163
Definition: me.c:70
struct me_hfsts6::@480 fields
u32 data
Definition: me.h:173
u32 fpf_nvars
Definition: me.h:176
u32 reserved1
Definition: me.h:175