mirror of
https://github.com/torvalds/linux.git
synced 2026-09-24 06:24:02 +02:00
RDMA/efa: Update device interface
Align device interface definitions. Reviewed-by: Daniel Kinsbursky <dkinsb@amazon.com> Reviewed-by: Yonatan Nachum <ynachum@amazon.com> Signed-off-by: Michael Margolin <mrgolin@amazon.com> Link: https://patch.msgid.link/20260722083603.30334-6-mrgolin@amazon.com Signed-off-by: Leon Romanovsky <leon@kernel.org>
This commit is contained in:
parent
0774c6dd20
commit
6eb179ba09
|
|
@ -28,7 +28,13 @@ enum efa_admin_aq_opcode {
|
|||
EFA_ADMIN_CREATE_EQ = 18,
|
||||
EFA_ADMIN_DESTROY_EQ = 19,
|
||||
EFA_ADMIN_ALLOC_MR = 20,
|
||||
EFA_ADMIN_MAX_OPCODE = 20,
|
||||
EFA_ADMIN_SERVICE = 21,
|
||||
EFA_ADMIN_CREATE_EVENT_COUNTER = 25,
|
||||
EFA_ADMIN_DESTROY_EVENT_COUNTER = 26,
|
||||
EFA_ADMIN_ATTACH_EVENT_COUNTER = 27,
|
||||
EFA_ADMIN_MODIFY_EVENT_COUNTER = 28,
|
||||
EFA_ADMIN_DETACH_EVENT_COUNTER = 29,
|
||||
EFA_ADMIN_MAX_OPCODE = 29,
|
||||
};
|
||||
|
||||
enum efa_admin_aq_feature_id {
|
||||
|
|
@ -722,7 +728,9 @@ struct efa_admin_feature_device_attr_desc {
|
|||
* on TX queues
|
||||
* 4 : unsolicited_write_recv - If set, unsolicited
|
||||
* write with imm. receive is supported
|
||||
* 31:5 : reserved - MBZ
|
||||
* 5 : event_counters - If set, event counters are
|
||||
* supported
|
||||
* 31:6 : reserved - MBZ
|
||||
*/
|
||||
u32 device_caps;
|
||||
|
||||
|
|
@ -811,6 +819,34 @@ struct efa_admin_feature_queue_attr_desc_1 {
|
|||
struct efa_admin_feature_queue_attr_desc_2 {
|
||||
/* Maximum size of data that can be sent inline in a Send WQE */
|
||||
u16 inline_buf_size_ex;
|
||||
|
||||
/* MBZ */
|
||||
u8 reserved[6];
|
||||
|
||||
/*
|
||||
* Supported counter QP events
|
||||
* 0 : send_comp
|
||||
* 1 : send_comp_err
|
||||
* 2 : recv_comp
|
||||
* 3 : recv_comp_err
|
||||
* 4 : read_comp
|
||||
* 5 : read_comp_err
|
||||
* 6 : write_comp
|
||||
* 7 : write_comp_err
|
||||
* 8 : remote_read_comp
|
||||
* 9 : remote_write_comp
|
||||
* 31:10 : reserved - MBZ
|
||||
*/
|
||||
u32 supported_event_counter_qp_events;
|
||||
|
||||
/* Maximum number of counters */
|
||||
u32 max_event_counters;
|
||||
|
||||
/*
|
||||
* Maximum counter value, counter wraps around to 0 after reaching
|
||||
* this value
|
||||
*/
|
||||
u64 event_counter_max_val;
|
||||
};
|
||||
|
||||
struct efa_admin_event_queue_attr_desc {
|
||||
|
|
@ -1089,6 +1125,127 @@ struct efa_admin_host_info {
|
|||
u32 flags;
|
||||
};
|
||||
|
||||
struct efa_admin_service_cmd {
|
||||
struct efa_admin_aq_common_desc aq_common_descriptor;
|
||||
|
||||
u8 buffer[60];
|
||||
};
|
||||
|
||||
struct efa_admin_service_resp {
|
||||
struct efa_admin_acq_common_desc acq_common_desc;
|
||||
|
||||
u8 buffer[56];
|
||||
};
|
||||
|
||||
/* Create Counter command */
|
||||
struct efa_admin_create_event_counter_cmd {
|
||||
struct efa_admin_aq_common_desc aq_common_descriptor;
|
||||
|
||||
/* UAR number */
|
||||
u16 uar;
|
||||
|
||||
/* MBZ */
|
||||
u16 reserved;
|
||||
|
||||
/* Counter physical address */
|
||||
u64 paddr;
|
||||
};
|
||||
|
||||
struct efa_admin_create_event_counter_resp {
|
||||
struct efa_admin_acq_common_desc acq_common_desc;
|
||||
|
||||
/* Counter handle */
|
||||
u32 cntr_handle;
|
||||
|
||||
/* MBZ */
|
||||
u32 reserved;
|
||||
};
|
||||
|
||||
struct efa_admin_destroy_event_counter_cmd {
|
||||
struct efa_admin_aq_common_desc aq_common_descriptor;
|
||||
|
||||
/* Counter handle */
|
||||
u32 cntr_handle;
|
||||
};
|
||||
|
||||
struct efa_admin_destroy_event_counter_resp {
|
||||
struct efa_admin_acq_common_desc acq_common_desc;
|
||||
};
|
||||
|
||||
enum efa_admin_event_counter_attach_type {
|
||||
EFA_ADMIN_EVENT_COUNTER_ATTACH_QP_EVENTS = 0,
|
||||
};
|
||||
|
||||
struct efa_admin_event_counter_attach_qp_events {
|
||||
/* QP handle */
|
||||
u32 qp_handle;
|
||||
|
||||
/*
|
||||
* Bitmask of counter QP events
|
||||
* 0 : send_comp
|
||||
* 1 : send_comp_err
|
||||
* 2 : recv_comp
|
||||
* 3 : recv_comp_err
|
||||
* 4 : read_comp
|
||||
* 5 : read_comp_err
|
||||
* 6 : write_comp
|
||||
* 7 : write_comp_err
|
||||
* 8 : remote_read_comp
|
||||
* 9 : remote_write_comp
|
||||
* 31:10 : reserved - MBZ
|
||||
*/
|
||||
u32 events;
|
||||
};
|
||||
|
||||
struct efa_admin_attach_detach_event_counter_cmd {
|
||||
struct efa_admin_aq_common_desc aq_common_descriptor;
|
||||
|
||||
/* Counter handle */
|
||||
u32 cntr_handle;
|
||||
|
||||
/* efa_admin_event_counter_attach_type */
|
||||
u8 attach_type;
|
||||
|
||||
/* MBZ */
|
||||
u8 reserved[3];
|
||||
|
||||
union {
|
||||
struct efa_admin_event_counter_attach_qp_events qp_events;
|
||||
} u;
|
||||
};
|
||||
|
||||
struct efa_admin_attach_detach_event_counter_resp {
|
||||
struct efa_admin_acq_common_desc acq_common_desc;
|
||||
};
|
||||
|
||||
/* Counter modify operations */
|
||||
enum efa_admin_event_counter_modify_ops {
|
||||
/* Set counter value */
|
||||
EFA_ADMIN_EVENT_COUNTER_MODIFY_SET = 0,
|
||||
/* Add to counter value */
|
||||
EFA_ADMIN_EVENT_COUNTER_MODIFY_ADD = 1,
|
||||
};
|
||||
|
||||
struct efa_admin_modify_event_counter_cmd {
|
||||
struct efa_admin_aq_common_desc aq_common_descriptor;
|
||||
|
||||
/* Counter handle */
|
||||
u32 cntr_handle;
|
||||
|
||||
/* Counter operation type (efa_admin_event_counter_modify_ops) */
|
||||
u8 operation;
|
||||
|
||||
/* MBZ */
|
||||
u8 reserved[7];
|
||||
|
||||
/* Value for SET or ADD */
|
||||
u64 value;
|
||||
};
|
||||
|
||||
struct efa_admin_modify_event_counter_resp {
|
||||
struct efa_admin_acq_common_desc acq_common_desc;
|
||||
};
|
||||
|
||||
/* create_qp_cmd */
|
||||
#define EFA_ADMIN_CREATE_QP_CMD_SQ_VIRT_MASK BIT(0)
|
||||
#define EFA_ADMIN_CREATE_QP_CMD_RQ_VIRT_MASK BIT(1)
|
||||
|
|
@ -1129,6 +1286,19 @@ struct efa_admin_host_info {
|
|||
#define EFA_ADMIN_FEATURE_DEVICE_ATTR_DESC_DATA_POLLING_128_MASK BIT(2)
|
||||
#define EFA_ADMIN_FEATURE_DEVICE_ATTR_DESC_RDMA_WRITE_MASK BIT(3)
|
||||
#define EFA_ADMIN_FEATURE_DEVICE_ATTR_DESC_UNSOLICITED_WRITE_RECV_MASK BIT(4)
|
||||
#define EFA_ADMIN_FEATURE_DEVICE_ATTR_DESC_EVENT_COUNTERS_MASK BIT(5)
|
||||
|
||||
/* feature_queue_attr_desc_2 */
|
||||
#define EFA_ADMIN_FEATURE_QUEUE_ATTR_DESC_2_SEND_COMP_MASK BIT(0)
|
||||
#define EFA_ADMIN_FEATURE_QUEUE_ATTR_DESC_2_SEND_COMP_ERR_MASK BIT(1)
|
||||
#define EFA_ADMIN_FEATURE_QUEUE_ATTR_DESC_2_RECV_COMP_MASK BIT(2)
|
||||
#define EFA_ADMIN_FEATURE_QUEUE_ATTR_DESC_2_RECV_COMP_ERR_MASK BIT(3)
|
||||
#define EFA_ADMIN_FEATURE_QUEUE_ATTR_DESC_2_READ_COMP_MASK BIT(4)
|
||||
#define EFA_ADMIN_FEATURE_QUEUE_ATTR_DESC_2_READ_COMP_ERR_MASK BIT(5)
|
||||
#define EFA_ADMIN_FEATURE_QUEUE_ATTR_DESC_2_WRITE_COMP_MASK BIT(6)
|
||||
#define EFA_ADMIN_FEATURE_QUEUE_ATTR_DESC_2_WRITE_COMP_ERR_MASK BIT(7)
|
||||
#define EFA_ADMIN_FEATURE_QUEUE_ATTR_DESC_2_REMOTE_READ_COMP_MASK BIT(8)
|
||||
#define EFA_ADMIN_FEATURE_QUEUE_ATTR_DESC_2_REMOTE_WRITE_COMP_MASK BIT(9)
|
||||
|
||||
/* create_eq_cmd */
|
||||
#define EFA_ADMIN_CREATE_EQ_CMD_ENTRY_SIZE_WORDS_MASK GENMASK(4, 0)
|
||||
|
|
@ -1147,4 +1317,16 @@ struct efa_admin_host_info {
|
|||
#define EFA_ADMIN_HOST_INFO_INTREE_MASK BIT(0)
|
||||
#define EFA_ADMIN_HOST_INFO_GDR_MASK BIT(1)
|
||||
|
||||
/* counter_attach_qp_events */
|
||||
#define EFA_ADMIN_EVENT_COUNTER_ATTACH_QP_EVENTS_SEND_COMP_MASK BIT(0)
|
||||
#define EFA_ADMIN_EVENT_COUNTER_ATTACH_QP_EVENTS_SEND_COMP_ERR_MASK BIT(1)
|
||||
#define EFA_ADMIN_EVENT_COUNTER_ATTACH_QP_EVENTS_RECV_COMP_MASK BIT(2)
|
||||
#define EFA_ADMIN_EVENT_COUNTER_ATTACH_QP_EVENTS_RECV_COMP_ERR_MASK BIT(3)
|
||||
#define EFA_ADMIN_EVENT_COUNTER_ATTACH_QP_EVENTS_READ_COMP_MASK BIT(4)
|
||||
#define EFA_ADMIN_EVENT_COUNTER_ATTACH_QP_EVENTS_READ_COMP_ERR_MASK BIT(5)
|
||||
#define EFA_ADMIN_EVENT_COUNTER_ATTACH_QP_EVENTS_WRITE_COMP_MASK BIT(6)
|
||||
#define EFA_ADMIN_EVENT_COUNTER_ATTACH_QP_EVENTS_WRITE_COMP_ERR_MASK BIT(7)
|
||||
#define EFA_ADMIN_EVENT_COUNTER_ATTACH_QP_EVENTS_REMOTE_READ_COMP_MASK BIT(8)
|
||||
#define EFA_ADMIN_EVENT_COUNTER_ATTACH_QP_EVENTS_REMOTE_WRITE_COMP_MASK BIT(9)
|
||||
|
||||
#endif /* _EFA_ADMIN_CMDS_H_ */
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause */
|
||||
/*
|
||||
* Copyright 2018-2024 Amazon.com, Inc. or its affiliates. All rights reserved.
|
||||
* Copyright 2018-2026 Amazon.com, Inc. or its affiliates. All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef _EFA_IO_H_
|
||||
|
|
@ -65,6 +65,8 @@ enum efa_io_comp_status {
|
|||
EFA_IO_COMP_STATUS_REMOTE_ERROR_UNKNOWN_PEER = 14,
|
||||
/* Unreachable remote - never received a response */
|
||||
EFA_IO_COMP_STATUS_LOCAL_ERROR_UNREACH_REMOTE = 15,
|
||||
/* Remote feature mismatch */
|
||||
EFA_IO_COMP_STATUS_REMOTE_ERROR_FEATURE_MISMATCH = 18,
|
||||
};
|
||||
|
||||
enum efa_io_frwr_pbl_mode {
|
||||
|
|
@ -72,6 +74,11 @@ enum efa_io_frwr_pbl_mode {
|
|||
EFA_IO_FRWR_DIRECT_PBL = 1,
|
||||
};
|
||||
|
||||
enum efa_io_processing_hint {
|
||||
/* Optimize for throughput */
|
||||
EFA_IO_PROCESSING_HINT_BURST_PPS_SENSITIVE = 1 << 0,
|
||||
};
|
||||
|
||||
struct efa_io_tx_meta_desc {
|
||||
/* Verbs-generated Request ID */
|
||||
u16 req_id;
|
||||
|
|
@ -121,7 +128,15 @@ struct efa_io_tx_meta_desc {
|
|||
|
||||
u16 ah;
|
||||
|
||||
u16 reserved;
|
||||
/*
|
||||
* control flags
|
||||
* 1:0 : processing_hints - Bitmask of enum
|
||||
* efa_io_processing_hint
|
||||
* 7:2 : reserved - MBZ
|
||||
*/
|
||||
u8 ctrl3;
|
||||
|
||||
u8 reserved;
|
||||
|
||||
/* Queue key */
|
||||
u32 qkey;
|
||||
|
|
@ -365,6 +380,7 @@ struct efa_io_rx_cdesc_ex {
|
|||
#define EFA_IO_TX_META_DESC_FIRST_MASK BIT(2)
|
||||
#define EFA_IO_TX_META_DESC_LAST_MASK BIT(3)
|
||||
#define EFA_IO_TX_META_DESC_COMP_REQ_MASK BIT(4)
|
||||
#define EFA_IO_TX_META_DESC_PROCESSING_HINTS_MASK GENMASK(1, 0)
|
||||
|
||||
/* tx_buf_desc */
|
||||
#define EFA_IO_TX_BUF_DESC_LKEY_MASK GENMASK(23, 0)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user