mei.txt 6.8 KB

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