~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/driver-api/mei/mei.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/driver-api/mei/mei.rst (Version linux-6.12-rc7) and /Documentation/driver-api/mei/mei.rst (Version linux-4.19.323)


  1 .. SPDX-License-Identifier: GPL-2.0               
  2                                                   
  3 Introduction                                      
  4 ============                                      
  5                                                   
  6 The Intel Management Engine (Intel ME) is an i    
  7 resource (Co-processor) residing inside certai    
  8 provides support for computer/IT management an    
  9 The actual feature set depends on the Intel ch    
 10                                                   
 11 The Intel Management Engine Interface (Intel M    
 12 is the interface between the Host and Intel ME    
 13 to the host as a PCI device, actually multiple    
 14 The Intel MEI Driver is in charge of the commu    
 15 a host application and the Intel ME features.     
 16                                                   
 17 Each Intel ME feature, or Intel ME Client is a    
 18 each client has its own protocol. The protocol    
 19 header and payload up to maximal number of byt    
 20 upon connection.                                  
 21                                                   
 22 Intel MEI Driver                                  
 23 ================                                  
 24                                                   
 25 The driver exposes a character device with dev    
 26                                                   
 27 An application maintains communication with an    
 28 /dev/meiX is open. The binding to a specific f    
 29 :c:macro:`MEI_CONNECT_CLIENT_IOCTL`, which pas    
 30 The number of instances of an Intel ME feature    
 31 at the same time depends on the Intel ME featu    
 32 features allow only a single instance.            
 33                                                   
 34 The driver is transparent to data that are pas    
 35 and host application.                             
 36                                                   
 37 Because some of the Intel ME features can chan    
 38 configuration, the driver by default allows on    
 39 user to access it.                                
 40                                                   
 41 The session is terminated calling :c:expr:`clo    
 42                                                   
 43 A code snippet for an application communicatin    
 44                                                   
 45 In order to support virtualization or sandboxi    
 46 can use :c:macro:`MEI_CONNECT_CLIENT_IOCTL_VTA    
 47 virtual channels with an Intel ME feature. Not    
 48 virtual channels such client with answer EOPNO    
 49                                                   
 50 .. code-block:: C                                 
 51                                                   
 52         struct mei_connect_client_data data;      
 53         fd = open(MEI_DEVICE);                    
 54                                                   
 55         data.d.in_client_uuid = AMTHI_GUID;       
 56                                                   
 57         ioctl(fd, IOCTL_MEI_CONNECT_CLIENT, &d    
 58                                                   
 59         printf("Ver=%d, MaxLen=%ld\n",            
 60                data.d.in_client_uuid.protocol_    
 61                data.d.in_client_uuid.max_msg_l    
 62                                                   
 63         [...]                                     
 64                                                   
 65         write(fd, amthi_req_data, amthi_req_da    
 66                                                   
 67         [...]                                     
 68                                                   
 69         read(fd, &amthi_res_data, amthi_res_da    
 70                                                   
 71         [...]                                     
 72         close(fd);                                
 73                                                   
 74                                                   
 75 User space API                                    
 76                                                   
 77 IOCTLs:                                           
 78 =======                                           
 79                                                   
 80 The Intel MEI Driver supports the following IO    
 81                                                   
 82 IOCTL_MEI_CONNECT_CLIENT                          
 83 -------------------------                         
 84 Connect to firmware Feature/Client.               
 85                                                   
 86 .. code-block:: none                              
 87                                                   
 88         Usage:                                    
 89                                                   
 90         struct mei_connect_client_data client_    
 91                                                   
 92         ioctl(fd, IOCTL_MEI_CONNECT_CLIENT, &c    
 93                                                   
 94         Inputs:                                   
 95                                                   
 96         struct mei_connect_client_data - conta    
 97         Input field:                              
 98                                                   
 99                 in_client_uuid -        GUID o    
100                                         to con    
101          Outputs:                                 
102                 out_client_properties - Client    
103                                                   
104          Error returns:                           
105                                                   
106                 ENOTTY  No such client (i.e. w    
107                 EINVAL  Wrong IOCTL Number        
108                 ENODEV  Device or Connection i    
109                 ENOMEM  Unable to allocate mem    
110                 EFAULT  Fatal Error (e.g. Unab    
111                 EBUSY   Connection Already Ope    
112                                                   
113 :Note:                                            
114         max_msg_length (MTU) in client propert    
115         data that can be sent or received. (e.    
116         requests up to bytes 2k and received r    
117                                                   
118 IOCTL_MEI_CONNECT_CLIENT_VTAG:                    
119 ------------------------------                    
120                                                   
121 .. code-block:: none                              
122                                                   
123         Usage:                                    
124                                                   
125         struct mei_connect_client_data_vtag cl    
126                                                   
127         ioctl(fd, IOCTL_MEI_CONNECT_CLIENT_VTA    
128                                                   
129         Inputs:                                   
130                                                   
131         struct mei_connect_client_data_vtag -     
132         Input field:                              
133                                                   
134                 in_client_uuid -  GUID of the     
135                                   to connect t    
136                 vtag - virtual tag [1, 255]       
137                                                   
138          Outputs:                                 
139                 out_client_properties - Client    
140                                                   
141          Error returns:                           
142                                                   
143                 ENOTTY No such client (i.e. wr    
144                 EINVAL Wrong IOCTL Number or t    
145                 ENODEV Device or Connection is    
146                 ENOMEM Unable to allocate memo    
147                 EFAULT Fatal Error (e.g. Unabl    
148                 EBUSY  Connection Already Open    
149                 EOPNOTSUPP Vtag is not support    
150                                                   
151 IOCTL_MEI_NOTIFY_SET                              
152 ---------------------                             
153 Enable or disable event notifications.            
154                                                   
155                                                   
156 .. code-block:: none                              
157                                                   
158         Usage:                                    
159                                                   
160                 uint32_t enable;                  
161                                                   
162                 ioctl(fd, IOCTL_MEI_NOTIFY_SET    
163                                                   
164                                                   
165                 uint32_t enable = 1;              
166                 or                                
167                 uint32_t enable[disable] = 0;     
168                                                   
169         Error returns:                            
170                                                   
171                                                   
172                 EINVAL  Wrong IOCTL Number        
173                 ENODEV  Device  is not initial    
174                 ENOMEM  Unable to allocate mem    
175                 EFAULT  Fatal Error (e.g. Unab    
176                 EOPNOTSUPP if the device doesn    
177                                                   
178 :Note:                                            
179         The client must be connected in order     
180                                                   
181                                                   
182 IOCTL_MEI_NOTIFY_GET                              
183 --------------------                              
184 Retrieve event                                    
185                                                   
186 .. code-block:: none                              
187                                                   
188         Usage:                                    
189                 uint32_t event;                   
190                 ioctl(fd, IOCTL_MEI_NOTIFY_GET    
191                                                   
192         Outputs:                                  
193                 1 - if an event is pending        
194                 0 - if there is no even pendin    
195                                                   
196         Error returns:                            
197                 EINVAL  Wrong IOCTL Number        
198                 ENODEV  Device is not initiali    
199                 ENOMEM  Unable to allocate mem    
200                 EFAULT  Fatal Error (e.g. Unab    
201                 EOPNOTSUPP if the device doesn    
202                                                   
203 :Note:                                            
204         The client must be connected and event    
205         in order to receive an event              
206                                                   
207                                                   
208                                                   
209 Supported Chipsets                                
210 ==================                                
211 82X38/X48 Express and newer                       
212                                                   
213 linux-mei@linux.intel.com                         
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php