]> www.infradead.org Git - users/hch/misc.git/commitdiff
bnxt_en: Add err_qpc backing store handling
authorKashyap Desai <kashyap.desai@broadcom.com>
Wed, 17 Sep 2025 04:08:35 +0000 (21:08 -0700)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 18 Sep 2025 11:09:43 +0000 (13:09 +0200)
New backing store component err_qpc is added to the existing host
logging interface for FW traces.

Allocate the backing store memory if this memory type is supported.
Copy this memory when collecting the coredump.

Reviewed-by: Shruti Parab <shruti.parab@broadcom.com>
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Link: https://patch.msgid.link/20250917040839.1924698-7-michael.chan@broadcom.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/ethernet/broadcom/bnxt/bnxt.c
drivers/net/ethernet/broadcom/bnxt/bnxt.h
drivers/net/ethernet/broadcom/bnxt/bnxt_coredump.c
drivers/net/ethernet/broadcom/bnxt/bnxt_coredump.h

index 481395691a9db933162800bddd77be9935f57939..bdf8502d31316e0aa5979dfac9b709c53f100cfa 100644 (file)
@@ -266,6 +266,7 @@ const u16 bnxt_bstore_to_trace[] = {
        [BNXT_CTX_CA2]          = DBG_LOG_BUFFER_FLUSH_REQ_TYPE_CA2_TRACE,
        [BNXT_CTX_RIGP1]        = DBG_LOG_BUFFER_FLUSH_REQ_TYPE_RIGP1_TRACE,
        [BNXT_CTX_KONG]         = DBG_LOG_BUFFER_FLUSH_REQ_TYPE_AFM_KONG_HWRM_TRACE,
+       [BNXT_CTX_QPC]          = DBG_LOG_BUFFER_FLUSH_REQ_TYPE_ERR_QPC_TRACE,
 };
 
 static struct workqueue_struct *bnxt_pf_wq;
@@ -9159,7 +9160,7 @@ static int bnxt_backing_store_cfg_v2(struct bnxt *bp)
        int rc = 0;
        u16 type;
 
-       for (type = BNXT_CTX_SRT; type <= BNXT_CTX_KONG; type++) {
+       for (type = BNXT_CTX_SRT; type <= BNXT_CTX_QPC; type++) {
                ctxm = &ctx->ctx_arr[type];
                if (!bnxt_bs_trace_avail(bp, type))
                        continue;
index 37c3f6507250208d8a96fe562e2cfcc2dba1c421..57a1af40cc1906c81a2b4205783f79aa905ac87c 100644 (file)
@@ -1969,10 +1969,11 @@ struct bnxt_ctx_mem_type {
 #define BNXT_CTX_CA2   FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_CA2_TRACE
 #define BNXT_CTX_RIGP1 FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_RIGP1_TRACE
 #define BNXT_CTX_KONG  FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_AFM_KONG_HWRM_TRACE
+#define BNXT_CTX_QPC   FUNC_BACKING_STORE_QCAPS_V2_REQ_TYPE_ERR_QPC_TRACE
 
 #define BNXT_CTX_MAX   (BNXT_CTX_TIM + 1)
 #define BNXT_CTX_L2_MAX        (BNXT_CTX_FTQM + 1)
-#define BNXT_CTX_V2_MAX        (BNXT_CTX_KONG + 1)
+#define BNXT_CTX_V2_MAX (BNXT_CTX_QPC + 1)
 #define BNXT_CTX_INV   ((u16)-1)
 
 struct bnxt_ctx_mem_info {
index a0a37216efb3b1e06ed7684ccdfc1bd7c369e3f2..0181ab1f2dfdcf17f6e18c21cbbeb3f334c7f38b 100644 (file)
@@ -37,6 +37,7 @@ static const u16 bnxt_bstore_to_seg_id[] = {
        [BNXT_CTX_CA2]                  = BNXT_CTX_MEM_SEG_CA2,
        [BNXT_CTX_RIGP1]                = BNXT_CTX_MEM_SEG_RIGP1,
        [BNXT_CTX_KONG]                 = BNXT_CTX_MEM_SEG_KONG,
+       [BNXT_CTX_QPC]                  = BNXT_CTX_MEM_SEG_QPC,
 };
 
 static int bnxt_dbg_hwrm_log_buffer_flush(struct bnxt *bp, u16 type, u32 flags,
@@ -360,7 +361,7 @@ static u32 bnxt_get_ctx_coredump(struct bnxt *bp, void *buf, u32 offset,
 
        if (buf)
                buf += offset;
-       for (type = 0; type <= BNXT_CTX_KONG; type++) {
+       for (type = 0; type < BNXT_CTX_V2_MAX; type++) {
                struct bnxt_ctx_mem_type *ctxm = &ctx->ctx_arr[type];
                bool trace = bnxt_bs_trace_avail(bp, type);
                u32 seg_id = bnxt_bstore_to_seg_id[type];
index 8d0f58c74cc32a72cdc055f1081cbbe14b68f3fc..c087df88154a6bd2a045b9437cbb416c028693b8 100644 (file)
@@ -102,6 +102,7 @@ struct bnxt_driver_segment_record {
 #define BNXT_CTX_MEM_SEG_CA1   0x9
 #define BNXT_CTX_MEM_SEG_CA2   0xa
 #define BNXT_CTX_MEM_SEG_RIGP1 0xb
+#define BNXT_CTX_MEM_SEG_QPC   0xc
 #define BNXT_CTX_MEM_SEG_KONG  0xd
 
 #define BNXT_CRASH_DUMP_LEN    (8 << 20)