Skip to content

Commit 8e5aa61

Browse files
committed
Merge branch 'qed-Utilize-FW-8.42.2.0'
Michal Kalderon says: ==================== qed*: Utilize FW 8.42.2.0 This FW contains several fixes and features, main ones listed below. We have taken into consideration past comments on previous FW versions that were uploaded and tried to separate this one to smaller patches to ease review. - RoCE - SRIOV support - Fixes in following flows: - latency optimization flow for inline WQEs - iwarp OOO packed DDPs flow - tx-dif workaround calculations flow - XRC-SRQ exceed cache num - iSCSI - Fixes: - iSCSI TCP out-of-order handling. - iscsi retransmit flow - Fcoe - Fixes: - upload + cleanup flows - Debug - Better handling of extracting data during traffic - ILT Dump -> dumping host memory used by chip - MDUMP -> collect debug data on system crash and extract after reboot Patches prefixed with FW 8.42.2.0 are required to work with binary 8.42.2.0 FW where as the rest are FW related but do not require the binary. Changes from V2 --------------- - Move FW version to the start of the series to maintain minimal compatibility - Fix some kbuild errors: - frame size larger than 1024 (Queue Manager patch - remove redundant field from struct) - sparse warning on endianity (Dmae patch fix - wrong use of __le32 for field used only on host, should be u32) - static should be used for some functions (Debug feature ilt and mdump) Reported-by: kbuild test robot <[email protected]> Changes from V1 --------------- - Remove epoch + kernel version from device debug dump - don't bump driver version ==================== Signed-off-by: David S. Miller <[email protected]>
2 parents 3d4864b + 2d22bc8 commit 8e5aa61

30 files changed

+4324
-4151
lines changed

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

