162306a36Sopenharmony_ci/* 57xx_hsi_bnx2fc.h: QLogic Linux FCoE offload driver. 262306a36Sopenharmony_ci * Handles operations such as session offload/upload etc, and manages 362306a36Sopenharmony_ci * session resources such as connection id and qp resources. 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Copyright (c) 2008-2013 Broadcom Corporation 662306a36Sopenharmony_ci * Copyright (c) 2014-2016 QLogic Corporation 762306a36Sopenharmony_ci * Copyright (c) 2016-2017 Cavium Inc. 862306a36Sopenharmony_ci * 962306a36Sopenharmony_ci * This program is free software; you can redistribute it and/or modify 1062306a36Sopenharmony_ci * it under the terms of the GNU General Public License as published by 1162306a36Sopenharmony_ci * the Free Software Foundation. 1262306a36Sopenharmony_ci * 1362306a36Sopenharmony_ci */ 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci#ifndef __57XX_FCOE_HSI_LINUX_LE__ 1662306a36Sopenharmony_ci#define __57XX_FCOE_HSI_LINUX_LE__ 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci/* 1962306a36Sopenharmony_ci * common data for all protocols 2062306a36Sopenharmony_ci */ 2162306a36Sopenharmony_cistruct b577xx_doorbell_hdr { 2262306a36Sopenharmony_ci u8 header; 2362306a36Sopenharmony_ci#define B577XX_DOORBELL_HDR_RX (0x1<<0) 2462306a36Sopenharmony_ci#define B577XX_DOORBELL_HDR_RX_SHIFT 0 2562306a36Sopenharmony_ci#define B577XX_DOORBELL_HDR_DB_TYPE (0x1<<1) 2662306a36Sopenharmony_ci#define B577XX_DOORBELL_HDR_DB_TYPE_SHIFT 1 2762306a36Sopenharmony_ci#define B577XX_DOORBELL_HDR_DPM_SIZE (0x3<<2) 2862306a36Sopenharmony_ci#define B577XX_DOORBELL_HDR_DPM_SIZE_SHIFT 2 2962306a36Sopenharmony_ci#define B577XX_DOORBELL_HDR_CONN_TYPE (0xF<<4) 3062306a36Sopenharmony_ci#define B577XX_DOORBELL_HDR_CONN_TYPE_SHIFT 4 3162306a36Sopenharmony_ci}; 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci/* 3462306a36Sopenharmony_ci * doorbell message sent to the chip 3562306a36Sopenharmony_ci */ 3662306a36Sopenharmony_cistruct b577xx_doorbell { 3762306a36Sopenharmony_ci#if defined(__BIG_ENDIAN) 3862306a36Sopenharmony_ci u16 zero_fill2; 3962306a36Sopenharmony_ci u8 zero_fill1; 4062306a36Sopenharmony_ci struct b577xx_doorbell_hdr header; 4162306a36Sopenharmony_ci#elif defined(__LITTLE_ENDIAN) 4262306a36Sopenharmony_ci struct b577xx_doorbell_hdr header; 4362306a36Sopenharmony_ci u8 zero_fill1; 4462306a36Sopenharmony_ci u16 zero_fill2; 4562306a36Sopenharmony_ci#endif 4662306a36Sopenharmony_ci}; 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ci/* 5162306a36Sopenharmony_ci * doorbell message sent to the chip 5262306a36Sopenharmony_ci */ 5362306a36Sopenharmony_cistruct b577xx_doorbell_set_prod { 5462306a36Sopenharmony_ci#if defined(__BIG_ENDIAN) 5562306a36Sopenharmony_ci u16 prod; 5662306a36Sopenharmony_ci u8 zero_fill1; 5762306a36Sopenharmony_ci struct b577xx_doorbell_hdr header; 5862306a36Sopenharmony_ci#elif defined(__LITTLE_ENDIAN) 5962306a36Sopenharmony_ci struct b577xx_doorbell_hdr header; 6062306a36Sopenharmony_ci u8 zero_fill1; 6162306a36Sopenharmony_ci u16 prod; 6262306a36Sopenharmony_ci#endif 6362306a36Sopenharmony_ci}; 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ci 6662306a36Sopenharmony_cistruct regpair { 6762306a36Sopenharmony_ci __le32 lo; 6862306a36Sopenharmony_ci __le32 hi; 6962306a36Sopenharmony_ci}; 7062306a36Sopenharmony_ci 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_ci/* 7362306a36Sopenharmony_ci * ABTS info $$KEEP_ENDIANNESS$$ 7462306a36Sopenharmony_ci */ 7562306a36Sopenharmony_cistruct fcoe_abts_info { 7662306a36Sopenharmony_ci __le16 aborted_task_id; 7762306a36Sopenharmony_ci __le16 reserved0; 7862306a36Sopenharmony_ci __le32 reserved1; 7962306a36Sopenharmony_ci}; 8062306a36Sopenharmony_ci 8162306a36Sopenharmony_ci 8262306a36Sopenharmony_ci/* 8362306a36Sopenharmony_ci * Fixed size structure in order to plant it in Union structure 8462306a36Sopenharmony_ci * $$KEEP_ENDIANNESS$$ 8562306a36Sopenharmony_ci */ 8662306a36Sopenharmony_cistruct fcoe_abts_rsp_union { 8762306a36Sopenharmony_ci u8 r_ctl; 8862306a36Sopenharmony_ci u8 rsrv[3]; 8962306a36Sopenharmony_ci __le32 abts_rsp_payload[7]; 9062306a36Sopenharmony_ci}; 9162306a36Sopenharmony_ci 9262306a36Sopenharmony_ci 9362306a36Sopenharmony_ci/* 9462306a36Sopenharmony_ci * 4 regs size $$KEEP_ENDIANNESS$$ 9562306a36Sopenharmony_ci */ 9662306a36Sopenharmony_cistruct fcoe_bd_ctx { 9762306a36Sopenharmony_ci __le32 buf_addr_hi; 9862306a36Sopenharmony_ci __le32 buf_addr_lo; 9962306a36Sopenharmony_ci __le16 buf_len; 10062306a36Sopenharmony_ci __le16 rsrv0; 10162306a36Sopenharmony_ci __le16 flags; 10262306a36Sopenharmony_ci __le16 rsrv1; 10362306a36Sopenharmony_ci}; 10462306a36Sopenharmony_ci 10562306a36Sopenharmony_ci 10662306a36Sopenharmony_ci/* 10762306a36Sopenharmony_ci * FCoE cached sges context $$KEEP_ENDIANNESS$$ 10862306a36Sopenharmony_ci */ 10962306a36Sopenharmony_cistruct fcoe_cached_sge_ctx { 11062306a36Sopenharmony_ci struct regpair cur_buf_addr; 11162306a36Sopenharmony_ci __le16 cur_buf_rem; 11262306a36Sopenharmony_ci __le16 second_buf_rem; 11362306a36Sopenharmony_ci struct regpair second_buf_addr; 11462306a36Sopenharmony_ci}; 11562306a36Sopenharmony_ci 11662306a36Sopenharmony_ci 11762306a36Sopenharmony_ci/* 11862306a36Sopenharmony_ci * Cleanup info $$KEEP_ENDIANNESS$$ 11962306a36Sopenharmony_ci */ 12062306a36Sopenharmony_cistruct fcoe_cleanup_info { 12162306a36Sopenharmony_ci __le16 cleaned_task_id; 12262306a36Sopenharmony_ci __le16 rolled_tx_seq_cnt; 12362306a36Sopenharmony_ci __le32 rolled_tx_data_offset; 12462306a36Sopenharmony_ci}; 12562306a36Sopenharmony_ci 12662306a36Sopenharmony_ci 12762306a36Sopenharmony_ci/* 12862306a36Sopenharmony_ci * Fcp RSP flags $$KEEP_ENDIANNESS$$ 12962306a36Sopenharmony_ci */ 13062306a36Sopenharmony_cistruct fcoe_fcp_rsp_flags { 13162306a36Sopenharmony_ci u8 flags; 13262306a36Sopenharmony_ci#define FCOE_FCP_RSP_FLAGS_FCP_RSP_LEN_VALID (0x1<<0) 13362306a36Sopenharmony_ci#define FCOE_FCP_RSP_FLAGS_FCP_RSP_LEN_VALID_SHIFT 0 13462306a36Sopenharmony_ci#define FCOE_FCP_RSP_FLAGS_FCP_SNS_LEN_VALID (0x1<<1) 13562306a36Sopenharmony_ci#define FCOE_FCP_RSP_FLAGS_FCP_SNS_LEN_VALID_SHIFT 1 13662306a36Sopenharmony_ci#define FCOE_FCP_RSP_FLAGS_FCP_RESID_OVER (0x1<<2) 13762306a36Sopenharmony_ci#define FCOE_FCP_RSP_FLAGS_FCP_RESID_OVER_SHIFT 2 13862306a36Sopenharmony_ci#define FCOE_FCP_RSP_FLAGS_FCP_RESID_UNDER (0x1<<3) 13962306a36Sopenharmony_ci#define FCOE_FCP_RSP_FLAGS_FCP_RESID_UNDER_SHIFT 3 14062306a36Sopenharmony_ci#define FCOE_FCP_RSP_FLAGS_FCP_CONF_REQ (0x1<<4) 14162306a36Sopenharmony_ci#define FCOE_FCP_RSP_FLAGS_FCP_CONF_REQ_SHIFT 4 14262306a36Sopenharmony_ci#define FCOE_FCP_RSP_FLAGS_FCP_BIDI_FLAGS (0x7<<5) 14362306a36Sopenharmony_ci#define FCOE_FCP_RSP_FLAGS_FCP_BIDI_FLAGS_SHIFT 5 14462306a36Sopenharmony_ci}; 14562306a36Sopenharmony_ci 14662306a36Sopenharmony_ci/* 14762306a36Sopenharmony_ci * Fcp RSP payload $$KEEP_ENDIANNESS$$ 14862306a36Sopenharmony_ci */ 14962306a36Sopenharmony_cistruct fcoe_fcp_rsp_payload { 15062306a36Sopenharmony_ci struct regpair reserved0; 15162306a36Sopenharmony_ci __le32 fcp_resid; 15262306a36Sopenharmony_ci u8 scsi_status_code; 15362306a36Sopenharmony_ci struct fcoe_fcp_rsp_flags fcp_flags; 15462306a36Sopenharmony_ci __le16 retry_delay_timer; 15562306a36Sopenharmony_ci __le32 fcp_rsp_len; 15662306a36Sopenharmony_ci __le32 fcp_sns_len; 15762306a36Sopenharmony_ci}; 15862306a36Sopenharmony_ci 15962306a36Sopenharmony_ci/* 16062306a36Sopenharmony_ci * Fixed size structure in order to plant it in Union structure 16162306a36Sopenharmony_ci * $$KEEP_ENDIANNESS$$ 16262306a36Sopenharmony_ci */ 16362306a36Sopenharmony_cistruct fcoe_fcp_rsp_union { 16462306a36Sopenharmony_ci struct fcoe_fcp_rsp_payload payload; 16562306a36Sopenharmony_ci struct regpair reserved0; 16662306a36Sopenharmony_ci}; 16762306a36Sopenharmony_ci 16862306a36Sopenharmony_ci/* 16962306a36Sopenharmony_ci * FC header $$KEEP_ENDIANNESS$$ 17062306a36Sopenharmony_ci */ 17162306a36Sopenharmony_cistruct fcoe_fc_hdr { 17262306a36Sopenharmony_ci u8 s_id[3]; 17362306a36Sopenharmony_ci u8 cs_ctl; 17462306a36Sopenharmony_ci u8 d_id[3]; 17562306a36Sopenharmony_ci u8 r_ctl; 17662306a36Sopenharmony_ci __le16 seq_cnt; 17762306a36Sopenharmony_ci u8 df_ctl; 17862306a36Sopenharmony_ci u8 seq_id; 17962306a36Sopenharmony_ci u8 f_ctl[3]; 18062306a36Sopenharmony_ci u8 type; 18162306a36Sopenharmony_ci __le32 parameters; 18262306a36Sopenharmony_ci __le16 rx_id; 18362306a36Sopenharmony_ci __le16 ox_id; 18462306a36Sopenharmony_ci}; 18562306a36Sopenharmony_ci 18662306a36Sopenharmony_ci/* 18762306a36Sopenharmony_ci * FC header union $$KEEP_ENDIANNESS$$ 18862306a36Sopenharmony_ci */ 18962306a36Sopenharmony_cistruct fcoe_mp_rsp_union { 19062306a36Sopenharmony_ci struct fcoe_fc_hdr fc_hdr; 19162306a36Sopenharmony_ci __le32 mp_payload_len; 19262306a36Sopenharmony_ci __le32 rsrv; 19362306a36Sopenharmony_ci}; 19462306a36Sopenharmony_ci 19562306a36Sopenharmony_ci/* 19662306a36Sopenharmony_ci * Completion information $$KEEP_ENDIANNESS$$ 19762306a36Sopenharmony_ci */ 19862306a36Sopenharmony_ciunion fcoe_comp_flow_info { 19962306a36Sopenharmony_ci struct fcoe_fcp_rsp_union fcp_rsp; 20062306a36Sopenharmony_ci struct fcoe_abts_rsp_union abts_rsp; 20162306a36Sopenharmony_ci struct fcoe_mp_rsp_union mp_rsp; 20262306a36Sopenharmony_ci __le32 opaque[8]; 20362306a36Sopenharmony_ci}; 20462306a36Sopenharmony_ci 20562306a36Sopenharmony_ci 20662306a36Sopenharmony_ci/* 20762306a36Sopenharmony_ci * External ABTS info $$KEEP_ENDIANNESS$$ 20862306a36Sopenharmony_ci */ 20962306a36Sopenharmony_cistruct fcoe_ext_abts_info { 21062306a36Sopenharmony_ci __le32 rsrv0[6]; 21162306a36Sopenharmony_ci struct fcoe_abts_info ctx; 21262306a36Sopenharmony_ci}; 21362306a36Sopenharmony_ci 21462306a36Sopenharmony_ci 21562306a36Sopenharmony_ci/* 21662306a36Sopenharmony_ci * External cleanup info $$KEEP_ENDIANNESS$$ 21762306a36Sopenharmony_ci */ 21862306a36Sopenharmony_cistruct fcoe_ext_cleanup_info { 21962306a36Sopenharmony_ci __le32 rsrv0[6]; 22062306a36Sopenharmony_ci struct fcoe_cleanup_info ctx; 22162306a36Sopenharmony_ci}; 22262306a36Sopenharmony_ci 22362306a36Sopenharmony_ci 22462306a36Sopenharmony_ci/* 22562306a36Sopenharmony_ci * Fcoe FW Tx sequence context $$KEEP_ENDIANNESS$$ 22662306a36Sopenharmony_ci */ 22762306a36Sopenharmony_cistruct fcoe_fw_tx_seq_ctx { 22862306a36Sopenharmony_ci __le32 data_offset; 22962306a36Sopenharmony_ci __le16 seq_cnt; 23062306a36Sopenharmony_ci __le16 rsrv0; 23162306a36Sopenharmony_ci}; 23262306a36Sopenharmony_ci 23362306a36Sopenharmony_ci/* 23462306a36Sopenharmony_ci * Fcoe external FW Tx sequence context $$KEEP_ENDIANNESS$$ 23562306a36Sopenharmony_ci */ 23662306a36Sopenharmony_cistruct fcoe_ext_fw_tx_seq_ctx { 23762306a36Sopenharmony_ci __le32 rsrv0[6]; 23862306a36Sopenharmony_ci struct fcoe_fw_tx_seq_ctx ctx; 23962306a36Sopenharmony_ci}; 24062306a36Sopenharmony_ci 24162306a36Sopenharmony_ci 24262306a36Sopenharmony_ci/* 24362306a36Sopenharmony_ci * FCoE multiple sges context $$KEEP_ENDIANNESS$$ 24462306a36Sopenharmony_ci */ 24562306a36Sopenharmony_cistruct fcoe_mul_sges_ctx { 24662306a36Sopenharmony_ci struct regpair cur_sge_addr; 24762306a36Sopenharmony_ci __le16 cur_sge_off; 24862306a36Sopenharmony_ci u8 cur_sge_idx; 24962306a36Sopenharmony_ci u8 sgl_size; 25062306a36Sopenharmony_ci}; 25162306a36Sopenharmony_ci 25262306a36Sopenharmony_ci/* 25362306a36Sopenharmony_ci * FCoE external multiple sges context $$KEEP_ENDIANNESS$$ 25462306a36Sopenharmony_ci */ 25562306a36Sopenharmony_cistruct fcoe_ext_mul_sges_ctx { 25662306a36Sopenharmony_ci struct fcoe_mul_sges_ctx mul_sgl; 25762306a36Sopenharmony_ci struct regpair rsrv0; 25862306a36Sopenharmony_ci}; 25962306a36Sopenharmony_ci 26062306a36Sopenharmony_ci 26162306a36Sopenharmony_ci/* 26262306a36Sopenharmony_ci * FCP CMD payload $$KEEP_ENDIANNESS$$ 26362306a36Sopenharmony_ci */ 26462306a36Sopenharmony_cistruct fcoe_fcp_cmd_payload { 26562306a36Sopenharmony_ci __le32 opaque[8]; 26662306a36Sopenharmony_ci}; 26762306a36Sopenharmony_ci 26862306a36Sopenharmony_ci 26962306a36Sopenharmony_ci 27062306a36Sopenharmony_ci 27162306a36Sopenharmony_ci 27262306a36Sopenharmony_ci/* 27362306a36Sopenharmony_ci * Fcp xfr rdy payload $$KEEP_ENDIANNESS$$ 27462306a36Sopenharmony_ci */ 27562306a36Sopenharmony_cistruct fcoe_fcp_xfr_rdy_payload { 27662306a36Sopenharmony_ci __le32 burst_len; 27762306a36Sopenharmony_ci __le32 data_ro; 27862306a36Sopenharmony_ci}; 27962306a36Sopenharmony_ci 28062306a36Sopenharmony_ci 28162306a36Sopenharmony_ci/* 28262306a36Sopenharmony_ci * FC frame $$KEEP_ENDIANNESS$$ 28362306a36Sopenharmony_ci */ 28462306a36Sopenharmony_cistruct fcoe_fc_frame { 28562306a36Sopenharmony_ci struct fcoe_fc_hdr fc_hdr; 28662306a36Sopenharmony_ci __le32 reserved0[2]; 28762306a36Sopenharmony_ci}; 28862306a36Sopenharmony_ci 28962306a36Sopenharmony_ci 29062306a36Sopenharmony_ci 29162306a36Sopenharmony_ci 29262306a36Sopenharmony_ci/* 29362306a36Sopenharmony_ci * FCoE KCQ CQE parameters $$KEEP_ENDIANNESS$$ 29462306a36Sopenharmony_ci */ 29562306a36Sopenharmony_ciunion fcoe_kcqe_params { 29662306a36Sopenharmony_ci __le32 reserved0[4]; 29762306a36Sopenharmony_ci}; 29862306a36Sopenharmony_ci 29962306a36Sopenharmony_ci/* 30062306a36Sopenharmony_ci * FCoE KCQ CQE $$KEEP_ENDIANNESS$$ 30162306a36Sopenharmony_ci */ 30262306a36Sopenharmony_cistruct fcoe_kcqe { 30362306a36Sopenharmony_ci __le32 fcoe_conn_id; 30462306a36Sopenharmony_ci __le32 completion_status; 30562306a36Sopenharmony_ci __le32 fcoe_conn_context_id; 30662306a36Sopenharmony_ci union fcoe_kcqe_params params; 30762306a36Sopenharmony_ci __le16 qe_self_seq; 30862306a36Sopenharmony_ci u8 op_code; 30962306a36Sopenharmony_ci u8 flags; 31062306a36Sopenharmony_ci#define FCOE_KCQE_RESERVED0 (0x7<<0) 31162306a36Sopenharmony_ci#define FCOE_KCQE_RESERVED0_SHIFT 0 31262306a36Sopenharmony_ci#define FCOE_KCQE_RAMROD_COMPLETION (0x1<<3) 31362306a36Sopenharmony_ci#define FCOE_KCQE_RAMROD_COMPLETION_SHIFT 3 31462306a36Sopenharmony_ci#define FCOE_KCQE_LAYER_CODE (0x7<<4) 31562306a36Sopenharmony_ci#define FCOE_KCQE_LAYER_CODE_SHIFT 4 31662306a36Sopenharmony_ci#define FCOE_KCQE_LINKED_WITH_NEXT (0x1<<7) 31762306a36Sopenharmony_ci#define FCOE_KCQE_LINKED_WITH_NEXT_SHIFT 7 31862306a36Sopenharmony_ci}; 31962306a36Sopenharmony_ci 32062306a36Sopenharmony_ci 32162306a36Sopenharmony_ci 32262306a36Sopenharmony_ci/* 32362306a36Sopenharmony_ci * FCoE KWQE header $$KEEP_ENDIANNESS$$ 32462306a36Sopenharmony_ci */ 32562306a36Sopenharmony_cistruct fcoe_kwqe_header { 32662306a36Sopenharmony_ci u8 op_code; 32762306a36Sopenharmony_ci u8 flags; 32862306a36Sopenharmony_ci#define FCOE_KWQE_HEADER_RESERVED0 (0xF<<0) 32962306a36Sopenharmony_ci#define FCOE_KWQE_HEADER_RESERVED0_SHIFT 0 33062306a36Sopenharmony_ci#define FCOE_KWQE_HEADER_LAYER_CODE (0x7<<4) 33162306a36Sopenharmony_ci#define FCOE_KWQE_HEADER_LAYER_CODE_SHIFT 4 33262306a36Sopenharmony_ci#define FCOE_KWQE_HEADER_RESERVED1 (0x1<<7) 33362306a36Sopenharmony_ci#define FCOE_KWQE_HEADER_RESERVED1_SHIFT 7 33462306a36Sopenharmony_ci}; 33562306a36Sopenharmony_ci 33662306a36Sopenharmony_ci/* 33762306a36Sopenharmony_ci * FCoE firmware init request 1 $$KEEP_ENDIANNESS$$ 33862306a36Sopenharmony_ci */ 33962306a36Sopenharmony_cistruct fcoe_kwqe_init1 { 34062306a36Sopenharmony_ci __le16 num_tasks; 34162306a36Sopenharmony_ci struct fcoe_kwqe_header hdr; 34262306a36Sopenharmony_ci __le32 task_list_pbl_addr_lo; 34362306a36Sopenharmony_ci __le32 task_list_pbl_addr_hi; 34462306a36Sopenharmony_ci __le32 dummy_buffer_addr_lo; 34562306a36Sopenharmony_ci __le32 dummy_buffer_addr_hi; 34662306a36Sopenharmony_ci __le16 sq_num_wqes; 34762306a36Sopenharmony_ci __le16 rq_num_wqes; 34862306a36Sopenharmony_ci __le16 rq_buffer_log_size; 34962306a36Sopenharmony_ci __le16 cq_num_wqes; 35062306a36Sopenharmony_ci __le16 mtu; 35162306a36Sopenharmony_ci u8 num_sessions_log; 35262306a36Sopenharmony_ci u8 flags; 35362306a36Sopenharmony_ci#define FCOE_KWQE_INIT1_LOG_PAGE_SIZE (0xF<<0) 35462306a36Sopenharmony_ci#define FCOE_KWQE_INIT1_LOG_PAGE_SIZE_SHIFT 0 35562306a36Sopenharmony_ci#define FCOE_KWQE_INIT1_LOG_CACHED_PBES_PER_FUNC (0x7<<4) 35662306a36Sopenharmony_ci#define FCOE_KWQE_INIT1_LOG_CACHED_PBES_PER_FUNC_SHIFT 4 35762306a36Sopenharmony_ci#define FCOE_KWQE_INIT1_RESERVED1 (0x1<<7) 35862306a36Sopenharmony_ci#define FCOE_KWQE_INIT1_RESERVED1_SHIFT 7 35962306a36Sopenharmony_ci}; 36062306a36Sopenharmony_ci 36162306a36Sopenharmony_ci/* 36262306a36Sopenharmony_ci * FCoE firmware init request 2 $$KEEP_ENDIANNESS$$ 36362306a36Sopenharmony_ci */ 36462306a36Sopenharmony_cistruct fcoe_kwqe_init2 { 36562306a36Sopenharmony_ci u8 hsi_major_version; 36662306a36Sopenharmony_ci u8 hsi_minor_version; 36762306a36Sopenharmony_ci struct fcoe_kwqe_header hdr; 36862306a36Sopenharmony_ci __le32 hash_tbl_pbl_addr_lo; 36962306a36Sopenharmony_ci __le32 hash_tbl_pbl_addr_hi; 37062306a36Sopenharmony_ci __le32 t2_hash_tbl_addr_lo; 37162306a36Sopenharmony_ci __le32 t2_hash_tbl_addr_hi; 37262306a36Sopenharmony_ci __le32 t2_ptr_hash_tbl_addr_lo; 37362306a36Sopenharmony_ci __le32 t2_ptr_hash_tbl_addr_hi; 37462306a36Sopenharmony_ci __le32 free_list_count; 37562306a36Sopenharmony_ci}; 37662306a36Sopenharmony_ci 37762306a36Sopenharmony_ci/* 37862306a36Sopenharmony_ci * FCoE firmware init request 3 $$KEEP_ENDIANNESS$$ 37962306a36Sopenharmony_ci */ 38062306a36Sopenharmony_cistruct fcoe_kwqe_init3 { 38162306a36Sopenharmony_ci __le16 reserved0; 38262306a36Sopenharmony_ci struct fcoe_kwqe_header hdr; 38362306a36Sopenharmony_ci __le32 error_bit_map_lo; 38462306a36Sopenharmony_ci __le32 error_bit_map_hi; 38562306a36Sopenharmony_ci u8 perf_config; 38662306a36Sopenharmony_ci u8 reserved21[3]; 38762306a36Sopenharmony_ci __le32 reserved2[4]; 38862306a36Sopenharmony_ci}; 38962306a36Sopenharmony_ci 39062306a36Sopenharmony_ci/* 39162306a36Sopenharmony_ci * FCoE connection offload request 1 $$KEEP_ENDIANNESS$$ 39262306a36Sopenharmony_ci */ 39362306a36Sopenharmony_cistruct fcoe_kwqe_conn_offload1 { 39462306a36Sopenharmony_ci __le16 fcoe_conn_id; 39562306a36Sopenharmony_ci struct fcoe_kwqe_header hdr; 39662306a36Sopenharmony_ci __le32 sq_addr_lo; 39762306a36Sopenharmony_ci __le32 sq_addr_hi; 39862306a36Sopenharmony_ci __le32 rq_pbl_addr_lo; 39962306a36Sopenharmony_ci __le32 rq_pbl_addr_hi; 40062306a36Sopenharmony_ci __le32 rq_first_pbe_addr_lo; 40162306a36Sopenharmony_ci __le32 rq_first_pbe_addr_hi; 40262306a36Sopenharmony_ci __le16 rq_prod; 40362306a36Sopenharmony_ci __le16 reserved0; 40462306a36Sopenharmony_ci}; 40562306a36Sopenharmony_ci 40662306a36Sopenharmony_ci/* 40762306a36Sopenharmony_ci * FCoE connection offload request 2 $$KEEP_ENDIANNESS$$ 40862306a36Sopenharmony_ci */ 40962306a36Sopenharmony_cistruct fcoe_kwqe_conn_offload2 { 41062306a36Sopenharmony_ci __le16 tx_max_fc_pay_len; 41162306a36Sopenharmony_ci struct fcoe_kwqe_header hdr; 41262306a36Sopenharmony_ci __le32 cq_addr_lo; 41362306a36Sopenharmony_ci __le32 cq_addr_hi; 41462306a36Sopenharmony_ci __le32 xferq_addr_lo; 41562306a36Sopenharmony_ci __le32 xferq_addr_hi; 41662306a36Sopenharmony_ci __le32 conn_db_addr_lo; 41762306a36Sopenharmony_ci __le32 conn_db_addr_hi; 41862306a36Sopenharmony_ci __le32 reserved1; 41962306a36Sopenharmony_ci}; 42062306a36Sopenharmony_ci 42162306a36Sopenharmony_ci/* 42262306a36Sopenharmony_ci * FCoE connection offload request 3 $$KEEP_ENDIANNESS$$ 42362306a36Sopenharmony_ci */ 42462306a36Sopenharmony_cistruct fcoe_kwqe_conn_offload3 { 42562306a36Sopenharmony_ci __le16 vlan_tag; 42662306a36Sopenharmony_ci#define FCOE_KWQE_CONN_OFFLOAD3_VLAN_ID (0xFFF<<0) 42762306a36Sopenharmony_ci#define FCOE_KWQE_CONN_OFFLOAD3_VLAN_ID_SHIFT 0 42862306a36Sopenharmony_ci#define FCOE_KWQE_CONN_OFFLOAD3_CFI (0x1<<12) 42962306a36Sopenharmony_ci#define FCOE_KWQE_CONN_OFFLOAD3_CFI_SHIFT 12 43062306a36Sopenharmony_ci#define FCOE_KWQE_CONN_OFFLOAD3_PRIORITY (0x7<<13) 43162306a36Sopenharmony_ci#define FCOE_KWQE_CONN_OFFLOAD3_PRIORITY_SHIFT 13 43262306a36Sopenharmony_ci struct fcoe_kwqe_header hdr; 43362306a36Sopenharmony_ci u8 s_id[3]; 43462306a36Sopenharmony_ci u8 tx_max_conc_seqs_c3; 43562306a36Sopenharmony_ci u8 d_id[3]; 43662306a36Sopenharmony_ci u8 flags; 43762306a36Sopenharmony_ci#define FCOE_KWQE_CONN_OFFLOAD3_B_MUL_N_PORT_IDS (0x1<<0) 43862306a36Sopenharmony_ci#define FCOE_KWQE_CONN_OFFLOAD3_B_MUL_N_PORT_IDS_SHIFT 0 43962306a36Sopenharmony_ci#define FCOE_KWQE_CONN_OFFLOAD3_B_E_D_TOV_RES (0x1<<1) 44062306a36Sopenharmony_ci#define FCOE_KWQE_CONN_OFFLOAD3_B_E_D_TOV_RES_SHIFT 1 44162306a36Sopenharmony_ci#define FCOE_KWQE_CONN_OFFLOAD3_B_CONT_INCR_SEQ_CNT (0x1<<2) 44262306a36Sopenharmony_ci#define FCOE_KWQE_CONN_OFFLOAD3_B_CONT_INCR_SEQ_CNT_SHIFT 2 44362306a36Sopenharmony_ci#define FCOE_KWQE_CONN_OFFLOAD3_B_CONF_REQ (0x1<<3) 44462306a36Sopenharmony_ci#define FCOE_KWQE_CONN_OFFLOAD3_B_CONF_REQ_SHIFT 3 44562306a36Sopenharmony_ci#define FCOE_KWQE_CONN_OFFLOAD3_B_REC_VALID (0x1<<4) 44662306a36Sopenharmony_ci#define FCOE_KWQE_CONN_OFFLOAD3_B_REC_VALID_SHIFT 4 44762306a36Sopenharmony_ci#define FCOE_KWQE_CONN_OFFLOAD3_B_C2_VALID (0x1<<5) 44862306a36Sopenharmony_ci#define FCOE_KWQE_CONN_OFFLOAD3_B_C2_VALID_SHIFT 5 44962306a36Sopenharmony_ci#define FCOE_KWQE_CONN_OFFLOAD3_B_ACK_0 (0x1<<6) 45062306a36Sopenharmony_ci#define FCOE_KWQE_CONN_OFFLOAD3_B_ACK_0_SHIFT 6 45162306a36Sopenharmony_ci#define FCOE_KWQE_CONN_OFFLOAD3_B_VLAN_FLAG (0x1<<7) 45262306a36Sopenharmony_ci#define FCOE_KWQE_CONN_OFFLOAD3_B_VLAN_FLAG_SHIFT 7 45362306a36Sopenharmony_ci __le32 reserved; 45462306a36Sopenharmony_ci __le32 confq_first_pbe_addr_lo; 45562306a36Sopenharmony_ci __le32 confq_first_pbe_addr_hi; 45662306a36Sopenharmony_ci __le16 tx_total_conc_seqs; 45762306a36Sopenharmony_ci __le16 rx_max_fc_pay_len; 45862306a36Sopenharmony_ci __le16 rx_total_conc_seqs; 45962306a36Sopenharmony_ci u8 rx_max_conc_seqs_c3; 46062306a36Sopenharmony_ci u8 rx_open_seqs_exch_c3; 46162306a36Sopenharmony_ci}; 46262306a36Sopenharmony_ci 46362306a36Sopenharmony_ci/* 46462306a36Sopenharmony_ci * FCoE connection offload request 4 $$KEEP_ENDIANNESS$$ 46562306a36Sopenharmony_ci */ 46662306a36Sopenharmony_cistruct fcoe_kwqe_conn_offload4 { 46762306a36Sopenharmony_ci u8 e_d_tov_timer_val; 46862306a36Sopenharmony_ci u8 reserved2; 46962306a36Sopenharmony_ci struct fcoe_kwqe_header hdr; 47062306a36Sopenharmony_ci u8 src_mac_addr_lo[2]; 47162306a36Sopenharmony_ci u8 src_mac_addr_mid[2]; 47262306a36Sopenharmony_ci u8 src_mac_addr_hi[2]; 47362306a36Sopenharmony_ci u8 dst_mac_addr_hi[2]; 47462306a36Sopenharmony_ci u8 dst_mac_addr_lo[2]; 47562306a36Sopenharmony_ci u8 dst_mac_addr_mid[2]; 47662306a36Sopenharmony_ci __le32 lcq_addr_lo; 47762306a36Sopenharmony_ci __le32 lcq_addr_hi; 47862306a36Sopenharmony_ci __le32 confq_pbl_base_addr_lo; 47962306a36Sopenharmony_ci __le32 confq_pbl_base_addr_hi; 48062306a36Sopenharmony_ci}; 48162306a36Sopenharmony_ci 48262306a36Sopenharmony_ci/* 48362306a36Sopenharmony_ci * FCoE connection enable request $$KEEP_ENDIANNESS$$ 48462306a36Sopenharmony_ci */ 48562306a36Sopenharmony_cistruct fcoe_kwqe_conn_enable_disable { 48662306a36Sopenharmony_ci __le16 reserved0; 48762306a36Sopenharmony_ci struct fcoe_kwqe_header hdr; 48862306a36Sopenharmony_ci u8 src_mac_addr_lo[2]; 48962306a36Sopenharmony_ci u8 src_mac_addr_mid[2]; 49062306a36Sopenharmony_ci u8 src_mac_addr_hi[2]; 49162306a36Sopenharmony_ci u16 vlan_tag; 49262306a36Sopenharmony_ci#define FCOE_KWQE_CONN_ENABLE_DISABLE_VLAN_ID (0xFFF<<0) 49362306a36Sopenharmony_ci#define FCOE_KWQE_CONN_ENABLE_DISABLE_VLAN_ID_SHIFT 0 49462306a36Sopenharmony_ci#define FCOE_KWQE_CONN_ENABLE_DISABLE_CFI (0x1<<12) 49562306a36Sopenharmony_ci#define FCOE_KWQE_CONN_ENABLE_DISABLE_CFI_SHIFT 12 49662306a36Sopenharmony_ci#define FCOE_KWQE_CONN_ENABLE_DISABLE_PRIORITY (0x7<<13) 49762306a36Sopenharmony_ci#define FCOE_KWQE_CONN_ENABLE_DISABLE_PRIORITY_SHIFT 13 49862306a36Sopenharmony_ci u8 dst_mac_addr_lo[2]; 49962306a36Sopenharmony_ci u8 dst_mac_addr_mid[2]; 50062306a36Sopenharmony_ci u8 dst_mac_addr_hi[2]; 50162306a36Sopenharmony_ci __le16 reserved1; 50262306a36Sopenharmony_ci u8 s_id[3]; 50362306a36Sopenharmony_ci u8 vlan_flag; 50462306a36Sopenharmony_ci u8 d_id[3]; 50562306a36Sopenharmony_ci u8 reserved3; 50662306a36Sopenharmony_ci __le32 context_id; 50762306a36Sopenharmony_ci __le32 conn_id; 50862306a36Sopenharmony_ci __le32 reserved4; 50962306a36Sopenharmony_ci}; 51062306a36Sopenharmony_ci 51162306a36Sopenharmony_ci/* 51262306a36Sopenharmony_ci * FCoE connection destroy request $$KEEP_ENDIANNESS$$ 51362306a36Sopenharmony_ci */ 51462306a36Sopenharmony_cistruct fcoe_kwqe_conn_destroy { 51562306a36Sopenharmony_ci __le16 reserved0; 51662306a36Sopenharmony_ci struct fcoe_kwqe_header hdr; 51762306a36Sopenharmony_ci __le32 context_id; 51862306a36Sopenharmony_ci __le32 conn_id; 51962306a36Sopenharmony_ci __le32 reserved1[5]; 52062306a36Sopenharmony_ci}; 52162306a36Sopenharmony_ci 52262306a36Sopenharmony_ci/* 52362306a36Sopenharmony_ci * FCoe destroy request $$KEEP_ENDIANNESS$$ 52462306a36Sopenharmony_ci */ 52562306a36Sopenharmony_cistruct fcoe_kwqe_destroy { 52662306a36Sopenharmony_ci __le16 reserved0; 52762306a36Sopenharmony_ci struct fcoe_kwqe_header hdr; 52862306a36Sopenharmony_ci __le32 reserved1[7]; 52962306a36Sopenharmony_ci}; 53062306a36Sopenharmony_ci 53162306a36Sopenharmony_ci/* 53262306a36Sopenharmony_ci * FCoe statistics request $$KEEP_ENDIANNESS$$ 53362306a36Sopenharmony_ci */ 53462306a36Sopenharmony_cistruct fcoe_kwqe_stat { 53562306a36Sopenharmony_ci __le16 reserved0; 53662306a36Sopenharmony_ci struct fcoe_kwqe_header hdr; 53762306a36Sopenharmony_ci __le32 stat_params_addr_lo; 53862306a36Sopenharmony_ci __le32 stat_params_addr_hi; 53962306a36Sopenharmony_ci __le32 reserved1[5]; 54062306a36Sopenharmony_ci}; 54162306a36Sopenharmony_ci 54262306a36Sopenharmony_ci/* 54362306a36Sopenharmony_ci * FCoE KWQ WQE $$KEEP_ENDIANNESS$$ 54462306a36Sopenharmony_ci */ 54562306a36Sopenharmony_ciunion fcoe_kwqe { 54662306a36Sopenharmony_ci struct fcoe_kwqe_init1 init1; 54762306a36Sopenharmony_ci struct fcoe_kwqe_init2 init2; 54862306a36Sopenharmony_ci struct fcoe_kwqe_init3 init3; 54962306a36Sopenharmony_ci struct fcoe_kwqe_conn_offload1 conn_offload1; 55062306a36Sopenharmony_ci struct fcoe_kwqe_conn_offload2 conn_offload2; 55162306a36Sopenharmony_ci struct fcoe_kwqe_conn_offload3 conn_offload3; 55262306a36Sopenharmony_ci struct fcoe_kwqe_conn_offload4 conn_offload4; 55362306a36Sopenharmony_ci struct fcoe_kwqe_conn_enable_disable conn_enable_disable; 55462306a36Sopenharmony_ci struct fcoe_kwqe_conn_destroy conn_destroy; 55562306a36Sopenharmony_ci struct fcoe_kwqe_destroy destroy; 55662306a36Sopenharmony_ci struct fcoe_kwqe_stat statistics; 55762306a36Sopenharmony_ci}; 55862306a36Sopenharmony_ci 55962306a36Sopenharmony_ci 56062306a36Sopenharmony_ci 56162306a36Sopenharmony_ci 56262306a36Sopenharmony_ci 56362306a36Sopenharmony_ci 56462306a36Sopenharmony_ci 56562306a36Sopenharmony_ci 56662306a36Sopenharmony_ci 56762306a36Sopenharmony_ci 56862306a36Sopenharmony_ci 56962306a36Sopenharmony_ci 57062306a36Sopenharmony_ci 57162306a36Sopenharmony_ci 57262306a36Sopenharmony_ci 57362306a36Sopenharmony_ci 57462306a36Sopenharmony_ci/* 57562306a36Sopenharmony_ci * TX SGL context $$KEEP_ENDIANNESS$$ 57662306a36Sopenharmony_ci */ 57762306a36Sopenharmony_ciunion fcoe_sgl_union_ctx { 57862306a36Sopenharmony_ci struct fcoe_cached_sge_ctx cached_sge; 57962306a36Sopenharmony_ci struct fcoe_ext_mul_sges_ctx sgl; 58062306a36Sopenharmony_ci __le32 opaque[5]; 58162306a36Sopenharmony_ci}; 58262306a36Sopenharmony_ci 58362306a36Sopenharmony_ci/* 58462306a36Sopenharmony_ci * Data-In/ELS/BLS information $$KEEP_ENDIANNESS$$ 58562306a36Sopenharmony_ci */ 58662306a36Sopenharmony_cistruct fcoe_read_flow_info { 58762306a36Sopenharmony_ci union fcoe_sgl_union_ctx sgl_ctx; 58862306a36Sopenharmony_ci __le32 rsrv0[3]; 58962306a36Sopenharmony_ci}; 59062306a36Sopenharmony_ci 59162306a36Sopenharmony_ci 59262306a36Sopenharmony_ci/* 59362306a36Sopenharmony_ci * Fcoe stat context $$KEEP_ENDIANNESS$$ 59462306a36Sopenharmony_ci */ 59562306a36Sopenharmony_cistruct fcoe_s_stat_ctx { 59662306a36Sopenharmony_ci u8 flags; 59762306a36Sopenharmony_ci#define FCOE_S_STAT_CTX_ACTIVE (0x1<<0) 59862306a36Sopenharmony_ci#define FCOE_S_STAT_CTX_ACTIVE_SHIFT 0 59962306a36Sopenharmony_ci#define FCOE_S_STAT_CTX_ACK_ABORT_SEQ_COND (0x1<<1) 60062306a36Sopenharmony_ci#define FCOE_S_STAT_CTX_ACK_ABORT_SEQ_COND_SHIFT 1 60162306a36Sopenharmony_ci#define FCOE_S_STAT_CTX_ABTS_PERFORMED (0x1<<2) 60262306a36Sopenharmony_ci#define FCOE_S_STAT_CTX_ABTS_PERFORMED_SHIFT 2 60362306a36Sopenharmony_ci#define FCOE_S_STAT_CTX_SEQ_TIMEOUT (0x1<<3) 60462306a36Sopenharmony_ci#define FCOE_S_STAT_CTX_SEQ_TIMEOUT_SHIFT 3 60562306a36Sopenharmony_ci#define FCOE_S_STAT_CTX_P_RJT (0x1<<4) 60662306a36Sopenharmony_ci#define FCOE_S_STAT_CTX_P_RJT_SHIFT 4 60762306a36Sopenharmony_ci#define FCOE_S_STAT_CTX_ACK_EOFT (0x1<<5) 60862306a36Sopenharmony_ci#define FCOE_S_STAT_CTX_ACK_EOFT_SHIFT 5 60962306a36Sopenharmony_ci#define FCOE_S_STAT_CTX_RSRV1 (0x3<<6) 61062306a36Sopenharmony_ci#define FCOE_S_STAT_CTX_RSRV1_SHIFT 6 61162306a36Sopenharmony_ci}; 61262306a36Sopenharmony_ci 61362306a36Sopenharmony_ci/* 61462306a36Sopenharmony_ci * Fcoe rx seq context $$KEEP_ENDIANNESS$$ 61562306a36Sopenharmony_ci */ 61662306a36Sopenharmony_cistruct fcoe_rx_seq_ctx { 61762306a36Sopenharmony_ci u8 seq_id; 61862306a36Sopenharmony_ci struct fcoe_s_stat_ctx s_stat; 61962306a36Sopenharmony_ci __le16 seq_cnt; 62062306a36Sopenharmony_ci __le32 low_exp_ro; 62162306a36Sopenharmony_ci __le32 high_exp_ro; 62262306a36Sopenharmony_ci}; 62362306a36Sopenharmony_ci 62462306a36Sopenharmony_ci 62562306a36Sopenharmony_ci/* 62662306a36Sopenharmony_ci * Fcoe rx_wr union context $$KEEP_ENDIANNESS$$ 62762306a36Sopenharmony_ci */ 62862306a36Sopenharmony_ciunion fcoe_rx_wr_union_ctx { 62962306a36Sopenharmony_ci struct fcoe_read_flow_info read_info; 63062306a36Sopenharmony_ci union fcoe_comp_flow_info comp_info; 63162306a36Sopenharmony_ci __le32 opaque[8]; 63262306a36Sopenharmony_ci}; 63362306a36Sopenharmony_ci 63462306a36Sopenharmony_ci 63562306a36Sopenharmony_ci 63662306a36Sopenharmony_ci/* 63762306a36Sopenharmony_ci * FCoE SQ element $$KEEP_ENDIANNESS$$ 63862306a36Sopenharmony_ci */ 63962306a36Sopenharmony_cistruct fcoe_sqe { 64062306a36Sopenharmony_ci __le16 wqe; 64162306a36Sopenharmony_ci#define FCOE_SQE_TASK_ID (0x7FFF<<0) 64262306a36Sopenharmony_ci#define FCOE_SQE_TASK_ID_SHIFT 0 64362306a36Sopenharmony_ci#define FCOE_SQE_TOGGLE_BIT (0x1<<15) 64462306a36Sopenharmony_ci#define FCOE_SQE_TOGGLE_BIT_SHIFT 15 64562306a36Sopenharmony_ci}; 64662306a36Sopenharmony_ci 64762306a36Sopenharmony_ci 64862306a36Sopenharmony_ci 64962306a36Sopenharmony_ci/* 65062306a36Sopenharmony_ci * 14 regs $$KEEP_ENDIANNESS$$ 65162306a36Sopenharmony_ci */ 65262306a36Sopenharmony_cistruct fcoe_tce_tx_only { 65362306a36Sopenharmony_ci union fcoe_sgl_union_ctx sgl_ctx; 65462306a36Sopenharmony_ci __le32 rsrv0; 65562306a36Sopenharmony_ci}; 65662306a36Sopenharmony_ci 65762306a36Sopenharmony_ci/* 65862306a36Sopenharmony_ci * 32 bytes (8 regs) used for TX only purposes $$KEEP_ENDIANNESS$$ 65962306a36Sopenharmony_ci */ 66062306a36Sopenharmony_ciunion fcoe_tx_wr_rx_rd_union_ctx { 66162306a36Sopenharmony_ci struct fcoe_fc_frame tx_frame; 66262306a36Sopenharmony_ci struct fcoe_fcp_cmd_payload fcp_cmd; 66362306a36Sopenharmony_ci struct fcoe_ext_cleanup_info cleanup; 66462306a36Sopenharmony_ci struct fcoe_ext_abts_info abts; 66562306a36Sopenharmony_ci struct fcoe_ext_fw_tx_seq_ctx tx_seq; 66662306a36Sopenharmony_ci __le32 opaque[8]; 66762306a36Sopenharmony_ci}; 66862306a36Sopenharmony_ci 66962306a36Sopenharmony_ci/* 67062306a36Sopenharmony_ci * tce_tx_wr_rx_rd_const $$KEEP_ENDIANNESS$$ 67162306a36Sopenharmony_ci */ 67262306a36Sopenharmony_cistruct fcoe_tce_tx_wr_rx_rd_const { 67362306a36Sopenharmony_ci u8 init_flags; 67462306a36Sopenharmony_ci#define FCOE_TCE_TX_WR_RX_RD_CONST_TASK_TYPE (0x7<<0) 67562306a36Sopenharmony_ci#define FCOE_TCE_TX_WR_RX_RD_CONST_TASK_TYPE_SHIFT 0 67662306a36Sopenharmony_ci#define FCOE_TCE_TX_WR_RX_RD_CONST_DEV_TYPE (0x1<<3) 67762306a36Sopenharmony_ci#define FCOE_TCE_TX_WR_RX_RD_CONST_DEV_TYPE_SHIFT 3 67862306a36Sopenharmony_ci#define FCOE_TCE_TX_WR_RX_RD_CONST_CLASS_TYPE (0x1<<4) 67962306a36Sopenharmony_ci#define FCOE_TCE_TX_WR_RX_RD_CONST_CLASS_TYPE_SHIFT 4 68062306a36Sopenharmony_ci#define FCOE_TCE_TX_WR_RX_RD_CONST_CACHED_SGE (0x3<<5) 68162306a36Sopenharmony_ci#define FCOE_TCE_TX_WR_RX_RD_CONST_CACHED_SGE_SHIFT 5 68262306a36Sopenharmony_ci#define FCOE_TCE_TX_WR_RX_RD_CONST_SUPPORT_REC_TOV (0x1<<7) 68362306a36Sopenharmony_ci#define FCOE_TCE_TX_WR_RX_RD_CONST_SUPPORT_REC_TOV_SHIFT 7 68462306a36Sopenharmony_ci u8 tx_flags; 68562306a36Sopenharmony_ci#define FCOE_TCE_TX_WR_RX_RD_CONST_TX_VALID (0x1<<0) 68662306a36Sopenharmony_ci#define FCOE_TCE_TX_WR_RX_RD_CONST_TX_VALID_SHIFT 0 68762306a36Sopenharmony_ci#define FCOE_TCE_TX_WR_RX_RD_CONST_TX_STATE (0xF<<1) 68862306a36Sopenharmony_ci#define FCOE_TCE_TX_WR_RX_RD_CONST_TX_STATE_SHIFT 1 68962306a36Sopenharmony_ci#define FCOE_TCE_TX_WR_RX_RD_CONST_RSRV1 (0x1<<5) 69062306a36Sopenharmony_ci#define FCOE_TCE_TX_WR_RX_RD_CONST_RSRV1_SHIFT 5 69162306a36Sopenharmony_ci#define FCOE_TCE_TX_WR_RX_RD_CONST_TX_SEQ_INIT (0x1<<6) 69262306a36Sopenharmony_ci#define FCOE_TCE_TX_WR_RX_RD_CONST_TX_SEQ_INIT_SHIFT 6 69362306a36Sopenharmony_ci#define FCOE_TCE_TX_WR_RX_RD_CONST_RSRV2 (0x1<<7) 69462306a36Sopenharmony_ci#define FCOE_TCE_TX_WR_RX_RD_CONST_RSRV2_SHIFT 7 69562306a36Sopenharmony_ci __le16 rsrv3; 69662306a36Sopenharmony_ci __le32 verify_tx_seq; 69762306a36Sopenharmony_ci}; 69862306a36Sopenharmony_ci 69962306a36Sopenharmony_ci/* 70062306a36Sopenharmony_ci * tce_tx_wr_rx_rd $$KEEP_ENDIANNESS$$ 70162306a36Sopenharmony_ci */ 70262306a36Sopenharmony_cistruct fcoe_tce_tx_wr_rx_rd { 70362306a36Sopenharmony_ci union fcoe_tx_wr_rx_rd_union_ctx union_ctx; 70462306a36Sopenharmony_ci struct fcoe_tce_tx_wr_rx_rd_const const_ctx; 70562306a36Sopenharmony_ci}; 70662306a36Sopenharmony_ci 70762306a36Sopenharmony_ci/* 70862306a36Sopenharmony_ci * tce_rx_wr_tx_rd_const $$KEEP_ENDIANNESS$$ 70962306a36Sopenharmony_ci */ 71062306a36Sopenharmony_cistruct fcoe_tce_rx_wr_tx_rd_const { 71162306a36Sopenharmony_ci __le32 data_2_trns; 71262306a36Sopenharmony_ci __le32 init_flags; 71362306a36Sopenharmony_ci#define FCOE_TCE_RX_WR_TX_RD_CONST_CID (0xFFFFFF<<0) 71462306a36Sopenharmony_ci#define FCOE_TCE_RX_WR_TX_RD_CONST_CID_SHIFT 0 71562306a36Sopenharmony_ci#define FCOE_TCE_RX_WR_TX_RD_CONST_RSRV0 (0xFF<<24) 71662306a36Sopenharmony_ci#define FCOE_TCE_RX_WR_TX_RD_CONST_RSRV0_SHIFT 24 71762306a36Sopenharmony_ci}; 71862306a36Sopenharmony_ci 71962306a36Sopenharmony_ci/* 72062306a36Sopenharmony_ci * tce_rx_wr_tx_rd_var $$KEEP_ENDIANNESS$$ 72162306a36Sopenharmony_ci */ 72262306a36Sopenharmony_cistruct fcoe_tce_rx_wr_tx_rd_var { 72362306a36Sopenharmony_ci __le16 rx_flags; 72462306a36Sopenharmony_ci#define FCOE_TCE_RX_WR_TX_RD_VAR_RSRV1 (0xF<<0) 72562306a36Sopenharmony_ci#define FCOE_TCE_RX_WR_TX_RD_VAR_RSRV1_SHIFT 0 72662306a36Sopenharmony_ci#define FCOE_TCE_RX_WR_TX_RD_VAR_NUM_RQ_WQE (0x7<<4) 72762306a36Sopenharmony_ci#define FCOE_TCE_RX_WR_TX_RD_VAR_NUM_RQ_WQE_SHIFT 4 72862306a36Sopenharmony_ci#define FCOE_TCE_RX_WR_TX_RD_VAR_CONF_REQ (0x1<<7) 72962306a36Sopenharmony_ci#define FCOE_TCE_RX_WR_TX_RD_VAR_CONF_REQ_SHIFT 7 73062306a36Sopenharmony_ci#define FCOE_TCE_RX_WR_TX_RD_VAR_RX_STATE (0xF<<8) 73162306a36Sopenharmony_ci#define FCOE_TCE_RX_WR_TX_RD_VAR_RX_STATE_SHIFT 8 73262306a36Sopenharmony_ci#define FCOE_TCE_RX_WR_TX_RD_VAR_EXP_FIRST_FRAME (0x1<<12) 73362306a36Sopenharmony_ci#define FCOE_TCE_RX_WR_TX_RD_VAR_EXP_FIRST_FRAME_SHIFT 12 73462306a36Sopenharmony_ci#define FCOE_TCE_RX_WR_TX_RD_VAR_RX_SEQ_INIT (0x1<<13) 73562306a36Sopenharmony_ci#define FCOE_TCE_RX_WR_TX_RD_VAR_RX_SEQ_INIT_SHIFT 13 73662306a36Sopenharmony_ci#define FCOE_TCE_RX_WR_TX_RD_VAR_RSRV2 (0x1<<14) 73762306a36Sopenharmony_ci#define FCOE_TCE_RX_WR_TX_RD_VAR_RSRV2_SHIFT 14 73862306a36Sopenharmony_ci#define FCOE_TCE_RX_WR_TX_RD_VAR_RX_VALID (0x1<<15) 73962306a36Sopenharmony_ci#define FCOE_TCE_RX_WR_TX_RD_VAR_RX_VALID_SHIFT 15 74062306a36Sopenharmony_ci __le16 rx_id; 74162306a36Sopenharmony_ci struct fcoe_fcp_xfr_rdy_payload fcp_xfr_rdy; 74262306a36Sopenharmony_ci}; 74362306a36Sopenharmony_ci 74462306a36Sopenharmony_ci/* 74562306a36Sopenharmony_ci * tce_rx_wr_tx_rd $$KEEP_ENDIANNESS$$ 74662306a36Sopenharmony_ci */ 74762306a36Sopenharmony_cistruct fcoe_tce_rx_wr_tx_rd { 74862306a36Sopenharmony_ci struct fcoe_tce_rx_wr_tx_rd_const const_ctx; 74962306a36Sopenharmony_ci struct fcoe_tce_rx_wr_tx_rd_var var_ctx; 75062306a36Sopenharmony_ci}; 75162306a36Sopenharmony_ci 75262306a36Sopenharmony_ci/* 75362306a36Sopenharmony_ci * tce_rx_only $$KEEP_ENDIANNESS$$ 75462306a36Sopenharmony_ci */ 75562306a36Sopenharmony_cistruct fcoe_tce_rx_only { 75662306a36Sopenharmony_ci struct fcoe_rx_seq_ctx rx_seq_ctx; 75762306a36Sopenharmony_ci union fcoe_rx_wr_union_ctx union_ctx; 75862306a36Sopenharmony_ci}; 75962306a36Sopenharmony_ci 76062306a36Sopenharmony_ci/* 76162306a36Sopenharmony_ci * task_ctx_entry $$KEEP_ENDIANNESS$$ 76262306a36Sopenharmony_ci */ 76362306a36Sopenharmony_cistruct fcoe_task_ctx_entry { 76462306a36Sopenharmony_ci struct fcoe_tce_tx_only txwr_only; 76562306a36Sopenharmony_ci struct fcoe_tce_tx_wr_rx_rd txwr_rxrd; 76662306a36Sopenharmony_ci struct fcoe_tce_rx_wr_tx_rd rxwr_txrd; 76762306a36Sopenharmony_ci struct fcoe_tce_rx_only rxwr_only; 76862306a36Sopenharmony_ci}; 76962306a36Sopenharmony_ci 77062306a36Sopenharmony_ci 77162306a36Sopenharmony_ci 77262306a36Sopenharmony_ci 77362306a36Sopenharmony_ci 77462306a36Sopenharmony_ci 77562306a36Sopenharmony_ci 77662306a36Sopenharmony_ci 77762306a36Sopenharmony_ci 77862306a36Sopenharmony_ci 77962306a36Sopenharmony_ci/* 78062306a36Sopenharmony_ci * FCoE XFRQ element $$KEEP_ENDIANNESS$$ 78162306a36Sopenharmony_ci */ 78262306a36Sopenharmony_cistruct fcoe_xfrqe { 78362306a36Sopenharmony_ci __le16 wqe; 78462306a36Sopenharmony_ci#define FCOE_XFRQE_TASK_ID (0x7FFF<<0) 78562306a36Sopenharmony_ci#define FCOE_XFRQE_TASK_ID_SHIFT 0 78662306a36Sopenharmony_ci#define FCOE_XFRQE_TOGGLE_BIT (0x1<<15) 78762306a36Sopenharmony_ci#define FCOE_XFRQE_TOGGLE_BIT_SHIFT 15 78862306a36Sopenharmony_ci}; 78962306a36Sopenharmony_ci 79062306a36Sopenharmony_ci 79162306a36Sopenharmony_ci/* 79262306a36Sopenharmony_ci * fcoe rx doorbell message sent to the chip $$KEEP_ENDIANNESS$$ 79362306a36Sopenharmony_ci */ 79462306a36Sopenharmony_cistruct b577xx_fcoe_rx_doorbell { 79562306a36Sopenharmony_ci struct b577xx_doorbell_hdr hdr; 79662306a36Sopenharmony_ci u8 params; 79762306a36Sopenharmony_ci#define B577XX_FCOE_RX_DOORBELL_NEGATIVE_ARM (0x1F<<0) 79862306a36Sopenharmony_ci#define B577XX_FCOE_RX_DOORBELL_NEGATIVE_ARM_SHIFT 0 79962306a36Sopenharmony_ci#define B577XX_FCOE_RX_DOORBELL_OPCODE (0x7<<5) 80062306a36Sopenharmony_ci#define B577XX_FCOE_RX_DOORBELL_OPCODE_SHIFT 5 80162306a36Sopenharmony_ci __le16 doorbell_cq_cons; 80262306a36Sopenharmony_ci}; 80362306a36Sopenharmony_ci 80462306a36Sopenharmony_ci 80562306a36Sopenharmony_ci/* 80662306a36Sopenharmony_ci * FCoE CONFQ element $$KEEP_ENDIANNESS$$ 80762306a36Sopenharmony_ci */ 80862306a36Sopenharmony_cistruct fcoe_confqe { 80962306a36Sopenharmony_ci __le16 ox_id; 81062306a36Sopenharmony_ci __le16 rx_id; 81162306a36Sopenharmony_ci __le32 param; 81262306a36Sopenharmony_ci}; 81362306a36Sopenharmony_ci 81462306a36Sopenharmony_ci 81562306a36Sopenharmony_ci/* 81662306a36Sopenharmony_ci * FCoE connection data base 81762306a36Sopenharmony_ci */ 81862306a36Sopenharmony_cistruct fcoe_conn_db { 81962306a36Sopenharmony_ci#if defined(__BIG_ENDIAN) 82062306a36Sopenharmony_ci u16 rsrv0; 82162306a36Sopenharmony_ci u16 rq_prod; 82262306a36Sopenharmony_ci#elif defined(__LITTLE_ENDIAN) 82362306a36Sopenharmony_ci u16 rq_prod; 82462306a36Sopenharmony_ci u16 rsrv0; 82562306a36Sopenharmony_ci#endif 82662306a36Sopenharmony_ci u32 rsrv1; 82762306a36Sopenharmony_ci struct regpair cq_arm; 82862306a36Sopenharmony_ci}; 82962306a36Sopenharmony_ci 83062306a36Sopenharmony_ci 83162306a36Sopenharmony_ci/* 83262306a36Sopenharmony_ci * FCoE CQ element $$KEEP_ENDIANNESS$$ 83362306a36Sopenharmony_ci */ 83462306a36Sopenharmony_cistruct fcoe_cqe { 83562306a36Sopenharmony_ci __le16 wqe; 83662306a36Sopenharmony_ci#define FCOE_CQE_CQE_INFO (0x3FFF<<0) 83762306a36Sopenharmony_ci#define FCOE_CQE_CQE_INFO_SHIFT 0 83862306a36Sopenharmony_ci#define FCOE_CQE_CQE_TYPE (0x1<<14) 83962306a36Sopenharmony_ci#define FCOE_CQE_CQE_TYPE_SHIFT 14 84062306a36Sopenharmony_ci#define FCOE_CQE_TOGGLE_BIT (0x1<<15) 84162306a36Sopenharmony_ci#define FCOE_CQE_TOGGLE_BIT_SHIFT 15 84262306a36Sopenharmony_ci}; 84362306a36Sopenharmony_ci 84462306a36Sopenharmony_ci 84562306a36Sopenharmony_ci/* 84662306a36Sopenharmony_ci * FCoE error/warning reporting entry $$KEEP_ENDIANNESS$$ 84762306a36Sopenharmony_ci */ 84862306a36Sopenharmony_cistruct fcoe_partial_err_report_entry { 84962306a36Sopenharmony_ci __le32 err_warn_bitmap_lo; 85062306a36Sopenharmony_ci __le32 err_warn_bitmap_hi; 85162306a36Sopenharmony_ci __le32 tx_buf_off; 85262306a36Sopenharmony_ci __le32 rx_buf_off; 85362306a36Sopenharmony_ci}; 85462306a36Sopenharmony_ci 85562306a36Sopenharmony_ci/* 85662306a36Sopenharmony_ci * FCoE error/warning reporting entry $$KEEP_ENDIANNESS$$ 85762306a36Sopenharmony_ci */ 85862306a36Sopenharmony_cistruct fcoe_err_report_entry { 85962306a36Sopenharmony_ci struct fcoe_partial_err_report_entry data; 86062306a36Sopenharmony_ci struct fcoe_fc_hdr fc_hdr; 86162306a36Sopenharmony_ci}; 86262306a36Sopenharmony_ci 86362306a36Sopenharmony_ci 86462306a36Sopenharmony_ci/* 86562306a36Sopenharmony_ci * FCoE hash table entry (32 bytes) $$KEEP_ENDIANNESS$$ 86662306a36Sopenharmony_ci */ 86762306a36Sopenharmony_cistruct fcoe_hash_table_entry { 86862306a36Sopenharmony_ci u8 s_id_0; 86962306a36Sopenharmony_ci u8 s_id_1; 87062306a36Sopenharmony_ci u8 s_id_2; 87162306a36Sopenharmony_ci u8 d_id_0; 87262306a36Sopenharmony_ci u8 d_id_1; 87362306a36Sopenharmony_ci u8 d_id_2; 87462306a36Sopenharmony_ci __le16 dst_mac_addr_hi; 87562306a36Sopenharmony_ci __le16 dst_mac_addr_mid; 87662306a36Sopenharmony_ci __le16 dst_mac_addr_lo; 87762306a36Sopenharmony_ci __le16 src_mac_addr_hi; 87862306a36Sopenharmony_ci __le16 vlan_id; 87962306a36Sopenharmony_ci __le16 src_mac_addr_lo; 88062306a36Sopenharmony_ci __le16 src_mac_addr_mid; 88162306a36Sopenharmony_ci u8 vlan_flag; 88262306a36Sopenharmony_ci u8 reserved0; 88362306a36Sopenharmony_ci __le16 reserved1; 88462306a36Sopenharmony_ci __le32 reserved2; 88562306a36Sopenharmony_ci __le32 field_id; 88662306a36Sopenharmony_ci#define FCOE_HASH_TABLE_ENTRY_CID (0xFFFFFF<<0) 88762306a36Sopenharmony_ci#define FCOE_HASH_TABLE_ENTRY_CID_SHIFT 0 88862306a36Sopenharmony_ci#define FCOE_HASH_TABLE_ENTRY_RESERVED3 (0x7F<<24) 88962306a36Sopenharmony_ci#define FCOE_HASH_TABLE_ENTRY_RESERVED3_SHIFT 24 89062306a36Sopenharmony_ci#define FCOE_HASH_TABLE_ENTRY_VALID (0x1<<31) 89162306a36Sopenharmony_ci#define FCOE_HASH_TABLE_ENTRY_VALID_SHIFT 31 89262306a36Sopenharmony_ci}; 89362306a36Sopenharmony_ci 89462306a36Sopenharmony_ci 89562306a36Sopenharmony_ci/* 89662306a36Sopenharmony_ci * FCoE LCQ element $$KEEP_ENDIANNESS$$ 89762306a36Sopenharmony_ci */ 89862306a36Sopenharmony_cistruct fcoe_lcqe { 89962306a36Sopenharmony_ci __le32 wqe; 90062306a36Sopenharmony_ci#define FCOE_LCQE_TASK_ID (0xFFFF<<0) 90162306a36Sopenharmony_ci#define FCOE_LCQE_TASK_ID_SHIFT 0 90262306a36Sopenharmony_ci#define FCOE_LCQE_LCQE_TYPE (0xFF<<16) 90362306a36Sopenharmony_ci#define FCOE_LCQE_LCQE_TYPE_SHIFT 16 90462306a36Sopenharmony_ci#define FCOE_LCQE_RESERVED (0xFF<<24) 90562306a36Sopenharmony_ci#define FCOE_LCQE_RESERVED_SHIFT 24 90662306a36Sopenharmony_ci}; 90762306a36Sopenharmony_ci 90862306a36Sopenharmony_ci 90962306a36Sopenharmony_ci 91062306a36Sopenharmony_ci/* 91162306a36Sopenharmony_ci * FCoE pending work request CQE $$KEEP_ENDIANNESS$$ 91262306a36Sopenharmony_ci */ 91362306a36Sopenharmony_cistruct fcoe_pend_wq_cqe { 91462306a36Sopenharmony_ci __le16 wqe; 91562306a36Sopenharmony_ci#define FCOE_PEND_WQ_CQE_TASK_ID (0x3FFF<<0) 91662306a36Sopenharmony_ci#define FCOE_PEND_WQ_CQE_TASK_ID_SHIFT 0 91762306a36Sopenharmony_ci#define FCOE_PEND_WQ_CQE_CQE_TYPE (0x1<<14) 91862306a36Sopenharmony_ci#define FCOE_PEND_WQ_CQE_CQE_TYPE_SHIFT 14 91962306a36Sopenharmony_ci#define FCOE_PEND_WQ_CQE_TOGGLE_BIT (0x1<<15) 92062306a36Sopenharmony_ci#define FCOE_PEND_WQ_CQE_TOGGLE_BIT_SHIFT 15 92162306a36Sopenharmony_ci}; 92262306a36Sopenharmony_ci 92362306a36Sopenharmony_ci 92462306a36Sopenharmony_ci/* 92562306a36Sopenharmony_ci * FCoE RX statistics parameters section#0 $$KEEP_ENDIANNESS$$ 92662306a36Sopenharmony_ci */ 92762306a36Sopenharmony_cistruct fcoe_rx_stat_params_section0 { 92862306a36Sopenharmony_ci __le32 fcoe_rx_pkt_cnt; 92962306a36Sopenharmony_ci __le32 fcoe_rx_byte_cnt; 93062306a36Sopenharmony_ci}; 93162306a36Sopenharmony_ci 93262306a36Sopenharmony_ci 93362306a36Sopenharmony_ci/* 93462306a36Sopenharmony_ci * FCoE RX statistics parameters section#1 $$KEEP_ENDIANNESS$$ 93562306a36Sopenharmony_ci */ 93662306a36Sopenharmony_cistruct fcoe_rx_stat_params_section1 { 93762306a36Sopenharmony_ci __le32 fcoe_ver_cnt; 93862306a36Sopenharmony_ci __le32 fcoe_rx_drop_pkt_cnt; 93962306a36Sopenharmony_ci}; 94062306a36Sopenharmony_ci 94162306a36Sopenharmony_ci 94262306a36Sopenharmony_ci/* 94362306a36Sopenharmony_ci * FCoE RX statistics parameters section#2 $$KEEP_ENDIANNESS$$ 94462306a36Sopenharmony_ci */ 94562306a36Sopenharmony_cistruct fcoe_rx_stat_params_section2 { 94662306a36Sopenharmony_ci __le32 fc_crc_cnt; 94762306a36Sopenharmony_ci __le32 eofa_del_cnt; 94862306a36Sopenharmony_ci __le32 miss_frame_cnt; 94962306a36Sopenharmony_ci __le32 seq_timeout_cnt; 95062306a36Sopenharmony_ci __le32 drop_seq_cnt; 95162306a36Sopenharmony_ci __le32 fcoe_rx_drop_pkt_cnt; 95262306a36Sopenharmony_ci __le32 fcp_rx_pkt_cnt; 95362306a36Sopenharmony_ci __le32 reserved0; 95462306a36Sopenharmony_ci}; 95562306a36Sopenharmony_ci 95662306a36Sopenharmony_ci 95762306a36Sopenharmony_ci/* 95862306a36Sopenharmony_ci * FCoE TX statistics parameters $$KEEP_ENDIANNESS$$ 95962306a36Sopenharmony_ci */ 96062306a36Sopenharmony_cistruct fcoe_tx_stat_params { 96162306a36Sopenharmony_ci __le32 fcoe_tx_pkt_cnt; 96262306a36Sopenharmony_ci __le32 fcoe_tx_byte_cnt; 96362306a36Sopenharmony_ci __le32 fcp_tx_pkt_cnt; 96462306a36Sopenharmony_ci __le32 reserved0; 96562306a36Sopenharmony_ci}; 96662306a36Sopenharmony_ci 96762306a36Sopenharmony_ci/* 96862306a36Sopenharmony_ci * FCoE statistics parameters $$KEEP_ENDIANNESS$$ 96962306a36Sopenharmony_ci */ 97062306a36Sopenharmony_cistruct fcoe_statistics_params { 97162306a36Sopenharmony_ci struct fcoe_tx_stat_params tx_stat; 97262306a36Sopenharmony_ci struct fcoe_rx_stat_params_section0 rx_stat0; 97362306a36Sopenharmony_ci struct fcoe_rx_stat_params_section1 rx_stat1; 97462306a36Sopenharmony_ci struct fcoe_rx_stat_params_section2 rx_stat2; 97562306a36Sopenharmony_ci}; 97662306a36Sopenharmony_ci 97762306a36Sopenharmony_ci 97862306a36Sopenharmony_ci/* 97962306a36Sopenharmony_ci * FCoE t2 hash table entry (64 bytes) $$KEEP_ENDIANNESS$$ 98062306a36Sopenharmony_ci */ 98162306a36Sopenharmony_cistruct fcoe_t2_hash_table_entry { 98262306a36Sopenharmony_ci struct fcoe_hash_table_entry data; 98362306a36Sopenharmony_ci struct regpair next; 98462306a36Sopenharmony_ci struct regpair reserved0[3]; 98562306a36Sopenharmony_ci}; 98662306a36Sopenharmony_ci 98762306a36Sopenharmony_ci 98862306a36Sopenharmony_ci 98962306a36Sopenharmony_ci/* 99062306a36Sopenharmony_ci * FCoE unsolicited CQE $$KEEP_ENDIANNESS$$ 99162306a36Sopenharmony_ci */ 99262306a36Sopenharmony_cistruct fcoe_unsolicited_cqe { 99362306a36Sopenharmony_ci __le16 wqe; 99462306a36Sopenharmony_ci#define FCOE_UNSOLICITED_CQE_SUBTYPE (0x3<<0) 99562306a36Sopenharmony_ci#define FCOE_UNSOLICITED_CQE_SUBTYPE_SHIFT 0 99662306a36Sopenharmony_ci#define FCOE_UNSOLICITED_CQE_PKT_LEN (0xFFF<<2) 99762306a36Sopenharmony_ci#define FCOE_UNSOLICITED_CQE_PKT_LEN_SHIFT 2 99862306a36Sopenharmony_ci#define FCOE_UNSOLICITED_CQE_CQE_TYPE (0x1<<14) 99962306a36Sopenharmony_ci#define FCOE_UNSOLICITED_CQE_CQE_TYPE_SHIFT 14 100062306a36Sopenharmony_ci#define FCOE_UNSOLICITED_CQE_TOGGLE_BIT (0x1<<15) 100162306a36Sopenharmony_ci#define FCOE_UNSOLICITED_CQE_TOGGLE_BIT_SHIFT 15 100262306a36Sopenharmony_ci}; 100362306a36Sopenharmony_ci 100462306a36Sopenharmony_ci#endif /* __57XX_FCOE_HSI_LINUX_LE__ */ 1005