diff options
Diffstat (limited to 'chip/ish/hbm.h')
-rw-r--r-- | chip/ish/hbm.h | 195 |
1 files changed, 0 insertions, 195 deletions
diff --git a/chip/ish/hbm.h b/chip/ish/hbm.h deleted file mode 100644 index edfb587d21..0000000000 --- a/chip/ish/hbm.h +++ /dev/null @@ -1,195 +0,0 @@ -/* Copyright 2018 The Chromium OS Authors. All rights reserved. - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#ifndef __HBM_H -#define __HBM_H - -#include <stdint.h> -#include <stddef.h> - -#include "heci_client.h" - -#define HBM_MAJOR_VERSION 1 -#ifdef HECI_ENABLE_DMA -#define HBM_MINOR_VERSION 2 -#else -#define HBM_MINOR_VERSION 0 -#endif - -#define __packed __attribute__((packed)) - -#define HECI_MSG_REPONSE_FLAG 0x80 - -enum HECI_BUS_MSG { - /* requests */ - HECI_BUS_MSG_VERSION_REQ = 1, - HECI_BUS_MSG_HOST_STOP_REQ = 2, - HECI_BUS_MSG_ME_STOP_REQ = 3, - HECI_BUS_MSG_HOST_ENUM_REQ = 4, - HECI_BUS_MSG_HOST_CLIENT_PROP_REQ = 5, - HECI_BUS_MSG_CLIENT_CONNECT_REQ = 6, - HECI_BUS_MSG_CLIENT_DISCONNECT_REQ = 7, - HECI_BUS_MSG_FLOW_CONTROL = 8, - HECI_BUS_MSG_RESET_REQ = 9, - HECI_BUS_MSG_ADD_CLIENT_REQ = 0x0A, - HECI_BUS_MSG_DMA_REQ = 0x10, - HECI_BUS_MSG_DMA_ALLOC_NOTIFY = 0x11, - HECI_BUS_MSG_DMA_XFER_REQ = 0x12, - - /* responses */ - HECI_BUS_MSG_VERSION_RESP = - (HECI_MSG_REPONSE_FLAG | HECI_BUS_MSG_VERSION_REQ), - HECI_BUS_MSG_HOST_STOP_RESP = - (HECI_MSG_REPONSE_FLAG | HECI_BUS_MSG_HOST_STOP_REQ), - HECI_BUS_MSG_HOST_ENUM_RESP = - (HECI_MSG_REPONSE_FLAG | HECI_BUS_MSG_HOST_ENUM_REQ), - HECI_BUS_MSG_HOST_CLIENT_PROP_RESP = - (HECI_MSG_REPONSE_FLAG | HECI_BUS_MSG_HOST_CLIENT_PROP_REQ), - HECI_BUS_MSG_CLIENT_CONNECT_RESP = - (HECI_MSG_REPONSE_FLAG | HECI_BUS_MSG_CLIENT_CONNECT_REQ), - HECI_BUS_MSG_CLIENT_DISCONNECT_RESP = - (HECI_MSG_REPONSE_FLAG | HECI_BUS_MSG_CLIENT_DISCONNECT_REQ), - HECI_BUS_MSG_RESET_RESP = - (HECI_MSG_REPONSE_FLAG | HECI_BUS_MSG_RESET_REQ), - HECI_BUS_MSG_ADD_CLIENT_RESP = - (HECI_MSG_REPONSE_FLAG | HECI_BUS_MSG_ADD_CLIENT_REQ), - HECI_BUS_MSG_DMA_RESP = - (HECI_MSG_REPONSE_FLAG | HECI_BUS_MSG_DMA_REQ), - HECI_BUS_MSG_DMA_ALLOC_RESP = - (HECI_MSG_REPONSE_FLAG | HECI_BUS_MSG_DMA_ALLOC_NOTIFY), - HECI_BUS_MSG_DMA_XFER_RESP = - (HECI_MSG_REPONSE_FLAG | HECI_BUS_MSG_DMA_XFER_REQ) -}; - -enum { - HECI_CONNECT_STATUS_SUCCESS = 0, - HECI_CONNECT_STATUS_CLIENT_NOT_FOUND = 1, - HECI_CONNECT_STATUS_ALREADY_EXISTS = 2, - HECI_CONNECT_STATUS_REJECTED = 3, - HECI_CONNECT_STATUS_INVALID_PARAMETER = 4, - HECI_CONNECT_STATUS_INACTIVE_CLIENT = 5, -}; - -struct hbm_version { - uint8_t minor; - uint8_t major; -} __packed; - -struct hbm_version_req { - uint8_t reserved; - struct hbm_version version; -} __packed; - -struct hbm_version_res { - uint8_t supported; - struct hbm_version version; -} __packed; - -struct hbm_enum_req { - uint8_t reserved[3]; -} __packed; - -struct hbm_enum_res { - uint8_t reserved[3]; - uint8_t valid_addresses[32]; -} __packed; - -struct hbm_client_prop_req { - uint8_t address; - uint8_t reserved[2]; -} __packed; - -#define CLIENT_DMA_ENABLE 0x80 - -struct hbm_client_properties { - struct heci_guid protocol_name; /* heci client protocol ID */ - uint8_t protocol_version; /* protocol version */ - /* max connection from host to client. currently only 1 is allowed */ - uint8_t max_number_of_connections; - uint8_t fixed_address; /* not yet supported */ - uint8_t single_recv_buf; /* not yet supported */ - uint32_t max_msg_length; /* max payload size */ - /* not yet supported. [7] enable/disable, [6:0] dma length */ - uint8_t dma_hdr_len; - uint8_t reserved4; - uint8_t reserved5; - uint8_t reserved6; -} __packed; - -struct hbm_client_prop_res { - uint8_t address; - uint8_t status; - uint8_t reserved[1]; - struct hbm_client_properties client_prop; -} __packed; - -struct hbm_client_connect_req { - uint8_t fw_addr; - uint8_t host_addr; - uint8_t reserved; -} __packed; - -struct hbm_client_connect_res { - uint8_t fw_addr; - uint8_t host_addr; - uint8_t status; -} __packed; - -struct hbm_flow_control { - uint8_t fw_addr; - uint8_t host_addr; - uint8_t reserved[5]; -} __packed; - -struct hbm_client_disconnect_req { - uint8_t fw_addr; - uint8_t host_addr; - uint8_t reserved; -} __packed; - -struct hbm_client_disconnect_res { - uint8_t fw_addr; - uint8_t host_addr; - uint8_t status; -} __packed; - -struct hbm_host_stop_req { - uint8_t reason; - uint8_t reserved[2]; -}; - -struct hbm_host_stop_res { - uint8_t reserved[3]; -}; - -/* host bus message : host -> ish */ -struct hbm_h2i { - uint8_t cmd; - union { - struct hbm_version_req ver_req; - struct hbm_enum_req enum_req; - struct hbm_client_prop_req client_prop_req; - struct hbm_client_connect_req client_connect_req; - struct hbm_flow_control flow_ctrl; - struct hbm_client_disconnect_req client_disconnect_req; - struct hbm_host_stop_req host_stop_req; - } data; -} __packed; - -/* host bus message : i2h -> host */ -struct hbm_i2h { - uint8_t cmd; - union { - struct hbm_version_res ver_res; - struct hbm_enum_res enum_res; - struct hbm_client_prop_res client_prop_res; - struct hbm_client_connect_res client_connect_res; - struct hbm_flow_control flow_ctrl; - struct hbm_client_disconnect_res client_disconnect_res; - struct hbm_host_stop_res host_stop_res; - } data; -} __packed; - -#endif /* __HBM_H */ |