diff options
Diffstat (limited to 'drivers/staging/mei/mei.txt')
-rw-r--r-- | drivers/staging/mei/mei.txt | 189 |
1 files changed, 189 insertions, 0 deletions
diff --git a/drivers/staging/mei/mei.txt b/drivers/staging/mei/mei.txt new file mode 100644 index 00000000000..17302ad2531 --- /dev/null +++ b/drivers/staging/mei/mei.txt | |||
@@ -0,0 +1,189 @@ | |||
1 | Intel MEI | ||
2 | ======================= | ||
3 | |||
4 | Introduction | ||
5 | ======================= | ||
6 | |||
7 | The Intel Management Engine (Intel ME) is an isolated and | ||
8 | protected computing resource (Coprocessor) residing inside | ||
9 | Intel chipsets. The Intel ME provides support for computer/IT | ||
10 | management features. | ||
11 | The Feature set depends on the Intel chipset SKU. | ||
12 | |||
13 | The Intel Management Engine Interface (Intel MEI, previously known | ||
14 | as HECI) is the interface between the Host and Intel ME. | ||
15 | This interface is exposed to the host as a PCI device. | ||
16 | The Intel MEI Driver is in charge of the communication channel | ||
17 | between a host application and the ME feature. | ||
18 | |||
19 | Each Intel ME feature (Intel ME Client) is addressed by | ||
20 | GUID/UUID and each feature defines its own protocol. | ||
21 | The protocol is message-based with a header and payload up to | ||
22 | 512 bytes. | ||
23 | |||
24 | [place holder to URL to protocol definitions] | ||
25 | |||
26 | Prominent usage of the Interface is to communicate with | ||
27 | Intel Active Management Technology (Intel AMT) | ||
28 | implemented in firmware running on the Intel ME. | ||
29 | |||
30 | Intel AMT provides the ability to manage a host remotely out-of-band (OOB) | ||
31 | even when the host processor has crashed or is in a sleep state. | ||
32 | |||
33 | Some examples of Intel AMT usage are: | ||
34 | - Monitoring hardware state and platform components | ||
35 | - Remote power off/on (useful for green computing or overnight IT maintenance) | ||
36 | - OS updates | ||
37 | - Storage of useful platform information such as software assets | ||
38 | - built-in hardware KVM | ||
39 | - selective network isolation of Ethernet and IP protocol flows based on | ||
40 | policies set by a remote management console | ||
41 | - IDE device redirection from remote management console | ||
42 | |||
43 | Intel AMT (OOB) communication is based on SOAP (deprecated | ||
44 | starting with Release 6.0) over HTTP/HTTPS or WS-Management protocol | ||
45 | over HTTP and HTTPS that are received from a remote | ||
46 | management console application. | ||
47 | |||
48 | For more information about Intel AMT: | ||
49 | http://software.intel.com/sites/manageability/AMT_Implementation_and_Reference_Guide/WordDocuments/aboutintelamt.htm | ||
50 | |||
51 | |||
52 | MEI Driver | ||
53 | ======================= | ||
54 | |||
55 | The driver exposes a character device called /dev/mei. | ||
56 | |||
57 | An application maintains communication with an ME feature while | ||
58 | /dev/mei is open. The binding to a specific features is performed | ||
59 | by calling MEI_CONNECT_CLIENT_IOCTL, which passes the desired UUID. | ||
60 | The number of instances of an ME feature that can be opened | ||
61 | at the same time depends on the ME feature, but most of the | ||
62 | features allow only a single instance. | ||
63 | |||
64 | |||
65 | The Intel AMT Host Interface (AMTHI) feature requires multiple | ||
66 | simultaneous user applications, therefore the MEI driver handles | ||
67 | this internally by maintaining request queues for the applications. | ||
68 | |||
69 | The driver is oblivious to data that are passed between | ||
70 | |||
71 | Because some of the ME features can change the system | ||
72 | configuration, the driver by default allows only privileged | ||
73 | user to access it. | ||
74 | |||
75 | A Code snippet for application communicating with AMTHI client: | ||
76 | struct mei_connect_client_data data; | ||
77 | fd = open(MEI_DEVICE); | ||
78 | |||
79 | data.d.in_client_uuid = AMTHI_UUID; | ||
80 | |||
81 | ioctl(fd, IOCTL_MEI_CONNECT_CLIENT, &data); | ||
82 | |||
83 | printf(“Ver=%d, MaxLen=%ld\n”, | ||
84 | data.d.in_client_uuid.protocol_version, | ||
85 | data.d.in_client_uuid.max_msg_length); | ||
86 | |||
87 | [...] | ||
88 | |||
89 | write(fd, amthi_req_data, amthi_req_data_len); | ||
90 | |||
91 | [...] | ||
92 | |||
93 | read(fd, &amthi_res_data, amthi_res_data_len); | ||
94 | |||
95 | [...] | ||
96 | close(fd); | ||
97 | |||
98 | ME Applications: | ||
99 | ============== | ||
100 | |||
101 | 1) Intel Local Management Service (Intel LMS) | ||
102 | Applications running locally on the platform communicate with | ||
103 | Intel AMT Release 2.0 and later releases in the same way | ||
104 | that network applications do via SOAP over HTTP (deprecated | ||
105 | starting with Release 6.0) or with WS-Management over SOAP over | ||
106 | HTTP. which means that some Intel AMT feature can be access | ||
107 | from a local application using same Network interface as for | ||
108 | remote application. | ||
109 | |||
110 | When a local application sends a message addressed to the local | ||
111 | Intel AMT host name, the Local Manageability Service (LMS), | ||
112 | which listens for traffic directed to the host name, intercepts | ||
113 | the message and routes it to the Intel Management Engine Interface. | ||
114 | For more information: | ||
115 | http://software.intel.com/sites/manageability/AMT_Implementation_and_ | ||
116 | Reference_Guide/WordDocuments/localaccess1.htm | ||
117 | |||
118 | The LMS opens a connection using the MEI driver to the LMS | ||
119 | FW feature using a defined UUID and then communicates with the | ||
120 | feature using a protocol | ||
121 | called Intel(R) AMT Port Forwarding Protocol (APF protocol). | ||
122 | The protocol is used to maintain multiple sessions with | ||
123 | Intel AMT from a single application. | ||
124 | See the protocol specification in | ||
125 | the Intel(R) AMT Implementation and Reference Guide | ||
126 | http://software.intel.com/sites/manageability/AMT_Implementation_and_Reference_Guide/HTMLDocuments/MPSDocuments/Intel%20AMT%20Port%20Forwarding%20Protocol%20Reference%20Manual.pdf | ||
127 | |||
128 | 2) Intel AMT Remote configuration using a Local Agent: | ||
129 | A Local Agent enables IT personnel to configure Intel AMT out-of-the-box | ||
130 | without requiring installing additional data to enable setup. | ||
131 | The remote configuration process may involve an ISV-developed remote | ||
132 | configuration agent that runs on the host. | ||
133 | For more information: | ||
134 | http://software.intel.com/sites/manageability/AMT_Implementation_and_Reference_Guide/WordDocuments/remoteconfigurationwithalocalagent.htm | ||
135 | |||
136 | How the Local Agent Works (including Command structs): | ||
137 | http://software.intel.com/sites/manageability/AMT_Implementation_and_Reference_Guide/WordDocuments/howthelocalagentsampleworks.htm | ||
138 | |||
139 | Intel AMT OS Health Watchdog: | ||
140 | ============================= | ||
141 | The Intel AMT Watchdog is an OS Health (Hang/Crash) watchdog. | ||
142 | Whenever the OS hangs or crashes, Intel AMT will send an event | ||
143 | to whoever subscribed to this event. This mechanism means that | ||
144 | IT knows when a platform crashes even when there is a hard failure | ||
145 | on the host. | ||
146 | The AMT Watchdog is composed of two parts: | ||
147 | 1) FW Feature - that receives the heartbeats | ||
148 | and sends an event when the heartbeats stop. | ||
149 | 2) MEI driver – connects to the watchdog (WD) feature, | ||
150 | configures the watchdog and sends the heartbeats. | ||
151 | |||
152 | The MEI driver configures the Watchdog to expire by default | ||
153 | every 120sec unless set by the user using module parameters. | ||
154 | The Driver then sends heartbeats every 2sec. | ||
155 | |||
156 | If WD feature does not exist (i.e. the connection failed), | ||
157 | the MEI driver will disable the sending of heartbeats. | ||
158 | |||
159 | Module Parameters | ||
160 | ================= | ||
161 | watchdog_timeout - the user can use this module parameter | ||
162 | to change the watchdog timeout setting. | ||
163 | |||
164 | This value sets the Intel AMT watchdog timeout interval in seconds; | ||
165 | the default value is 120sec. | ||
166 | in order to disable the watchdog activites set the value to 0. | ||
167 | Normal values should be between 120 and 65535 | ||
168 | |||
169 | Supported Chipsets: | ||
170 | ================== | ||
171 | 7 Series Chipset Family | ||
172 | 6 Series Chipset Family | ||
173 | 5 Series Chipset Family | ||
174 | 4 Series Chipset Family | ||
175 | Mobile 4 Series Chipset Family | ||
176 | ICH9 | ||
177 | 82946GZ/GL | ||
178 | 82G35 Express | ||
179 | 82Q963/Q965 | ||
180 | 82P965/G965 | ||
181 | Mobile PM965/GM965 | ||
182 | Mobile GME965/GLE960 | ||
183 | 82Q35 Express | ||
184 | 82G33/G31/P35/P31 Express | ||
185 | 82Q33 Express | ||
186 | 82X38/X48 Express | ||
187 | |||
188 | --- | ||
189 | linux-mei@linux.intel.com | ||