-/*
- * Copyright (c) 2016 QLogic Corporation.
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright (c) 2016 - 2018 Cavium Inc.
* All rights reserved.
- * www.qlogic.com
- *
- * See LICENSE.qede_pmd for copyright and licensing details.
+ * www.cavium.com
*/
#ifndef __ECORE_VF_PF_IF_H__
* this, and use the legacy CID scheme.
*/
#define VFPF_ACQUIRE_CAP_QUEUE_QIDS (1 << 2)
+
+ /* The VF is using the physical bar. While this is mostly internal
+ * to the VF, might affect the number of CIDs supported assuming
+ * QUEUE_QIDS is set.
+ */
+#define VFPF_ACQUIRE_CAP_PHYSICAL_BAR (1 << 3)
u64 capabilities;
u8 fw_major;
u8 fw_minor;
u16 chip_rev;
u8 dev_type;
- u8 padding;
+ /* Doorbell bar size configured in HW: log(size) or 0 */
+ u8 bar_size;
struct pfvf_stats_info stats_info;
u8 padding[3];
};
+/* Soft FLR req */
+struct vfpf_soft_flr_tlv {
+ struct vfpf_first_tlv first_tlv;
+ u32 reserved1;
+ u32 reserved2;
+};
+
/* Setup Queue */
struct vfpf_start_rxq_tlv {
struct vfpf_first_tlv first_tlv;
struct channel_tlv tl;
u8 padding[4];
- u64 bins[8];
+ /* This was a mistake; There are only 256 approx bins,
+ * and in HSI they're divided into 32-bit values.
+ * As old VFs used to set-bit to the values on its side,
+ * the upper half of the array is never expected to contain any data.
+ */
+ u64 bins[4];
+ u64 obsolete_bins[4];
};
struct vfpf_vport_update_accept_param_tlv {
#define VFPF_TPA_PKT_SPLIT_FLAG (1 << 2)
#define VFPF_TPA_HDR_DATA_SPLIT_FLAG (1 << 3)
#define VFPF_TPA_GRO_CONSIST_FLAG (1 << 4)
+ #define VFPF_TPA_TUNN_IPV4_EN_FLAG (1 << 5)
+ #define VFPF_TPA_TUNN_IPV6_EN_FLAG (1 << 6)
u8 update_sge_tpa_flags;
#define VFPF_UPDATE_SGE_DEPRECATED_FLAG (1 << 0)
u8 padding[2];
};
+struct vfpf_read_coal_req_tlv {
+ struct vfpf_first_tlv first_tlv;
+ u16 qid;
+ u8 is_rx;
+ u8 padding[5];
+};
+
+struct pfvf_read_coal_resp_tlv {
+ struct pfvf_tlv hdr;
+ u16 coal;
+ u8 padding[6];
+};
+
+struct vfpf_bulletin_update_mac_tlv {
+ struct vfpf_first_tlv first_tlv;
+ u8 mac[ETH_ALEN];
+ u8 padding[2];
+};
+
+struct vfpf_update_mtu_tlv {
+ struct vfpf_first_tlv first_tlv;
+ u16 mtu;
+ u8 padding[6];
+};
+
union vfpf_tlvs {
struct vfpf_first_tlv first_tlv;
struct vfpf_acquire_tlv acquire;
struct vfpf_ucast_filter_tlv ucast_filter;
struct vfpf_update_tunn_param_tlv tunn_param_update;
struct vfpf_update_coalesce update_coalesce;
+ struct vfpf_read_coal_req_tlv read_coal_req;
+ struct vfpf_bulletin_update_mac_tlv bulletin_update_mac;
+ struct vfpf_update_mtu_tlv update_mtu;
+ struct vfpf_soft_flr_tlv soft_flr;
struct tlv_buffer_size tlv_buf_size;
};
struct tlv_buffer_size tlv_buf_size;
struct pfvf_start_queue_resp_tlv queue_start;
struct pfvf_update_tunn_param_tlv tunn_param_resp;
+ struct pfvf_read_coal_resp_tlv read_coal_resp;
};
/* This is a structure which is allocated in the VF, which the PF may update
CHANNEL_TLV_UPDATE_TUNN_PARAM,
CHANNEL_TLV_COALESCE_UPDATE,
CHANNEL_TLV_QID,
+ CHANNEL_TLV_COALESCE_READ,
+ CHANNEL_TLV_BULLETIN_UPDATE_MAC,
+ CHANNEL_TLV_UPDATE_MTU,
+ CHANNEL_TLV_RDMA_ACQUIRE,
+ CHANNEL_TLV_RDMA_START,
+ CHANNEL_TLV_RDMA_STOP,
+ CHANNEL_TLV_RDMA_ADD_USER,
+ CHANNEL_TLV_RDMA_REMOVE_USER,
+ CHANNEL_TLV_RDMA_QUERY_COUNTERS,
+ CHANNEL_TLV_RDMA_ALLOC_TID,
+ CHANNEL_TLV_RDMA_REGISTER_TID,
+ CHANNEL_TLV_RDMA_DEREGISTER_TID,
+ CHANNEL_TLV_RDMA_FREE_TID,
+ CHANNEL_TLV_RDMA_CREATE_CQ,
+ CHANNEL_TLV_RDMA_RESIZE_CQ,
+ CHANNEL_TLV_RDMA_DESTROY_CQ,
+ CHANNEL_TLV_RDMA_CREATE_QP,
+ CHANNEL_TLV_RDMA_MODIFY_QP,
+ CHANNEL_TLV_RDMA_QUERY_QP,
+ CHANNEL_TLV_RDMA_DESTROY_QP,
+ CHANNEL_TLV_RDMA_QUERY_PORT,
+ CHANNEL_TLV_RDMA_QUERY_DEVICE,
+ CHANNEL_TLV_RDMA_IWARP_CONNECT,
+ CHANNEL_TLV_RDMA_IWARP_ACCEPT,
+ CHANNEL_TLV_RDMA_IWARP_CREATE_LISTEN,
+ CHANNEL_TLV_RDMA_IWARP_DESTROY_LISTEN,
+ CHANNEL_TLV_RDMA_IWARP_PAUSE_LISTEN,
+ CHANNEL_TLV_RDMA_IWARP_REJECT,
+ CHANNEL_TLV_RDMA_IWARP_SEND_RTR,
+ CHANNEL_TLV_ESTABLISH_LL2_CONN,
+ CHANNEL_TLV_TERMINATE_LL2_CONN,
+ CHANNEL_TLV_ASYNC_EVENT,
+ CHANNEL_TLV_RDMA_CREATE_SRQ,
+ CHANNEL_TLV_RDMA_MODIFY_SRQ,
+ CHANNEL_TLV_RDMA_DESTROY_SRQ,
+ CHANNEL_TLV_SOFT_FLR,
CHANNEL_TLV_MAX,
/* Required for iterating over vport-update tlvs.
/*!!!!! Make sure to update STRINGS structure accordingly !!!!!*/
};
-extern const char *ecore_channel_tlvs_string[];
+extern const char *qede_ecore_channel_tlvs_string[];
#endif /* __ECORE_VF_PF_IF_H__ */