File Index
Files and directories
Sign in
FILE

debugfs.c

File preview with syntax highlighting.

linux-6.19.14/drivers/net/ethernet/marvell/octeontx2/af/cn20k/debugfs.c C
  1// SPDX-License-Identifier: GPL-2.0
  2/* Marvell RVU Admin Function driver
  3 *
  4 * Copyright (C) 2024 Marvell.
  5 *
  6 */
  7
  8#include <linux/fs.h>
  9#include <linux/debugfs.h>
 10#include <linux/module.h>
 11#include <linux/pci.h>
 12
 13#include "struct.h"
 14#include "debugfs.h"
 15
 16void print_nix_cn20k_sq_ctx(struct seq_file *m,
 17			    struct nix_cn20k_sq_ctx_s *sq_ctx)
 18{
 19	seq_printf(m, "W0: ena \t\t\t%d\nW0: qint_idx \t\t\t%d\n",
 20		   sq_ctx->ena, sq_ctx->qint_idx);
 21	seq_printf(m, "W0: substream \t\t\t0x%03x\nW0: sdp_mcast \t\t\t%d\n",
 22		   sq_ctx->substream, sq_ctx->sdp_mcast);
 23	seq_printf(m, "W0: cq \t\t\t\t%d\nW0: sqe_way_mask \t\t%d\n\n",
 24		   sq_ctx->cq, sq_ctx->sqe_way_mask);
 25
 26	seq_printf(m, "W1: smq \t\t\t%d\nW1: cq_ena \t\t\t%d\nW1: xoff\t\t\t%d\n",
 27		   sq_ctx->smq, sq_ctx->cq_ena, sq_ctx->xoff);
 28	seq_printf(m, "W1: sso_ena \t\t\t%d\nW1: smq_rr_weight\t\t%d\n",
 29		   sq_ctx->sso_ena, sq_ctx->smq_rr_weight);
 30	seq_printf(m, "W1: default_chan\t\t%d\nW1: sqb_count\t\t\t%d\n\n",
 31		   sq_ctx->default_chan, sq_ctx->sqb_count);
 32
 33	seq_printf(m, "W1: smq_rr_count_lb \t\t%d\n", sq_ctx->smq_rr_count_lb);
 34	seq_printf(m, "W2: smq_rr_count_ub \t\t%d\n", sq_ctx->smq_rr_count_ub);
 35	seq_printf(m, "W2: sqb_aura \t\t\t%d\nW2: sq_int \t\t\t%d\n",
 36		   sq_ctx->sqb_aura, sq_ctx->sq_int);
 37	seq_printf(m, "W2: sq_int_ena \t\t\t%d\nW2: sqe_stype \t\t\t%d\n",
 38		   sq_ctx->sq_int_ena, sq_ctx->sqe_stype);
 39
 40	seq_printf(m, "W3: max_sqe_size\t\t%d\nW3: cq_limit\t\t\t%d\n",
 41		   sq_ctx->max_sqe_size, sq_ctx->cq_limit);
 42	seq_printf(m, "W3: lmt_dis \t\t\t%d\nW3: mnq_dis \t\t\t%d\n",
 43		   sq_ctx->lmt_dis, sq_ctx->mnq_dis);
 44	seq_printf(m, "W3: smq_next_sq\t\t\t%d\nW3: smq_lso_segnum\t\t%d\n",
 45		   sq_ctx->smq_next_sq, sq_ctx->smq_lso_segnum);
 46	seq_printf(m, "W3: tail_offset \t\t%d\nW3: smenq_offset\t\t%d\n",
 47		   sq_ctx->tail_offset, sq_ctx->smenq_offset);
 48	seq_printf(m, "W3: head_offset\t\t\t%d\nW3: smenq_next_sqb_vld\t\t%d\n\n",
 49		   sq_ctx->head_offset, sq_ctx->smenq_next_sqb_vld);
 50
 51	seq_printf(m, "W3: smq_next_sq_vld\t\t%d\nW3: smq_pend\t\t\t%d\n",
 52		   sq_ctx->smq_next_sq_vld, sq_ctx->smq_pend);
 53	seq_printf(m, "W4: next_sqb \t\t\t%llx\n\n", sq_ctx->next_sqb);
 54	seq_printf(m, "W5: tail_sqb \t\t\t%llx\n\n", sq_ctx->tail_sqb);
 55	seq_printf(m, "W6: smenq_sqb \t\t\t%llx\n\n", sq_ctx->smenq_sqb);
 56	seq_printf(m, "W7: smenq_next_sqb \t\t%llx\n\n",
 57		   sq_ctx->smenq_next_sqb);
 58
 59	seq_printf(m, "W8: head_sqb\t\t\t%llx\n\n", sq_ctx->head_sqb);
 60
 61	seq_printf(m, "W9: vfi_lso_total\t\t%d\n", sq_ctx->vfi_lso_total);
 62	seq_printf(m, "W9: vfi_lso_sizem1\t\t%d\nW9: vfi_lso_sb\t\t\t%d\n",
 63		   sq_ctx->vfi_lso_sizem1, sq_ctx->vfi_lso_sb);
 64	seq_printf(m, "W9: vfi_lso_mps\t\t\t%d\nW9: vfi_lso_vlan0_ins_ena\t%d\n",
 65		   sq_ctx->vfi_lso_mps, sq_ctx->vfi_lso_vlan0_ins_ena);
 66	seq_printf(m, "W9: vfi_lso_vlan1_ins_ena\t%d\nW9: vfi_lso_vld \t\t%d\n\n",
 67		   sq_ctx->vfi_lso_vld, sq_ctx->vfi_lso_vlan1_ins_ena);
 68
 69	seq_printf(m, "W10: scm_lso_rem \t\t%llu\n\n",
 70		   (u64)sq_ctx->scm_lso_rem);
 71	seq_printf(m, "W11: octs \t\t\t%llu\n\n", (u64)sq_ctx->octs);
 72	seq_printf(m, "W12: pkts \t\t\t%llu\n\n", (u64)sq_ctx->pkts);
 73	seq_printf(m, "W13: aged_drop_octs \t\t\t%llu\n\n",
 74		   (u64)sq_ctx->aged_drop_octs);
 75	seq_printf(m, "W13: aged_drop_pkts \t\t\t%llu\n\n",
 76		   (u64)sq_ctx->aged_drop_pkts);
 77	seq_printf(m, "W14: dropped_octs \t\t%llu\n\n",
 78		   (u64)sq_ctx->dropped_octs);
 79	seq_printf(m, "W15: dropped_pkts \t\t%llu\n\n",
 80		   (u64)sq_ctx->dropped_pkts);
 81}
 82
 83void print_nix_cn20k_cq_ctx(struct seq_file *m,
 84			    struct nix_cn20k_aq_enq_rsp *rsp)
 85{
 86	struct nix_cn20k_cq_ctx_s *cq_ctx = &rsp->cq;
 87
 88	seq_printf(m, "W0: base \t\t\t%llx\n\n", cq_ctx->base);
 89
 90	seq_printf(m, "W1: wrptr \t\t\t%llx\n", (u64)cq_ctx->wrptr);
 91	seq_printf(m, "W1: avg_con \t\t\t%d\nW1: cint_idx \t\t\t%d\n",
 92		   cq_ctx->avg_con, cq_ctx->cint_idx);
 93	seq_printf(m, "W1: cq_err \t\t\t%d\nW1: qint_idx \t\t\t%d\n",
 94		   cq_ctx->cq_err, cq_ctx->qint_idx);
 95	seq_printf(m, "W1: bpid \t\t\t%d\nW1: bp_ena \t\t\t%d\n\n",
 96		   cq_ctx->bpid, cq_ctx->bp_ena);
 97
 98	seq_printf(m, "W1: lbpid_high \t\t\t0x%03x\n", cq_ctx->lbpid_high);
 99	seq_printf(m, "W1: lbpid_med \t\t\t0x%03x\n", cq_ctx->lbpid_med);
100	seq_printf(m, "W1: lbpid_low \t\t\t0x%03x\n", cq_ctx->lbpid_low);
101	seq_printf(m, "(W1: lbpid) \t\t\t0x%03x\n",
102		   cq_ctx->lbpid_high << 6 | cq_ctx->lbpid_med << 3 |
103		   cq_ctx->lbpid_low);
104	seq_printf(m, "W1: lbp_ena \t\t\t\t%d\n\n", cq_ctx->lbp_ena);
105
106	seq_printf(m, "W2: update_time \t\t%d\nW2:avg_level \t\t\t%d\n",
107		   cq_ctx->update_time, cq_ctx->avg_level);
108	seq_printf(m, "W2: head \t\t\t%d\nW2:tail \t\t\t%d\n\n",
109		   cq_ctx->head, cq_ctx->tail);
110
111	seq_printf(m, "W3: cq_err_int_ena \t\t%d\nW3:cq_err_int \t\t\t%d\n",
112		   cq_ctx->cq_err_int_ena, cq_ctx->cq_err_int);
113	seq_printf(m, "W3: qsize \t\t\t%d\nW3:stashing \t\t\t%d\n",
114		   cq_ctx->qsize, cq_ctx->stashing);
115
116	seq_printf(m, "W3: caching \t\t\t%d\n", cq_ctx->caching);
117	seq_printf(m, "W3: lbp_frac \t\t\t%d\n", cq_ctx->lbp_frac);
118	seq_printf(m, "W3: stash_thresh \t\t\t%d\n",
119		   cq_ctx->stash_thresh);
120
121	seq_printf(m, "W3: msh_valid \t\t\t%d\nW3:msh_dst \t\t\t%d\n",
122		   cq_ctx->msh_valid, cq_ctx->msh_dst);
123
124	seq_printf(m, "W3: cpt_drop_err_en \t\t\t%d\n",
125		   cq_ctx->cpt_drop_err_en);
126	seq_printf(m, "W3: ena \t\t\t%d\n",
127		   cq_ctx->ena);
128	seq_printf(m, "W3: drop_ena \t\t\t%d\nW3: drop \t\t\t%d\n",
129		   cq_ctx->drop_ena, cq_ctx->drop);
130	seq_printf(m, "W3: bp \t\t\t\t%d\n\n", cq_ctx->bp);
131
132	seq_printf(m, "W4: lbpid_ext \t\t\t\t%d\n\n", cq_ctx->lbpid_ext);
133	seq_printf(m, "W4: bpid_ext \t\t\t\t%d\n\n", cq_ctx->bpid_ext);
134}
135
136void print_npa_cn20k_aura_ctx(struct seq_file *m,
137			      struct npa_cn20k_aq_enq_rsp *rsp)
138{
139	struct npa_cn20k_aura_s *aura = &rsp->aura;
140
141	seq_printf(m, "W0: Pool addr\t\t%llx\n", aura->pool_addr);
142
143	seq_printf(m, "W1: ena\t\t\t%d\nW1: pool caching\t%d\n",
144		   aura->ena, aura->pool_caching);
145	seq_printf(m, "W1: avg con\t\t%d\n", aura->avg_con);
146	seq_printf(m, "W1: pool drop ena\t%d\nW1: aura drop ena\t%d\n",
147		   aura->pool_drop_ena, aura->aura_drop_ena);
148	seq_printf(m, "W1: bp_ena\t\t%d\nW1: aura drop\t\t%d\n",
149		   aura->bp_ena, aura->aura_drop);
150	seq_printf(m, "W1: aura shift\t\t%d\nW1: avg_level\t\t%d\n",
151		   aura->shift, aura->avg_level);
152
153	seq_printf(m, "W2: count\t\t%llu\nW2: nix_bpid\t\t%d\n",
154		   (u64)aura->count, aura->bpid);
155
156	seq_printf(m, "W3: limit\t\t%llu\nW3: bp\t\t\t%d\nW3: fc_ena\t\t%d\n",
157		   (u64)aura->limit, aura->bp, aura->fc_ena);
158
159	seq_printf(m, "W3: fc_up_crossing\t%d\nW3: fc_stype\t\t%d\n",
160		   aura->fc_up_crossing, aura->fc_stype);
161	seq_printf(m, "W3: fc_hyst_bits\t%d\n", aura->fc_hyst_bits);
162
163	seq_printf(m, "W4: fc_addr\t\t%llx\n", aura->fc_addr);
164
165	seq_printf(m, "W5: pool_drop\t\t%d\nW5: update_time\t\t%d\n",
166		   aura->pool_drop, aura->update_time);
167	seq_printf(m, "W5: err_int \t\t%d\nW5: err_int_ena\t\t%d\n",
168		   aura->err_int, aura->err_int_ena);
169	seq_printf(m, "W5: thresh_int\t\t%d\nW5: thresh_int_ena \t%d\n",
170		   aura->thresh_int, aura->thresh_int_ena);
171	seq_printf(m, "W5: thresh_up\t\t%d\nW5: thresh_qint_idx\t%d\n",
172		   aura->thresh_up, aura->thresh_qint_idx);
173	seq_printf(m, "W5: err_qint_idx \t%d\n", aura->err_qint_idx);
174
175	seq_printf(m, "W6: thresh\t\t%llu\n", (u64)aura->thresh);
176	seq_printf(m, "W6: fc_msh_dst\t\t%d\n", aura->fc_msh_dst);
177}
178
179void print_npa_cn20k_pool_ctx(struct seq_file *m,
180			      struct npa_cn20k_aq_enq_rsp *rsp)
181{
182	struct npa_cn20k_pool_s *pool = &rsp->pool;
183
184	seq_printf(m, "W0: Stack base\t\t%llx\n", pool->stack_base);
185
186	seq_printf(m, "W1: ena \t\t%d\nW1: nat_align \t\t%d\n",
187		   pool->ena, pool->nat_align);
188	seq_printf(m, "W1: stack_caching\t%d\n",
189		   pool->stack_caching);
190	seq_printf(m, "W1: buf_offset\t\t%d\nW1: buf_size\t\t%d\n",
191		   pool->buf_offset, pool->buf_size);
192
193	seq_printf(m, "W2: stack_max_pages \t%d\nW2: stack_pages\t\t%d\n",
194		   pool->stack_max_pages, pool->stack_pages);
195
196	seq_printf(m, "W4: stack_offset\t%d\nW4: shift\t\t%d\nW4: avg_level\t\t%d\n",
197		   pool->stack_offset, pool->shift, pool->avg_level);
198	seq_printf(m, "W4: avg_con \t\t%d\nW4: fc_ena\t\t%d\nW4: fc_stype\t\t%d\n",
199		   pool->avg_con, pool->fc_ena, pool->fc_stype);
200	seq_printf(m, "W4: fc_hyst_bits\t%d\nW4: fc_up_crossing\t%d\n",
201		   pool->fc_hyst_bits, pool->fc_up_crossing);
202	seq_printf(m, "W4: update_time\t\t%d\n", pool->update_time);
203
204	seq_printf(m, "W5: fc_addr\t\t%llx\n", pool->fc_addr);
205
206	seq_printf(m, "W6: ptr_start\t\t%llx\n", pool->ptr_start);
207
208	seq_printf(m, "W7: ptr_end\t\t%llx\n", pool->ptr_end);
209
210	seq_printf(m, "W8: err_int\t\t%d\nW8: err_int_ena\t\t%d\n",
211		   pool->err_int, pool->err_int_ena);
212	seq_printf(m, "W8: thresh_int\t\t%d\n", pool->thresh_int);
213	seq_printf(m, "W8: thresh_int_ena\t%d\nW8: thresh_up\t\t%d\n",
214		   pool->thresh_int_ena, pool->thresh_up);
215	seq_printf(m, "W8: thresh_qint_idx\t%d\nW8: err_qint_idx\t%d\n",
216		   pool->thresh_qint_idx, pool->err_qint_idx);
217	seq_printf(m, "W8: fc_msh_dst\t\t%d\n", pool->fc_msh_dst);
218}
~/ Read-only file preview.