-
由 Oren Weil 提交于
Implementation of the communication between host and ME. connect/disconnect to/from a client, send MEI message, read MEI message, flow control handling. Each MEI message has mei_msg_hdr followed by a payload. Driver is oblivious the payload. ME Address/ID - This is the logical address of the ME feature/client of that message. Host Address/ID - This is the logical address of the Host client of that message Length - This is the Length of message payload in bytes Reserved - reserved for future use. Message Complete - This bit is used to indicative that this is the last message of multi message MEI transfer of a client message that is larger then the MEI circular buffer. Payload - Message payload (data) up to 512bytes The HW data registers are consist two circular buffers, one for data from ME and other data from Host application. Each buffer has two pointers, read_ptr (H_CBRP) and write_ptr (H_CBWP). The buffers size is defined by depth value that exists in the status registers (H_CBD and ME_CBD_HRA). Every read from ME circular buffer cause read_ptr++ Every write to the Host circular buffer write_ptr++ Flow control MEI message that ME and MEI Driver use to notify each other that a ME feature/client or Host client buffer is ready to receive data. Signed-off-by: NTomas Winkler <tomas.winkler@intel.com> Signed-off-by: NItzhak Tzeel-Krupp <itzhak.tzeel-krupp@intel.com> Signed-off-by: NOren Weil <oren.jer.weil@intel.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
3ce72726