Skip to content

Commit 7a9b6b8

Browse files
Yuval Mintzdavem330
authored andcommitted
qed: Add common HSI for new protocols
This adds the qed portion of the RoCE & iSCSI firmware HSI, as well as adding several new common HSI files which would be required by both qed and qed* protocols. Signed-off-by: Yuval Mintz <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent a91eb52 commit 7a9b6b8

File tree

8 files changed

+5040
-1
lines changed

8 files changed

+5040
-1
lines changed

drivers/net/ethernet/qlogic/qed/qed_hsi.h

Lines changed: 3008 additions & 0 deletions
Large diffs are not rendered by default.

drivers/net/ethernet/qlogic/qed/qed_sp.h

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,32 @@ union ramrod_data {
6363
struct vport_update_ramrod_data vport_update;
6464
struct vport_filter_update_ramrod_data vport_filter_update;
6565

66+
struct rdma_init_func_ramrod_data rdma_init_func;
67+
struct rdma_close_func_ramrod_data rdma_close_func;
68+
struct rdma_register_tid_ramrod_data rdma_register_tid;
69+
struct rdma_deregister_tid_ramrod_data rdma_deregister_tid;
70+
struct roce_create_qp_resp_ramrod_data roce_create_qp_resp;
71+
struct roce_create_qp_req_ramrod_data roce_create_qp_req;
72+
struct roce_modify_qp_resp_ramrod_data roce_modify_qp_resp;
73+
struct roce_modify_qp_req_ramrod_data roce_modify_qp_req;
74+
struct roce_query_qp_resp_ramrod_data roce_query_qp_resp;
75+
struct roce_query_qp_req_ramrod_data roce_query_qp_req;
76+
struct roce_destroy_qp_resp_ramrod_data roce_destroy_qp_resp;
77+
struct roce_destroy_qp_req_ramrod_data roce_destroy_qp_req;
78+
struct rdma_create_cq_ramrod_data rdma_create_cq;
79+
struct rdma_resize_cq_ramrod_data rdma_resize_cq;
80+
struct rdma_destroy_cq_ramrod_data rdma_destroy_cq;
81+
struct rdma_srq_create_ramrod_data rdma_create_srq;
82+
struct rdma_srq_destroy_ramrod_data rdma_destroy_srq;
83+
struct rdma_srq_modify_ramrod_data rdma_modify_srq;
84+
85+
struct iscsi_slow_path_hdr iscsi_empty;
86+
struct iscsi_init_ramrod_params iscsi_init;
87+
struct iscsi_spe_func_dstry iscsi_destroy;
88+
struct iscsi_spe_conn_offload iscsi_conn_offload;
89+
struct iscsi_conn_update_ramrod_params iscsi_conn_update;
90+
struct iscsi_spe_conn_termination iscsi_conn_terminate;
91+
6692
struct vf_start_ramrod_data vf_start;
6793
struct vf_stop_ramrod_data vf_stop;
6894
};

include/linux/qed/common_hsi.h

Lines changed: 189 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
#define CORE_SPQE_PAGE_SIZE_BYTES 4096
1313

1414
#define X_FINAL_CLEANUP_AGG_INT 1
15+
#define NUM_OF_GLOBAL_QUEUES 128
1516

1617
/* Queue Zone sizes in bytes */
1718
#define TSTORM_QZONE_SIZE 8
@@ -694,7 +695,10 @@ struct parsing_and_err_flags {
694695
#define PARSING_AND_ERR_FLAGS_TUNNELL4CHKSMERROR_SHIFT 15
695696
};
696697

