@@ -449,6 +449,7 @@ RVU_DEBUG_SEQ_FOPS(npa_qsize, npa_qsize_display, npa_qsize_write);
449
449
static void print_npa_aura_ctx (struct seq_file * m , struct npa_aq_enq_rsp * rsp )
450
450
{
451
451
struct npa_aura_s * aura = & rsp -> aura ;
452
+ struct rvu * rvu = m -> private ;
452
453
453
454
seq_printf (m , "W0: Pool addr\t\t%llx\n" , aura -> pool_addr );
454
455
@@ -468,6 +469,9 @@ static void print_npa_aura_ctx(struct seq_file *m, struct npa_aq_enq_rsp *rsp)
468
469
469
470
seq_printf (m , "W3: limit\t\t%llu\nW3: bp\t\t\t%d\nW3: fc_ena\t\t%d\n" ,
470
471
(u64 )aura -> limit , aura -> bp , aura -> fc_ena );
472
+
473
+ if (!is_rvu_otx2 (rvu ))
474
+ seq_printf (m , "W3: fc_be\t\t%d\n" , aura -> fc_be );
471
475
seq_printf (m , "W3: fc_up_crossing\t%d\nW3: fc_stype\t\t%d\n" ,
472
476
aura -> fc_up_crossing , aura -> fc_stype );
473
477
seq_printf (m , "W3: fc_hyst_bits\t%d\n" , aura -> fc_hyst_bits );
@@ -485,12 +489,15 @@ static void print_npa_aura_ctx(struct seq_file *m, struct npa_aq_enq_rsp *rsp)
485
489
seq_printf (m , "W5: err_qint_idx \t%d\n" , aura -> err_qint_idx );
486
490
487
491
seq_printf (m , "W6: thresh\t\t%llu\n" , (u64 )aura -> thresh );
492
+ if (!is_rvu_otx2 (rvu ))
493
+ seq_printf (m , "W6: fc_msh_dst\t\t%d\n" , aura -> fc_msh_dst );
488
494
}
489
495
490
496
/* Dumps given NPA Pool's context */
491
497
static void print_npa_pool_ctx (struct seq_file * m , struct npa_aq_enq_rsp * rsp )
492
498
{
493
499
struct npa_pool_s * pool = & rsp -> pool ;
500
+ struct rvu * rvu = m -> private ;
494
501
495
502
seq_printf (m , "W0: Stack base\t\t%llx\n" , pool -> stack_base );
496
503
@@ -512,6 +519,8 @@ static void print_npa_pool_ctx(struct seq_file *m, struct npa_aq_enq_rsp *rsp)
512
519
pool -> avg_con , pool -> fc_ena , pool -> fc_stype );
513
520
seq_printf (m , "W4: fc_hyst_bits\t%d\nW4: fc_up_crossing\t%d\n" ,
514
521
pool -> fc_hyst_bits , pool -> fc_up_crossing );
522
+ if (!is_rvu_otx2 (rvu ))
523
+ seq_printf (m , "W4: fc_be\t\t%d\n" , pool -> fc_be );
515
524
seq_printf (m , "W4: update_time\t\t%d\n" , pool -> update_time );
516
525
517
526
seq_printf (m , "W5: fc_addr\t\t%llx\n" , pool -> fc_addr );
@@ -525,8 +534,10 @@ static void print_npa_pool_ctx(struct seq_file *m, struct npa_aq_enq_rsp *rsp)
525
534
seq_printf (m , "W8: thresh_int\t\t%d\n" , pool -> thresh_int );
526
535
seq_printf (m , "W8: thresh_int_ena\t%d\nW8: thresh_up\t\t%d\n" ,
527
536
pool -> thresh_int_ena , pool -> thresh_up );
528
- seq_printf (m , "W8: thresh_qint_idx\t%d\nW8: err_qint_idx\t\t %d\n" ,
537
+ seq_printf (m , "W8: thresh_qint_idx\t%d\nW8: err_qint_idx\t%d\n" ,
529
538
pool -> thresh_qint_idx , pool -> err_qint_idx );
539
+ if (!is_rvu_otx2 (rvu ))
540
+ seq_printf (m , "W8: fc_msh_dst\t\t%d\n" , pool -> fc_msh_dst );
530
541
}
531
542
532
543
/* Reads aura/pool's ctx from admin queue */
@@ -910,11 +921,78 @@ static int rvu_dbg_nix_ndc_tx_hits_miss_display(struct seq_file *filp,
910
921
911
922
RVU_DEBUG_SEQ_FOPS (nix_ndc_tx_hits_miss , nix_ndc_tx_hits_miss_display , NULL );
912
923
924
+ static void print_nix_cn10k_sq_ctx (struct seq_file * m ,
925
+ struct nix_cn10k_sq_ctx_s * sq_ctx )
926
+ {
927
+ seq_printf (m , "W0: ena \t\t\t%d\nW0: qint_idx \t\t\t%d\n" ,
928
+ sq_ctx -> ena , sq_ctx -> qint_idx );
929
+ seq_printf (m , "W0: substream \t\t\t0x%03x\nW0: sdp_mcast \t\t\t%d\n" ,
930
+ sq_ctx -> substream , sq_ctx -> sdp_mcast );
931
+ seq_printf (m , "W0: cq \t\t\t\t%d\nW0: sqe_way_mask \t\t%d\n\n" ,
932
+ sq_ctx -> cq , sq_ctx -> sqe_way_mask );
933
+
934
+ seq_printf (m , "W1: smq \t\t\t%d\nW1: cq_ena \t\t\t%d\nW1: xoff\t\t\t%d\n" ,
935
+ sq_ctx -> smq , sq_ctx -> cq_ena , sq_ctx -> xoff );
936
+ seq_printf (m , "W1: sso_ena \t\t\t%d\nW1: smq_rr_weight\t\t%d\n" ,
937
+ sq_ctx -> sso_ena , sq_ctx -> smq_rr_weight );
938
+ seq_printf (m , "W1: default_chan\t\t%d\nW1: sqb_count\t\t\t%d\n\n" ,
939
+ sq_ctx -> default_chan , sq_ctx -> sqb_count );
940
+
941
+ seq_printf (m , "W2: smq_rr_count_lb \t\t%d\n" , sq_ctx -> smq_rr_count_lb );
942
+ seq_printf (m , "W2: smq_rr_count_ub \t\t%d\n" , sq_ctx -> smq_rr_count_ub );
943
+ seq_printf (m , "W2: sqb_aura \t\t\t%d\nW2: sq_int \t\t\t%d\n" ,
944
+ sq_ctx -> sqb_aura , sq_ctx -> sq_int );
945
+ seq_printf (m , "W2: sq_int_ena \t\t\t%d\nW2: sqe_stype \t\t\t%d\n" ,
946
+ sq_ctx -> sq_int_ena , sq_ctx -> sqe_stype );
947
+
948
+ seq_printf (m , "W3: max_sqe_size\t\t%d\nW3: cq_limit\t\t\t%d\n" ,
949
+ sq_ctx -> max_sqe_size , sq_ctx -> cq_limit );
950
+ seq_printf (m , "W3: lmt_dis \t\t\t%d\nW3: mnq_dis \t\t\t%d\n" ,
951
+ sq_ctx -> mnq_dis , sq_ctx -> lmt_dis );
952
+ seq_printf (m , "W3: smq_next_sq\t\t\t%d\nW3: smq_lso_segnum\t\t%d\n" ,
953
+ sq_ctx -> smq_next_sq , sq_ctx -> smq_lso_segnum );
954
+ seq_printf (m , "W3: tail_offset \t\t%d\nW3: smenq_offset\t\t%d\n" ,
955
+ sq_ctx -> tail_offset , sq_ctx -> smenq_offset );
956
+ seq_printf (m , "W3: head_offset\t\t\t%d\nW3: smenq_next_sqb_vld\t\t%d\n\n" ,
957
+ sq_ctx -> head_offset , sq_ctx -> smenq_next_sqb_vld );
958
+
959
+ seq_printf (m , "W4: next_sqb \t\t\t%llx\n\n" , sq_ctx -> next_sqb );
960
+ seq_printf (m , "W5: tail_sqb \t\t\t%llx\n\n" , sq_ctx -> tail_sqb );
961
+ seq_printf (m , "W6: smenq_sqb \t\t\t%llx\n\n" , sq_ctx -> smenq_sqb );
962
+ seq_printf (m , "W7: smenq_next_sqb \t\t%llx\n\n" ,
963
+ sq_ctx -> smenq_next_sqb );
964
+
965
+ seq_printf (m , "W8: head_sqb\t\t\t%llx\n\n" , sq_ctx -> head_sqb );
966
+
967
+ seq_printf (m , "W9: vfi_lso_total\t\t%d\n" , sq_ctx -> vfi_lso_total );
968
+ seq_printf (m , "W9: vfi_lso_sizem1\t\t%d\nW9: vfi_lso_sb\t\t\t%d\n" ,
969
+ sq_ctx -> vfi_lso_sizem1 , sq_ctx -> vfi_lso_sb );
970
+ seq_printf (m , "W9: vfi_lso_mps\t\t\t%d\nW9: vfi_lso_vlan0_ins_ena\t%d\n" ,
971
+ sq_ctx -> vfi_lso_mps , sq_ctx -> vfi_lso_vlan0_ins_ena );
972
+ seq_printf (m , "W9: vfi_lso_vlan1_ins_ena\t%d\nW9: vfi_lso_vld \t\t%d\n\n" ,
973
+ sq_ctx -> vfi_lso_vld , sq_ctx -> vfi_lso_vlan1_ins_ena );
974
+
975
+ seq_printf (m , "W10: scm_lso_rem \t\t%llu\n\n" ,
976
+ (u64 )sq_ctx -> scm_lso_rem );
977
+ seq_printf (m , "W11: octs \t\t\t%llu\n\n" , (u64 )sq_ctx -> octs );
978
+ seq_printf (m , "W12: pkts \t\t\t%llu\n\n" , (u64 )sq_ctx -> pkts );
979
+ seq_printf (m , "W14: dropped_octs \t\t%llu\n\n" ,
980
+ (u64 )sq_ctx -> dropped_octs );
981
+ seq_printf (m , "W15: dropped_pkts \t\t%llu\n\n" ,
982
+ (u64 )sq_ctx -> dropped_pkts );
983
+ }
984
+
913
985
/* Dumps given nix_sq's context */
914
986
static void print_nix_sq_ctx (struct seq_file * m , struct nix_aq_enq_rsp * rsp )
915
987
{
916
988
struct nix_sq_ctx_s * sq_ctx = & rsp -> sq ;
989
+ struct nix_hw * nix_hw = m -> private ;
990
+ struct rvu * rvu = nix_hw -> rvu ;
917
991
992
+ if (!is_rvu_otx2 (rvu )) {
993
+ print_nix_cn10k_sq_ctx (m , (struct nix_cn10k_sq_ctx_s * )sq_ctx );
994
+ return ;
995
+ }
918
996
seq_printf (m , "W0: sqe_way_mask \t\t%d\nW0: cq \t\t\t\t%d\n" ,
919
997
sq_ctx -> sqe_way_mask , sq_ctx -> cq );
920
998
seq_printf (m , "W0: sdp_mcast \t\t\t%d\nW0: substream \t\t\t0x%03x\n" ,
@@ -974,10 +1052,94 @@ static void print_nix_sq_ctx(struct seq_file *m, struct nix_aq_enq_rsp *rsp)
974
1052
(u64 )sq_ctx -> dropped_pkts );
975
1053
}
976
1054
1055
+ static void print_nix_cn10k_rq_ctx (struct seq_file * m ,
1056
+ struct nix_cn10k_rq_ctx_s * rq_ctx )
1057
+ {
1058
+ seq_printf (m , "W0: ena \t\t\t%d\nW0: sso_ena \t\t\t%d\n" ,
1059
+ rq_ctx -> ena , rq_ctx -> sso_ena );
1060
+ seq_printf (m , "W0: ipsech_ena \t\t\t%d\nW0: ena_wqwd \t\t\t%d\n" ,
1061
+ rq_ctx -> ipsech_ena , rq_ctx -> ena_wqwd );
1062
+ seq_printf (m , "W0: cq \t\t\t\t%d\nW0: lenerr_dis \t\t\t%d\n" ,
1063
+ rq_ctx -> cq , rq_ctx -> lenerr_dis );
1064
+ seq_printf (m , "W0: csum_il4_dis \t\t%d\nW0: csum_ol4_dis \t\t%d\n" ,
1065
+ rq_ctx -> csum_il4_dis , rq_ctx -> csum_ol4_dis );
1066
+ seq_printf (m , "W0: len_il4_dis \t\t%d\nW0: len_il3_dis \t\t%d\n" ,
1067
+ rq_ctx -> len_il4_dis , rq_ctx -> len_il3_dis );
1068
+ seq_printf (m , "W0: len_ol4_dis \t\t%d\nW0: len_ol3_dis \t\t%d\n" ,
1069
+ rq_ctx -> len_ol4_dis , rq_ctx -> len_ol3_dis );
1070
+ seq_printf (m , "W0: wqe_aura \t\t\t%d\n\n" , rq_ctx -> wqe_aura );
1071
+
1072
+ seq_printf (m , "W1: spb_aura \t\t\t%d\nW1: lpb_aura \t\t\t%d\n" ,
1073
+ rq_ctx -> spb_aura , rq_ctx -> lpb_aura );
1074
+ seq_printf (m , "W1: spb_aura \t\t\t%d\n" , rq_ctx -> spb_aura );
1075
+ seq_printf (m , "W1: sso_grp \t\t\t%d\nW1: sso_tt \t\t\t%d\n" ,
1076
+ rq_ctx -> sso_grp , rq_ctx -> sso_tt );
1077
+ seq_printf (m , "W1: pb_caching \t\t\t%d\nW1: wqe_caching \t\t%d\n" ,
1078
+ rq_ctx -> pb_caching , rq_ctx -> wqe_caching );
1079
+ seq_printf (m , "W1: xqe_drop_ena \t\t%d\nW1: spb_drop_ena \t\t%d\n" ,
1080
+ rq_ctx -> xqe_drop_ena , rq_ctx -> spb_drop_ena );
1081
+ seq_printf (m , "W1: lpb_drop_ena \t\t%d\nW1: pb_stashing \t\t%d\n" ,
1082
+ rq_ctx -> lpb_drop_ena , rq_ctx -> pb_stashing );
1083
+ seq_printf (m , "W1: ipsecd_drop_ena \t\t%d\nW1: chi_ena \t\t\t%d\n\n" ,
1084
+ rq_ctx -> ipsecd_drop_ena , rq_ctx -> chi_ena );
1085
+
1086
+ seq_printf (m , "W2: band_prof_id \t\t%d\n" , rq_ctx -> band_prof_id );
1087
+ seq_printf (m , "W2: policer_ena \t\t%d\n" , rq_ctx -> policer_ena );
1088
+ seq_printf (m , "W2: spb_sizem1 \t\t\t%d\n" , rq_ctx -> spb_sizem1 );
1089
+ seq_printf (m , "W2: wqe_skip \t\t\t%d\nW2: sqb_ena \t\t\t%d\n" ,
1090
+ rq_ctx -> wqe_skip , rq_ctx -> spb_ena );
1091
+ seq_printf (m , "W2: lpb_size1 \t\t\t%d\nW2: first_skip \t\t\t%d\n" ,
1092
+ rq_ctx -> lpb_sizem1 , rq_ctx -> first_skip );
1093
+ seq_printf (m , "W2: later_skip\t\t\t%d\nW2: xqe_imm_size\t\t%d\n" ,
1094
+ rq_ctx -> later_skip , rq_ctx -> xqe_imm_size );
1095
+ seq_printf (m , "W2: xqe_imm_copy \t\t%d\nW2: xqe_hdr_split \t\t%d\n\n" ,
1096
+ rq_ctx -> xqe_imm_copy , rq_ctx -> xqe_hdr_split );
1097
+
1098
+ seq_printf (m , "W3: xqe_drop \t\t\t%d\nW3: xqe_pass \t\t\t%d\n" ,
1099
+ rq_ctx -> xqe_drop , rq_ctx -> xqe_pass );
1100
+ seq_printf (m , "W3: wqe_pool_drop \t\t%d\nW3: wqe_pool_pass \t\t%d\n" ,
1101
+ rq_ctx -> wqe_pool_drop , rq_ctx -> wqe_pool_pass );
1102
+ seq_printf (m , "W3: spb_pool_drop \t\t%d\nW3: spb_pool_pass \t\t%d\n" ,
1103
+ rq_ctx -> spb_pool_drop , rq_ctx -> spb_pool_pass );
1104
+ seq_printf (m , "W3: spb_aura_drop \t\t%d\nW3: spb_aura_pass \t\t%d\n\n" ,
1105
+ rq_ctx -> spb_aura_pass , rq_ctx -> spb_aura_drop );
1106
+
1107
+ seq_printf (m , "W4: lpb_aura_drop \t\t%d\nW3: lpb_aura_pass \t\t%d\n" ,
1108
+ rq_ctx -> lpb_aura_pass , rq_ctx -> lpb_aura_drop );
1109
+ seq_printf (m , "W4: lpb_pool_drop \t\t%d\nW3: lpb_pool_pass \t\t%d\n" ,
1110
+ rq_ctx -> lpb_pool_drop , rq_ctx -> lpb_pool_pass );
1111
+ seq_printf (m , "W4: rq_int \t\t\t%d\nW4: rq_int_ena\t\t\t%d\n" ,
1112
+ rq_ctx -> rq_int , rq_ctx -> rq_int_ena );
1113
+ seq_printf (m , "W4: qint_idx \t\t\t%d\n\n" , rq_ctx -> qint_idx );
1114
+
1115
+ seq_printf (m , "W5: ltag \t\t\t%d\nW5: good_utag \t\t\t%d\n" ,
1116
+ rq_ctx -> ltag , rq_ctx -> good_utag );
1117
+ seq_printf (m , "W5: bad_utag \t\t\t%d\nW5: flow_tagw \t\t\t%d\n" ,
1118
+ rq_ctx -> bad_utag , rq_ctx -> flow_tagw );
1119
+ seq_printf (m , "W5: ipsec_vwqe \t\t\t%d\nW5: vwqe_ena \t\t\t%d\n" ,
1120
+ rq_ctx -> ipsec_vwqe , rq_ctx -> vwqe_ena );
1121
+ seq_printf (m , "W5: vwqe_wait \t\t\t%d\nW5: max_vsize_exp\t\t%d\n" ,
1122
+ rq_ctx -> vwqe_wait , rq_ctx -> max_vsize_exp );
1123
+ seq_printf (m , "W5: vwqe_skip \t\t\t%d\n\n" , rq_ctx -> vwqe_skip );
1124
+
1125
+ seq_printf (m , "W6: octs \t\t\t%llu\n\n" , (u64 )rq_ctx -> octs );
1126
+ seq_printf (m , "W7: pkts \t\t\t%llu\n\n" , (u64 )rq_ctx -> pkts );
1127
+ seq_printf (m , "W8: drop_octs \t\t\t%llu\n\n" , (u64 )rq_ctx -> drop_octs );
1128
+ seq_printf (m , "W9: drop_pkts \t\t\t%llu\n\n" , (u64 )rq_ctx -> drop_pkts );
1129
+ seq_printf (m , "W10: re_pkts \t\t\t%llu\n" , (u64 )rq_ctx -> re_pkts );
1130
+ }
1131
+
977
1132
/* Dumps given nix_rq's context */
978
1133
static void print_nix_rq_ctx (struct seq_file * m , struct nix_aq_enq_rsp * rsp )
979
1134
{
980
1135
struct nix_rq_ctx_s * rq_ctx = & rsp -> rq ;
1136
+ struct nix_hw * nix_hw = m -> private ;
1137
+ struct rvu * rvu = nix_hw -> rvu ;
1138
+
1139
+ if (!is_rvu_otx2 (rvu )) {
1140
+ print_nix_cn10k_rq_ctx (m , (struct nix_cn10k_rq_ctx_s * )rq_ctx );
1141
+ return ;
1142
+ }
981
1143
982
1144
seq_printf (m , "W0: wqe_aura \t\t\t%d\nW0: substream \t\t\t0x%03x\n" ,
983
1145
rq_ctx -> wqe_aura , rq_ctx -> substream );
@@ -1551,6 +1713,9 @@ static void rvu_dbg_cgx_init(struct rvu *rvu)
1551
1713
char dname [20 ];
1552
1714
void * cgx ;
1553
1715
1716
+ if (!cgx_get_cgxcnt_max ())
1717
+ return ;
1718
+
1554
1719
rvu -> rvu_dbg .cgx_root = debugfs_create_dir ("cgx" , rvu -> rvu_dbg .root );
1555
1720
1556
1721
for (i = 0 ; i < cgx_get_cgxcnt_max (); i ++ ) {
@@ -2128,9 +2293,17 @@ static void rvu_dbg_cpt_init(struct rvu *rvu, int blkaddr)
2128
2293
& rvu_dbg_cpt_err_info_fops );
2129
2294
}
2130
2295
2296
+ static const char * rvu_get_dbg_dir_name (struct rvu * rvu )
2297
+ {
2298
+ if (!is_rvu_otx2 (rvu ))
2299
+ return "cn10k" ;
2300
+ else
2301
+ return "octeontx2" ;
2302
+ }
2303
+
2131
2304
void rvu_dbg_init (struct rvu * rvu )
2132
2305
{
2133
- rvu -> rvu_dbg .root = debugfs_create_dir (DEBUGFS_DIR_NAME , NULL );
2306
+ rvu -> rvu_dbg .root = debugfs_create_dir (rvu_get_dbg_dir_name ( rvu ) , NULL );
2134
2307
2135
2308
debugfs_create_file ("rsrc_alloc" , 0444 , rvu -> rvu_dbg .root , rvu ,
2136
2309
& rvu_dbg_rsrc_status_fops );
0 commit comments