cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

hbm.h (1996B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2/*
      3 * Copyright (c) 2003-2018, Intel Corporation. All rights reserved.
      4 * Intel Management Engine Interface (Intel MEI) Linux driver
      5 */
      6
      7#ifndef _MEI_HBM_H_
      8#define _MEI_HBM_H_
      9
     10struct mei_device;
     11struct mei_msg_hdr;
     12struct mei_cl;
     13struct mei_dma_data;
     14
     15/**
     16 * enum mei_hbm_state - host bus message protocol state
     17 *
     18 * @MEI_HBM_IDLE : protocol not started
     19 * @MEI_HBM_STARTING : start request message was sent
     20 * @MEI_HBM_CAP_SETUP : capabilities request message was sent
     21 * @MEI_HBM_DR_SETUP : dma ring setup request message was sent
     22 * @MEI_HBM_ENUM_CLIENTS : enumeration request was sent
     23 * @MEI_HBM_CLIENT_PROPERTIES : acquiring clients properties
     24 * @MEI_HBM_STARTED : enumeration was completed
     25 * @MEI_HBM_STOPPED : stopping exchange
     26 */
     27enum mei_hbm_state {
     28	MEI_HBM_IDLE = 0,
     29	MEI_HBM_STARTING,
     30	MEI_HBM_CAP_SETUP,
     31	MEI_HBM_DR_SETUP,
     32	MEI_HBM_ENUM_CLIENTS,
     33	MEI_HBM_CLIENT_PROPERTIES,
     34	MEI_HBM_STARTED,
     35	MEI_HBM_STOPPED,
     36};
     37
     38const char *mei_hbm_state_str(enum mei_hbm_state state);
     39
     40int mei_hbm_dispatch(struct mei_device *dev, struct mei_msg_hdr *hdr);
     41
     42void mei_hbm_idle(struct mei_device *dev);
     43void mei_hbm_reset(struct mei_device *dev);
     44int mei_hbm_start_req(struct mei_device *dev);
     45int mei_hbm_start_wait(struct mei_device *dev);
     46int mei_hbm_cl_flow_control_req(struct mei_device *dev, struct mei_cl *cl);
     47int mei_hbm_cl_disconnect_req(struct mei_device *dev, struct mei_cl *cl);
     48int mei_hbm_cl_disconnect_rsp(struct mei_device *dev, struct mei_cl *cl);
     49int mei_hbm_cl_connect_req(struct mei_device *dev, struct mei_cl *cl);
     50bool mei_hbm_version_is_supported(struct mei_device *dev);
     51int mei_hbm_pg(struct mei_device *dev, u8 pg_cmd);
     52void mei_hbm_pg_resume(struct mei_device *dev);
     53int mei_hbm_cl_notify_req(struct mei_device *dev,
     54			  struct mei_cl *cl, u8 request);
     55int mei_hbm_cl_dma_map_req(struct mei_device *dev, struct mei_cl *cl);
     56int mei_hbm_cl_dma_unmap_req(struct mei_device *dev, struct mei_cl *cl);
     57#endif /* _MEI_HBM_H_ */
     58