697-
/* Concrete Function ID. */
698+
struct pb_context {
699+
__le32 crc[4];
700+
};
701+
698702
struct pxp_concrete_fid {
699703
__le16 fid;
700704
#define PXP_CONCRETE_FID_PFID_MASK 0xF
@@ -761,6 +765,72 @@ struct pxp_ptt_entry {
761765
};
762766

763767
/* RSS hash type */
768+
struct rdif_task_context {
769+
__le32 initial_ref_tag;
770+
__le16 app_tag_value;
771+
__le16 app_tag_mask;
772+
u8 flags0;
773+
#define RDIF_TASK_CONTEXT_IGNOREAPPTAG_MASK 0x1
774+
#define RDIF_TASK_CONTEXT_IGNOREAPPTAG_SHIFT 0
775+
#define RDIF_TASK_CONTEXT_INITIALREFTAGVALID_MASK 0x1
776+
#define RDIF_TASK_CONTEXT_INITIALREFTAGVALID_SHIFT 1
777+
#define RDIF_TASK_CONTEXT_HOSTGUARDTYPE_MASK 0x1
778+
#define RDIF_TASK_CONTEXT_HOSTGUARDTYPE_SHIFT 2
779+
#define RDIF_TASK_CONTEXT_SETERRORWITHEOP_MASK 0x1
780+
#define RDIF_TASK_CONTEXT_SETERRORWITHEOP_SHIFT 3
781+
#define RDIF_TASK_CONTEXT_PROTECTIONTYPE_MASK 0x3
782+
#define RDIF_TASK_CONTEXT_PROTECTIONTYPE_SHIFT 4
783+
#define RDIF_TASK_CONTEXT_CRC_SEED_MASK 0x1
784+
#define RDIF_TASK_CONTEXT_CRC_SEED_SHIFT 6
785+
#define RDIF_TASK_CONTEXT_KEEPREFTAGCONST_MASK 0x1
786+
#define RDIF_TASK_CONTEXT_KEEPREFTAGCONST_SHIFT 7
787+
u8 partial_dif_data[7];
788+
__le16 partial_crc_value;
789+
__le16 partial_checksum_value;
790+
__le32 offset_in_io;
791+
__le16 flags1;
792+
#define RDIF_TASK_CONTEXT_VALIDATEGUARD_MASK 0x1
793+
#define RDIF_TASK_CONTEXT_VALIDATEGUARD_SHIFT 0
794+
#define RDIF_TASK_CONTEXT_VALIDATEAPPTAG_MASK 0x1
795+
#define RDIF_TASK_CONTEXT_VALIDATEAPPTAG_SHIFT 1
796+
#define RDIF_TASK_CONTEXT_VALIDATEREFTAG_MASK 0x1
797+
#define RDIF_TASK_CONTEXT_VALIDATEREFTAG_SHIFT 2
798+
#define RDIF_TASK_CONTEXT_FORWARDGUARD_MASK 0x1
799+
#define RDIF_TASK_CONTEXT_FORWARDGUARD_SHIFT 3
800+
#define RDIF_TASK_CONTEXT_FORWARDAPPTAG_MASK 0x1
801+
#define RDIF_TASK_CONTEXT_FORWARDAPPTAG_SHIFT 4
802+
#define RDIF_TASK_CONTEXT_FORWARDREFTAG_MASK 0x1
803+
#define RDIF_TASK_CONTEXT_FORWARDREFTAG_SHIFT 5
804+
#define RDIF_TASK_CONTEXT_INTERVALSIZE_MASK 0x7
805+
#define RDIF_TASK_CONTEXT_INTERVALSIZE_SHIFT 6
806+
#define RDIF_TASK_CONTEXT_HOSTINTERFACE_MASK 0x3
807+
#define RDIF_TASK_CONTEXT_HOSTINTERFACE_SHIFT 9
808+
#define RDIF_TASK_CONTEXT_DIFBEFOREDATA_MASK 0x1
809+
#define RDIF_TASK_CONTEXT_DIFBEFOREDATA_SHIFT 11
810+
#define RDIF_TASK_CONTEXT_RESERVED0_MASK 0x1
811+
#define RDIF_TASK_CONTEXT_RESERVED0_SHIFT 12
812+
#define RDIF_TASK_CONTEXT_NETWORKINTERFACE_MASK 0x1
813+
#define RDIF_TASK_CONTEXT_NETWORKINTERFACE_SHIFT 13
814+
#define RDIF_TASK_CONTEXT_FORWARDAPPTAGWITHMASK_MASK 0x1
815+
#define RDIF_TASK_CONTEXT_FORWARDAPPTAGWITHMASK_SHIFT 14
816+
#define RDIF_TASK_CONTEXT_FORWARDREFTAGWITHMASK_MASK 0x1
817+
#define RDIF_TASK_CONTEXT_FORWARDREFTAGWITHMASK_SHIFT 15
818+
__le16 state;
819+
#define RDIF_TASK_CONTEXT_RECEIVEDDIFBYTESLEFT_MASK 0xF
820+
#define RDIF_TASK_CONTEXT_RECEIVEDDIFBYTESLEFT_SHIFT 0
821+
#define RDIF_TASK_CONTEXT_TRANSMITEDDIFBYTESLEFT_MASK 0xF
822+
#define RDIF_TASK_CONTEXT_TRANSMITEDDIFBYTESLEFT_SHIFT 4
823+
#define RDIF_TASK_CONTEXT_ERRORINIO_MASK 0x1
824+
#define RDIF_TASK_CONTEXT_ERRORINIO_SHIFT 8
825+
#define RDIF_TASK_CONTEXT_CHECKSUMOVERFLOW_MASK 0x1
826+
#define RDIF_TASK_CONTEXT_CHECKSUMOVERFLOW_SHIFT 9
827+
#define RDIF_TASK_CONTEXT_REFTAGMASK_MASK 0xF
828+
#define RDIF_TASK_CONTEXT_REFTAGMASK_SHIFT 10
829+
#define RDIF_TASK_CONTEXT_RESERVED1_MASK 0x3
830+
#define RDIF_TASK_CONTEXT_RESERVED1_SHIFT 14
831+
__le32 reserved2;
832+
};
833+
764834
enum rss_hash_type {
765835
RSS_HASH_TYPE_DEFAULT = 0,
766836
RSS_HASH_TYPE_IPV4 = 1,
@@ -789,4 +859,122 @@ struct status_block {
789859
#define STATUS_BLOCK_ZERO_PAD3_SHIFT 24
790860
};
791861

862+
struct tdif_task_context {
863+
__le32 initial_ref_tag;
864+
__le16 app_tag_value;
865+
__le16 app_tag_mask;
866+
__le16 partial_crc_valueB;
867+
__le16 partial_checksum_valueB;
868+
__le16 stateB;
869+
#define TDIF_TASK_CONTEXT_RECEIVEDDIFBYTESLEFTB_MASK 0xF
870+
#define TDIF_TASK_CONTEXT_RECEIVEDDIFBYTESLEFTB_SHIFT 0
871+
#define TDIF_TASK_CONTEXT_TRANSMITEDDIFBYTESLEFTB_MASK 0xF
872+
#define TDIF_TASK_CONTEXT_TRANSMITEDDIFBYTESLEFTB_SHIFT 4
873+
#define TDIF_TASK_CONTEXT_ERRORINIOB_MASK 0x1
874+
#define TDIF_TASK_CONTEXT_ERRORINIOB_SHIFT 8
875+
#define TDIF_TASK_CONTEXT_CHECKSUMOVERFLOW_MASK 0x1
876+
#define TDIF_TASK_CONTEXT_CHECKSUMOVERFLOW_SHIFT 9
877+
#define TDIF_TASK_CONTEXT_RESERVED0_MASK 0x3F
878+
#define TDIF_TASK_CONTEXT_RESERVED0_SHIFT 10
879+
u8 reserved1;
880+
u8 flags0;
881+
#define TDIF_TASK_CONTEXT_IGNOREAPPTAG_MASK 0x1
882+
#define TDIF_TASK_CONTEXT_IGNOREAPPTAG_SHIFT 0
883+
#define TDIF_TASK_CONTEXT_INITIALREFTAGVALID_MASK 0x1
884+
#define TDIF_TASK_CONTEXT_INITIALREFTAGVALID_SHIFT 1
885+
#define TDIF_TASK_CONTEXT_HOSTGUARDTYPE_MASK 0x1
886+
#define TDIF_TASK_CONTEXT_HOSTGUARDTYPE_SHIFT 2
887+
#define TDIF_TASK_CONTEXT_SETERRORWITHEOP_MASK 0x1
888+
#define TDIF_TASK_CONTEXT_SETERRORWITHEOP_SHIFT 3
889+
#define TDIF_TASK_CONTEXT_PROTECTIONTYPE_MASK 0x3
890+
#define TDIF_TASK_CONTEXT_PROTECTIONTYPE_SHIFT 4
891+
#define TDIF_TASK_CONTEXT_CRC_SEED_MASK 0x1
892+
#define TDIF_TASK_CONTEXT_CRC_SEED_SHIFT 6
893+
#define TDIF_TASK_CONTEXT_RESERVED2_MASK 0x1
894+
#define TDIF_TASK_CONTEXT_RESERVED2_SHIFT 7
895+
__le32 flags1;
896+
#define TDIF_TASK_CONTEXT_VALIDATEGUARD_MASK 0x1
897+
#define TDIF_TASK_CONTEXT_VALIDATEGUARD_SHIFT 0
898+
#define TDIF_TASK_CONTEXT_VALIDATEAPPTAG_MASK 0x1
899+
#define TDIF_TASK_CONTEXT_VALIDATEAPPTAG_SHIFT 1
900+
#define TDIF_TASK_CONTEXT_VALIDATEREFTAG_MASK 0x1
901+
#define TDIF_TASK_CONTEXT_VALIDATEREFTAG_SHIFT 2
902+
#define TDIF_TASK_CONTEXT_FORWARDGUARD_MASK 0x1
903+
#define TDIF_TASK_CONTEXT_FORWARDGUARD_SHIFT 3
904+
#define TDIF_TASK_CONTEXT_FORWARDAPPTAG_MASK 0x1
905+
#define TDIF_TASK_CONTEXT_FORWARDAPPTAG_SHIFT 4
906+
#define TDIF_TASK_CONTEXT_FORWARDREFTAG_MASK 0x1
907+
#define TDIF_TASK_CONTEXT_FORWARDREFTAG_SHIFT 5
908+
#define TDIF_TASK_CONTEXT_INTERVALSIZE_MASK 0x7
909+
#define TDIF_TASK_CONTEXT_INTERVALSIZE_SHIFT 6
910+
#define TDIF_TASK_CONTEXT_HOSTINTERFACE_MASK 0x3
911+
#define TDIF_TASK_CONTEXT_HOSTINTERFACE_SHIFT 9
912+
#define TDIF_TASK_CONTEXT_DIFBEFOREDATA_MASK 0x1
913+
#define TDIF_TASK_CONTEXT_DIFBEFOREDATA_SHIFT 11
914+
#define TDIF_TASK_CONTEXT_RESERVED3_MASK 0x1
915+
#define TDIF_TASK_CONTEXT_RESERVED3_SHIFT 12
916+
#define TDIF_TASK_CONTEXT_NETWORKINTERFACE_MASK 0x1
917+
#define TDIF_TASK_CONTEXT_NETWORKINTERFACE_SHIFT 13
918+
#define TDIF_TASK_CONTEXT_RECEIVEDDIFBYTESLEFTA_MASK 0xF
919+
#define TDIF_TASK_CONTEXT_RECEIVEDDIFBYTESLEFTA_SHIFT 14
920+
#define TDIF_TASK_CONTEXT_TRANSMITEDDIFBYTESLEFTA_MASK 0xF
921+
#define TDIF_TASK_CONTEXT_TRANSMITEDDIFBYTESLEFTA_SHIFT 18
922+
#define TDIF_TASK_CONTEXT_ERRORINIOA_MASK 0x1
923+
#define TDIF_TASK_CONTEXT_ERRORINIOA_SHIFT 22
924+
#define TDIF_TASK_CONTEXT_CHECKSUMOVERFLOWA_MASK 0x1
925+
#define TDIF_TASK_CONTEXT_CHECKSUMOVERFLOWA_SHIFT 23
926+
#define TDIF_TASK_CONTEXT_REFTAGMASK_MASK 0xF
927+
#define TDIF_TASK_CONTEXT_REFTAGMASK_SHIFT 24
928+
#define TDIF_TASK_CONTEXT_FORWARDAPPTAGWITHMASK_MASK 0x1
929+
#define TDIF_TASK_CONTEXT_FORWARDAPPTAGWITHMASK_SHIFT 28
930+
#define TDIF_TASK_CONTEXT_FORWARDREFTAGWITHMASK_MASK 0x1
931+
#define TDIF_TASK_CONTEXT_FORWARDREFTAGWITHMASK_SHIFT 29
932+
#define TDIF_TASK_CONTEXT_KEEPREFTAGCONST_MASK 0x1
933+
#define TDIF_TASK_CONTEXT_KEEPREFTAGCONST_SHIFT 30
934+
#define TDIF_TASK_CONTEXT_RESERVED4_MASK 0x1
935+
#define TDIF_TASK_CONTEXT_RESERVED4_SHIFT 31
936+
__le32 offset_in_iob;
937+
__le16 partial_crc_value_a;
938+
__le16 partial_checksum_valuea_;
939+
__le32 offset_in_ioa;
940+
u8 partial_dif_data_a[8];
941+
u8 partial_dif_data_b[8];
942+
};
943+
944+
struct timers_context {
945+
__le32 logical_client0;
946+
#define TIMERS_CONTEXT_EXPIRATIONTIMELC0_MASK 0xFFFFFFF
947+
#define TIMERS_CONTEXT_EXPIRATIONTIMELC0_SHIFT 0
948+
#define TIMERS_CONTEXT_VALIDLC0_MASK 0x1
949+
#define TIMERS_CONTEXT_VALIDLC0_SHIFT 28
950+
#define TIMERS_CONTEXT_ACTIVELC0_MASK 0x1
951+
#define TIMERS_CONTEXT_ACTIVELC0_SHIFT 29
952+
#define TIMERS_CONTEXT_RESERVED0_MASK 0x3
953+
#define TIMERS_CONTEXT_RESERVED0_SHIFT 30
954+
__le32 logical_client1;
955+
#define TIMERS_CONTEXT_EXPIRATIONTIMELC1_MASK 0xFFFFFFF
956+
#define TIMERS_CONTEXT_EXPIRATIONTIMELC1_SHIFT 0
957+
#define TIMERS_CONTEXT_VALIDLC1_MASK 0x1
958+
#define TIMERS_CONTEXT_VALIDLC1_SHIFT 28
959+
#define TIMERS_CONTEXT_ACTIVELC1_MASK 0x1
960+
#define TIMERS_CONTEXT_ACTIVELC1_SHIFT 29
961+
#define TIMERS_CONTEXT_RESERVED1_MASK 0x3
962+
#define TIMERS_CONTEXT_RESERVED1_SHIFT 30
963+
__le32 logical_client2;
964+
#define TIMERS_CONTEXT_EXPIRATIONTIMELC2_MASK 0xFFFFFFF
965+
#define TIMERS_CONTEXT_EXPIRATIONTIMELC2_SHIFT 0
966+
#define TIMERS_CONTEXT_VALIDLC2_MASK 0x1
967+
#define TIMERS_CONTEXT_VALIDLC2_SHIFT 28
968+
#define TIMERS_CONTEXT_ACTIVELC2_MASK 0x1
969+
#define TIMERS_CONTEXT_ACTIVELC2_SHIFT 29
970+
#define TIMERS_CONTEXT_RESERVED2_MASK 0x3
971+
#define TIMERS_CONTEXT_RESERVED2_SHIFT 30
972+
__le32 host_expiration_fields;
973+
#define TIMERS_CONTEXT_HOSTEXPRIRATIONVALUE_MASK 0xFFFFFFF
974+
#define TIMERS_CONTEXT_HOSTEXPRIRATIONVALUE_SHIFT 0
975+
#define TIMERS_CONTEXT_HOSTEXPRIRATIONVALID_MASK 0x1
976+
#define TIMERS_CONTEXT_HOSTEXPRIRATIONVALID_SHIFT 28
977+
#define TIMERS_CONTEXT_RESERVED3_MASK 0x7
978+
#define TIMERS_CONTEXT_RESERVED3_SHIFT 29
979+
};
792980
#endif /* __COMMON_HSI__ */

0 commit comments

Comments
 (0)