Lines changed: 56 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,8 @@ enum qed_resources {
253253
QED_VLAN,
254254
QED_RDMA_CNQ_RAM,
255255
QED_ILT,
256-
QED_LL2_QUEUE,
256+
QED_LL2_RAM_QUEUE,
257+
QED_LL2_CTX_QUEUE,
257258
QED_CMDQS_CQS,
258259
QED_RDMA_STATS_QUEUE,
259260
QED_BDQ,
@@ -461,6 +462,8 @@ struct qed_fw_data {
461462
const u8 *modes_tree_buf;
462463
union init_op *init_ops;
463464
const u32 *arr_data;
465+
const u32 *fw_overlays;
466+
u32 fw_overlays_len;
464467
u32 init_ops_size;
465468
};
466469

@@ -531,6 +534,23 @@ struct qed_nvm_image_info {
531534
bool valid;
532535
};
533536

537+
enum qed_hsi_def_type {
538+
QED_HSI_DEF_MAX_NUM_VFS,
539+
QED_HSI_DEF_MAX_NUM_L2_QUEUES,
540+
QED_HSI_DEF_MAX_NUM_PORTS,
541+
QED_HSI_DEF_MAX_SB_PER_PATH,
542+
QED_HSI_DEF_MAX_NUM_PFS,
543+
QED_HSI_DEF_MAX_NUM_VPORTS,
544+
QED_HSI_DEF_NUM_ETH_RSS_ENGINE,
545+
QED_HSI_DEF_MAX_QM_TX_QUEUES,
546+
QED_HSI_DEF_NUM_PXP_ILT_RECORDS,
547+
QED_HSI_DEF_NUM_RDMA_STATISTIC_COUNTERS,
548+
QED_HSI_DEF_MAX_QM_GLOBAL_RLS,
549+
QED_HSI_DEF_MAX_PBF_CMD_LINES,
550+
QED_HSI_DEF_MAX_BTB_BLOCKS,
551+
QED_NUM_HSI_DEFS
552+
};
553+
534554
#define DRV_MODULE_VERSION \
535555
__stringify(QED_MAJOR_VERSION) "." \
536556
__stringify(QED_MINOR_VERSION) "." \
@@ -646,6 +666,7 @@ struct qed_hwfn {
646666

647667
struct dbg_tools_data dbg_info;
648668
void *dbg_user_info;
669+
struct virt_mem_desc dbg_arrays[MAX_BIN_DBG_BUFFER_TYPE];
649670

650671
/* PWM region specific data */
651672
u16 wid_count;
@@ -668,6 +689,7 @@ struct qed_hwfn {
668689
/* Nvm images number and attributes */
669690
struct qed_nvm_image_info nvm_info;
670691

692+
struct phys_mem_desc *fw_overlay_mem;
671693
struct qed_ptt *p_arfs_ptt;
672694

673695
struct qed_simd_fp_handler simd_proto_handler[64];
@@ -796,8 +818,8 @@ struct qed_dev {
796818
u8 cache_shift;
797819

798820
/* Init */
799-
const struct iro *iro_arr;
800-
#define IRO (p_hwfn->cdev->iro_arr)
821+
const u32 *iro_arr;
822+
#define IRO ((const struct iro *)p_hwfn->cdev->iro_arr)
801823

802824
/* HW functions */
803825
u8 num_hwfns;
@@ -856,6 +878,8 @@ struct qed_dev {
856878
struct qed_cb_ll2_info *ll2;
857879
u8 ll2_mac_address[ETH_ALEN];
858880
#endif
881+
struct qed_dbg_feature dbg_features[DBG_FEATURE_NUM];
882+
bool disable_ilt_dump;
859883
DECLARE_HASHTABLE(connections, 10);
860884
const struct firmware *firmware;
861885

@@ -868,16 +892,35 @@ struct qed_dev {
868892
bool iwarp_cmt;
869893
};
870894

871-
#define NUM_OF_VFS(dev) (QED_IS_BB(dev) ? MAX_NUM_VFS_BB \
872-
: MAX_NUM_VFS_K2)
873-
#define NUM_OF_L2_QUEUES(dev) (QED_IS_BB(dev) ? MAX_NUM_L2_QUEUES_BB \
874-
: MAX_NUM_L2_QUEUES_K2)
875-
#define NUM_OF_PORTS(dev) (QED_IS_BB(dev) ? MAX_NUM_PORTS_BB \
876-
: MAX_NUM_PORTS_K2)
877-
#define NUM_OF_SBS(dev) (QED_IS_BB(dev) ? MAX_SB_PER_PATH_BB \
878-
: MAX_SB_PER_PATH_K2)
879-
#define NUM_OF_ENG_PFS(dev) (QED_IS_BB(dev) ? MAX_NUM_PFS_BB \
880-
: MAX_NUM_PFS_K2)
895+
u32 qed_get_hsi_def_val(struct qed_dev *cdev, enum qed_hsi_def_type type);
896+
897+
#define NUM_OF_VFS(dev) \
898+
qed_get_hsi_def_val(dev, QED_HSI_DEF_MAX_NUM_VFS)
899+
#define NUM_OF_L2_QUEUES(dev) \
900+
qed_get_hsi_def_val(dev, QED_HSI_DEF_MAX_NUM_L2_QUEUES)
901+
#define NUM_OF_PORTS(dev) \
902+
qed_get_hsi_def_val(dev, QED_HSI_DEF_MAX_NUM_PORTS)
903+
#define NUM_OF_SBS(dev) \
904+
qed_get_hsi_def_val(dev, QED_HSI_DEF_MAX_SB_PER_PATH)
905+
#define NUM_OF_ENG_PFS(dev) \
906+
qed_get_hsi_def_val(dev, QED_HSI_DEF_MAX_NUM_PFS)
907+
#define NUM_OF_VPORTS(dev) \
908+
qed_get_hsi_def_val(dev, QED_HSI_DEF_MAX_NUM_VPORTS)
909+
#define NUM_OF_RSS_ENGINES(dev) \
910+
qed_get_hsi_def_val(dev, QED_HSI_DEF_NUM_ETH_RSS_ENGINE)
911+
#define NUM_OF_QM_TX_QUEUES(dev) \
912+
qed_get_hsi_def_val(dev, QED_HSI_DEF_MAX_QM_TX_QUEUES)
913+
#define NUM_OF_PXP_ILT_RECORDS(dev) \
914+
qed_get_hsi_def_val(dev, QED_HSI_DEF_NUM_PXP_ILT_RECORDS)
915+
#define NUM_OF_RDMA_STATISTIC_COUNTERS(dev) \
916+
qed_get_hsi_def_val(dev, QED_HSI_DEF_NUM_RDMA_STATISTIC_COUNTERS)
917+
#define NUM_OF_QM_GLOBAL_RLS(dev) \
918+
qed_get_hsi_def_val(dev, QED_HSI_DEF_MAX_QM_GLOBAL_RLS)
919+
#define NUM_OF_PBF_CMD_LINES(dev) \
920+
qed_get_hsi_def_val(dev, QED_HSI_DEF_MAX_PBF_CMD_LINES)
921+
#define NUM_OF_BTB_BLOCKS(dev) \
922+
qed_get_hsi_def_val(dev, QED_HSI_DEF_MAX_BTB_BLOCKS)
923+
881924

882925
/**
883926
* @brief qed_concrete_to_sw_fid - get the sw function id from

0 commit comments

Comments
 (0)