aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/ethernet/ti/keystone_ethss2.c308
1 files changed, 278 insertions, 30 deletions
diff --git a/drivers/net/ethernet/ti/keystone_ethss2.c b/drivers/net/ethernet/ti/keystone_ethss2.c
index feaf3b82840..77cf57c5512 100644
--- a/drivers/net/ethernet/ti/keystone_ethss2.c
+++ b/drivers/net/ethernet/ti/keystone_ethss2.c
@@ -357,9 +357,50 @@ struct cpsw2_hw_stats {
357 u32 ale_rate_limit_drop; 357 u32 ale_rate_limit_drop;
358 u32 ale_vid_ingress_drop; 358 u32 ale_vid_ingress_drop;
359 u32 ale_da_eq_sa_drop; 359 u32 ale_da_eq_sa_drop;
360 u32 ale_block_drop; 360 u32 rsvd0[3];
361 u32 ale_secure_drop; 361 u32 ale_unknown_ucast;
362 u32 ale_auth_drop; 362 u32 ale_unknown_ucast_bytes;
363 u32 ale_unknown_mcast;
364 u32 ale_unknown_mcast_bytes;
365 u32 ale_unknown_bcast;
366 u32 ale_unknown_bcast_bytes;
367 u32 ale_pol_match;
368 u32 ale_pol_match_red;
369 u32 ale_pol_match_yellow;
370 u32 rsvd1[44];
371 u32 tx_mem_protect_err;
372 u32 tx_pri0;
373 u32 tx_pri1;
374 u32 tx_pri2;
375 u32 tx_pri3;
376 u32 tx_pri4;
377 u32 tx_pri5;
378 u32 tx_pri6;
379 u32 tx_pri7;
380 u32 tx_pri0_bcnt;
381 u32 tx_pri1_bcnt;
382 u32 tx_pri2_bcnt;
383 u32 tx_pri3_bcnt;
384 u32 tx_pri4_bcnt;
385 u32 tx_pri5_bcnt;
386 u32 tx_pri6_bcnt;
387 u32 tx_pri7_bcnt;
388 u32 tx_pri0_drop;
389 u32 tx_pri1_drop;
390 u32 tx_pri2_drop;
391 u32 tx_pri3_drop;
392 u32 tx_pri4_drop;
393 u32 tx_pri5_drop;
394 u32 tx_pri6_drop;
395 u32 tx_pri7_drop;
396 u32 tx_pri0_drop_bcnt;
397 u32 tx_pri1_drop_bcnt;
398 u32 tx_pri2_drop_bcnt;
399 u32 tx_pri3_drop_bcnt;
400 u32 tx_pri4_drop_bcnt;
401 u32 tx_pri5_drop_bcnt;
402 u32 tx_pri6_drop_bcnt;
403 u32 tx_pri7_drop_bcnt;
363}; 404};
364 405
365/* Offset 0x3e000 */ 406/* Offset 0x3e000 */
@@ -495,9 +536,32 @@ static const struct netcp2_ethtool_stat et_stats[] = {
495 {CPSW2_STATS0_INFO(ale_rate_limit_drop)}, 536 {CPSW2_STATS0_INFO(ale_rate_limit_drop)},
496 {CPSW2_STATS0_INFO(ale_vid_ingress_drop)}, 537 {CPSW2_STATS0_INFO(ale_vid_ingress_drop)},
497 {CPSW2_STATS0_INFO(ale_da_eq_sa_drop)}, 538 {CPSW2_STATS0_INFO(ale_da_eq_sa_drop)},
498 {CPSW2_STATS0_INFO(ale_block_drop)}, 539 {CPSW2_STATS0_INFO(ale_unknown_ucast)},
499 {CPSW2_STATS0_INFO(ale_secure_drop)}, 540 {CPSW2_STATS0_INFO(ale_unknown_ucast_bytes)},
500 {CPSW2_STATS0_INFO(ale_auth_drop)}, 541 {CPSW2_STATS0_INFO(ale_unknown_mcast)},
542 {CPSW2_STATS0_INFO(ale_unknown_mcast_bytes)},
543 {CPSW2_STATS0_INFO(ale_unknown_bcast)},
544 {CPSW2_STATS0_INFO(ale_unknown_bcast_bytes)},
545 {CPSW2_STATS0_INFO(ale_pol_match)},
546 {CPSW2_STATS0_INFO(ale_pol_match_red)},
547 {CPSW2_STATS0_INFO(ale_pol_match_yellow)},
548 {CPSW2_STATS0_INFO(tx_mem_protect_err)},
549 {CPSW2_STATS0_INFO(tx_pri0_drop)},
550 {CPSW2_STATS0_INFO(tx_pri1_drop)},
551 {CPSW2_STATS0_INFO(tx_pri2_drop)},
552 {CPSW2_STATS0_INFO(tx_pri3_drop)},
553 {CPSW2_STATS0_INFO(tx_pri4_drop)},
554 {CPSW2_STATS0_INFO(tx_pri5_drop)},
555 {CPSW2_STATS0_INFO(tx_pri6_drop)},
556 {CPSW2_STATS0_INFO(tx_pri7_drop)},
557 {CPSW2_STATS0_INFO(tx_pri0_drop_bcnt)},
558 {CPSW2_STATS0_INFO(tx_pri1_drop_bcnt)},
559 {CPSW2_STATS0_INFO(tx_pri2_drop_bcnt)},
560 {CPSW2_STATS0_INFO(tx_pri3_drop_bcnt)},
561 {CPSW2_STATS0_INFO(tx_pri4_drop_bcnt)},
562 {CPSW2_STATS0_INFO(tx_pri5_drop_bcnt)},
563 {CPSW2_STATS0_INFO(tx_pri6_drop_bcnt)},
564 {CPSW2_STATS0_INFO(tx_pri7_drop_bcnt)},
501 /* CPSW module 1 */ 565 /* CPSW module 1 */
502 {CPSW2_STATS1_INFO(rx_good_frames)}, 566 {CPSW2_STATS1_INFO(rx_good_frames)},
503 {CPSW2_STATS1_INFO(rx_broadcast_frames)}, 567 {CPSW2_STATS1_INFO(rx_broadcast_frames)},
@@ -538,9 +602,32 @@ static const struct netcp2_ethtool_stat et_stats[] = {
538 {CPSW2_STATS1_INFO(ale_rate_limit_drop)}, 602 {CPSW2_STATS1_INFO(ale_rate_limit_drop)},
539 {CPSW2_STATS1_INFO(ale_vid_ingress_drop)}, 603 {CPSW2_STATS1_INFO(ale_vid_ingress_drop)},
540 {CPSW2_STATS1_INFO(ale_da_eq_sa_drop)}, 604 {CPSW2_STATS1_INFO(ale_da_eq_sa_drop)},
541 {CPSW2_STATS1_INFO(ale_block_drop)}, 605 {CPSW2_STATS1_INFO(ale_unknown_ucast)},
542 {CPSW2_STATS1_INFO(ale_secure_drop)}, 606 {CPSW2_STATS1_INFO(ale_unknown_ucast_bytes)},
543 {CPSW2_STATS1_INFO(ale_auth_drop)}, 607 {CPSW2_STATS1_INFO(ale_unknown_mcast)},
608 {CPSW2_STATS1_INFO(ale_unknown_mcast_bytes)},
609 {CPSW2_STATS1_INFO(ale_unknown_bcast)},
610 {CPSW2_STATS1_INFO(ale_unknown_bcast_bytes)},
611 {CPSW2_STATS1_INFO(ale_pol_match)},
612 {CPSW2_STATS1_INFO(ale_pol_match_red)},
613 {CPSW2_STATS1_INFO(ale_pol_match_yellow)},
614 {CPSW2_STATS1_INFO(tx_mem_protect_err)},
615 {CPSW2_STATS1_INFO(tx_pri0_drop)},
616 {CPSW2_STATS1_INFO(tx_pri1_drop)},
617 {CPSW2_STATS1_INFO(tx_pri2_drop)},
618 {CPSW2_STATS1_INFO(tx_pri3_drop)},
619 {CPSW2_STATS1_INFO(tx_pri4_drop)},
620 {CPSW2_STATS1_INFO(tx_pri5_drop)},
621 {CPSW2_STATS1_INFO(tx_pri6_drop)},
622 {CPSW2_STATS1_INFO(tx_pri7_drop)},
623 {CPSW2_STATS1_INFO(tx_pri0_drop_bcnt)},
624 {CPSW2_STATS1_INFO(tx_pri1_drop_bcnt)},
625 {CPSW2_STATS1_INFO(tx_pri2_drop_bcnt)},
626 {CPSW2_STATS1_INFO(tx_pri3_drop_bcnt)},
627 {CPSW2_STATS1_INFO(tx_pri4_drop_bcnt)},
628 {CPSW2_STATS1_INFO(tx_pri5_drop_bcnt)},
629 {CPSW2_STATS1_INFO(tx_pri6_drop_bcnt)},
630 {CPSW2_STATS1_INFO(tx_pri7_drop_bcnt)},
544 /* CPSW module 2 */ 631 /* CPSW module 2 */
545 {CPSW2_STATS2_INFO(rx_good_frames)}, 632 {CPSW2_STATS2_INFO(rx_good_frames)},
546 {CPSW2_STATS2_INFO(rx_broadcast_frames)}, 633 {CPSW2_STATS2_INFO(rx_broadcast_frames)},
@@ -581,9 +668,32 @@ static const struct netcp2_ethtool_stat et_stats[] = {
581 {CPSW2_STATS2_INFO(ale_rate_limit_drop)}, 668 {CPSW2_STATS2_INFO(ale_rate_limit_drop)},
582 {CPSW2_STATS2_INFO(ale_vid_ingress_drop)}, 669 {CPSW2_STATS2_INFO(ale_vid_ingress_drop)},
583 {CPSW2_STATS2_INFO(ale_da_eq_sa_drop)}, 670 {CPSW2_STATS2_INFO(ale_da_eq_sa_drop)},
584 {CPSW2_STATS2_INFO(ale_block_drop)}, 671 {CPSW2_STATS2_INFO(ale_unknown_ucast)},
585 {CPSW2_STATS2_INFO(ale_secure_drop)}, 672 {CPSW2_STATS2_INFO(ale_unknown_ucast_bytes)},
586 {CPSW2_STATS2_INFO(ale_auth_drop)}, 673 {CPSW2_STATS2_INFO(ale_unknown_mcast)},
674 {CPSW2_STATS2_INFO(ale_unknown_mcast_bytes)},
675 {CPSW2_STATS2_INFO(ale_unknown_bcast)},
676 {CPSW2_STATS2_INFO(ale_unknown_bcast_bytes)},
677 {CPSW2_STATS2_INFO(ale_pol_match)},
678 {CPSW2_STATS2_INFO(ale_pol_match_red)},
679 {CPSW2_STATS2_INFO(ale_pol_match_yellow)},
680 {CPSW2_STATS2_INFO(tx_mem_protect_err)},
681 {CPSW2_STATS2_INFO(tx_pri0_drop)},
682 {CPSW2_STATS2_INFO(tx_pri1_drop)},
683 {CPSW2_STATS2_INFO(tx_pri2_drop)},
684 {CPSW2_STATS2_INFO(tx_pri3_drop)},
685 {CPSW2_STATS2_INFO(tx_pri4_drop)},
686 {CPSW2_STATS2_INFO(tx_pri5_drop)},
687 {CPSW2_STATS2_INFO(tx_pri6_drop)},
688 {CPSW2_STATS2_INFO(tx_pri7_drop)},
689 {CPSW2_STATS2_INFO(tx_pri0_drop_bcnt)},
690 {CPSW2_STATS2_INFO(tx_pri1_drop_bcnt)},
691 {CPSW2_STATS2_INFO(tx_pri2_drop_bcnt)},
692 {CPSW2_STATS2_INFO(tx_pri3_drop_bcnt)},
693 {CPSW2_STATS2_INFO(tx_pri4_drop_bcnt)},
694 {CPSW2_STATS2_INFO(tx_pri5_drop_bcnt)},
695 {CPSW2_STATS2_INFO(tx_pri6_drop_bcnt)},
696 {CPSW2_STATS2_INFO(tx_pri7_drop_bcnt)},
587 /* CPSW module 3 */ 697 /* CPSW module 3 */
588 {CPSW2_STATS3_INFO(rx_good_frames)}, 698 {CPSW2_STATS3_INFO(rx_good_frames)},
589 {CPSW2_STATS3_INFO(rx_broadcast_frames)}, 699 {CPSW2_STATS3_INFO(rx_broadcast_frames)},
@@ -624,9 +734,32 @@ static const struct netcp2_ethtool_stat et_stats[] = {
624 {CPSW2_STATS3_INFO(ale_rate_limit_drop)}, 734 {CPSW2_STATS3_INFO(ale_rate_limit_drop)},
625 {CPSW2_STATS3_INFO(ale_vid_ingress_drop)}, 735 {CPSW2_STATS3_INFO(ale_vid_ingress_drop)},
626 {CPSW2_STATS3_INFO(ale_da_eq_sa_drop)}, 736 {CPSW2_STATS3_INFO(ale_da_eq_sa_drop)},
627 {CPSW2_STATS3_INFO(ale_block_drop)}, 737 {CPSW2_STATS3_INFO(ale_unknown_ucast)},
628 {CPSW2_STATS3_INFO(ale_secure_drop)}, 738 {CPSW2_STATS3_INFO(ale_unknown_ucast_bytes)},
629 {CPSW2_STATS3_INFO(ale_auth_drop)}, 739 {CPSW2_STATS3_INFO(ale_unknown_mcast)},
740 {CPSW2_STATS3_INFO(ale_unknown_mcast_bytes)},
741 {CPSW2_STATS3_INFO(ale_unknown_bcast)},
742 {CPSW2_STATS3_INFO(ale_unknown_bcast_bytes)},
743 {CPSW2_STATS3_INFO(ale_pol_match)},
744 {CPSW2_STATS3_INFO(ale_pol_match_red)},
745 {CPSW2_STATS3_INFO(ale_pol_match_yellow)},
746 {CPSW2_STATS3_INFO(tx_mem_protect_err)},
747 {CPSW2_STATS3_INFO(tx_pri0_drop)},
748 {CPSW2_STATS3_INFO(tx_pri1_drop)},
749 {CPSW2_STATS3_INFO(tx_pri2_drop)},
750 {CPSW2_STATS3_INFO(tx_pri3_drop)},
751 {CPSW2_STATS3_INFO(tx_pri4_drop)},
752 {CPSW2_STATS3_INFO(tx_pri5_drop)},
753 {CPSW2_STATS3_INFO(tx_pri6_drop)},
754 {CPSW2_STATS3_INFO(tx_pri7_drop)},
755 {CPSW2_STATS3_INFO(tx_pri0_drop_bcnt)},
756 {CPSW2_STATS3_INFO(tx_pri1_drop_bcnt)},
757 {CPSW2_STATS3_INFO(tx_pri2_drop_bcnt)},
758 {CPSW2_STATS3_INFO(tx_pri3_drop_bcnt)},
759 {CPSW2_STATS3_INFO(tx_pri4_drop_bcnt)},
760 {CPSW2_STATS3_INFO(tx_pri5_drop_bcnt)},
761 {CPSW2_STATS3_INFO(tx_pri6_drop_bcnt)},
762 {CPSW2_STATS3_INFO(tx_pri7_drop_bcnt)},
630 /* CPSW module 4 */ 763 /* CPSW module 4 */
631 {CPSW2_STATS4_INFO(rx_good_frames)}, 764 {CPSW2_STATS4_INFO(rx_good_frames)},
632 {CPSW2_STATS4_INFO(rx_broadcast_frames)}, 765 {CPSW2_STATS4_INFO(rx_broadcast_frames)},
@@ -667,9 +800,32 @@ static const struct netcp2_ethtool_stat et_stats[] = {
667 {CPSW2_STATS4_INFO(ale_rate_limit_drop)}, 800 {CPSW2_STATS4_INFO(ale_rate_limit_drop)},
668 {CPSW2_STATS4_INFO(ale_vid_ingress_drop)}, 801 {CPSW2_STATS4_INFO(ale_vid_ingress_drop)},
669 {CPSW2_STATS4_INFO(ale_da_eq_sa_drop)}, 802 {CPSW2_STATS4_INFO(ale_da_eq_sa_drop)},
670 {CPSW2_STATS4_INFO(ale_block_drop)}, 803 {CPSW2_STATS4_INFO(ale_unknown_ucast)},
671 {CPSW2_STATS4_INFO(ale_secure_drop)}, 804 {CPSW2_STATS4_INFO(ale_unknown_ucast_bytes)},
672 {CPSW2_STATS4_INFO(ale_auth_drop)}, 805 {CPSW2_STATS4_INFO(ale_unknown_mcast)},
806 {CPSW2_STATS4_INFO(ale_unknown_mcast_bytes)},
807 {CPSW2_STATS4_INFO(ale_unknown_bcast)},
808 {CPSW2_STATS4_INFO(ale_unknown_bcast_bytes)},
809 {CPSW2_STATS4_INFO(ale_pol_match)},
810 {CPSW2_STATS4_INFO(ale_pol_match_red)},
811 {CPSW2_STATS4_INFO(ale_pol_match_yellow)},
812 {CPSW2_STATS4_INFO(tx_mem_protect_err)},
813 {CPSW2_STATS4_INFO(tx_pri0_drop)},
814 {CPSW2_STATS4_INFO(tx_pri1_drop)},
815 {CPSW2_STATS4_INFO(tx_pri2_drop)},
816 {CPSW2_STATS4_INFO(tx_pri3_drop)},
817 {CPSW2_STATS4_INFO(tx_pri4_drop)},
818 {CPSW2_STATS4_INFO(tx_pri5_drop)},
819 {CPSW2_STATS4_INFO(tx_pri6_drop)},
820 {CPSW2_STATS4_INFO(tx_pri7_drop)},
821 {CPSW2_STATS4_INFO(tx_pri0_drop_bcnt)},
822 {CPSW2_STATS4_INFO(tx_pri1_drop_bcnt)},
823 {CPSW2_STATS4_INFO(tx_pri2_drop_bcnt)},
824 {CPSW2_STATS4_INFO(tx_pri3_drop_bcnt)},
825 {CPSW2_STATS4_INFO(tx_pri4_drop_bcnt)},
826 {CPSW2_STATS4_INFO(tx_pri5_drop_bcnt)},
827 {CPSW2_STATS4_INFO(tx_pri6_drop_bcnt)},
828 {CPSW2_STATS4_INFO(tx_pri7_drop_bcnt)},
673 /* CPSW module 5 */ 829 /* CPSW module 5 */
674 {CPSW2_STATS5_INFO(rx_good_frames)}, 830 {CPSW2_STATS5_INFO(rx_good_frames)},
675 {CPSW2_STATS5_INFO(rx_broadcast_frames)}, 831 {CPSW2_STATS5_INFO(rx_broadcast_frames)},
@@ -710,9 +866,32 @@ static const struct netcp2_ethtool_stat et_stats[] = {
710 {CPSW2_STATS5_INFO(ale_rate_limit_drop)}, 866 {CPSW2_STATS5_INFO(ale_rate_limit_drop)},
711 {CPSW2_STATS5_INFO(ale_vid_ingress_drop)}, 867 {CPSW2_STATS5_INFO(ale_vid_ingress_drop)},
712 {CPSW2_STATS5_INFO(ale_da_eq_sa_drop)}, 868 {CPSW2_STATS5_INFO(ale_da_eq_sa_drop)},
713 {CPSW2_STATS5_INFO(ale_block_drop)}, 869 {CPSW2_STATS5_INFO(ale_unknown_ucast)},
714 {CPSW2_STATS5_INFO(ale_secure_drop)}, 870 {CPSW2_STATS5_INFO(ale_unknown_ucast_bytes)},
715 {CPSW2_STATS5_INFO(ale_auth_drop)}, 871 {CPSW2_STATS5_INFO(ale_unknown_mcast)},
872 {CPSW2_STATS5_INFO(ale_unknown_mcast_bytes)},
873 {CPSW2_STATS5_INFO(ale_unknown_bcast)},
874 {CPSW2_STATS5_INFO(ale_unknown_bcast_bytes)},
875 {CPSW2_STATS5_INFO(ale_pol_match)},
876 {CPSW2_STATS5_INFO(ale_pol_match_red)},
877 {CPSW2_STATS5_INFO(ale_pol_match_yellow)},
878 {CPSW2_STATS5_INFO(tx_mem_protect_err)},
879 {CPSW2_STATS5_INFO(tx_pri0_drop)},
880 {CPSW2_STATS5_INFO(tx_pri1_drop)},
881 {CPSW2_STATS5_INFO(tx_pri2_drop)},
882 {CPSW2_STATS5_INFO(tx_pri3_drop)},
883 {CPSW2_STATS5_INFO(tx_pri4_drop)},
884 {CPSW2_STATS5_INFO(tx_pri5_drop)},
885 {CPSW2_STATS5_INFO(tx_pri6_drop)},
886 {CPSW2_STATS5_INFO(tx_pri7_drop)},
887 {CPSW2_STATS5_INFO(tx_pri0_drop_bcnt)},
888 {CPSW2_STATS5_INFO(tx_pri1_drop_bcnt)},
889 {CPSW2_STATS5_INFO(tx_pri2_drop_bcnt)},
890 {CPSW2_STATS5_INFO(tx_pri3_drop_bcnt)},
891 {CPSW2_STATS5_INFO(tx_pri4_drop_bcnt)},
892 {CPSW2_STATS5_INFO(tx_pri5_drop_bcnt)},
893 {CPSW2_STATS5_INFO(tx_pri6_drop_bcnt)},
894 {CPSW2_STATS5_INFO(tx_pri7_drop_bcnt)},
716 /* CPSW module 6 */ 895 /* CPSW module 6 */
717 {CPSW2_STATS6_INFO(rx_good_frames)}, 896 {CPSW2_STATS6_INFO(rx_good_frames)},
718 {CPSW2_STATS6_INFO(rx_broadcast_frames)}, 897 {CPSW2_STATS6_INFO(rx_broadcast_frames)},
@@ -753,9 +932,32 @@ static const struct netcp2_ethtool_stat et_stats[] = {
753 {CPSW2_STATS6_INFO(ale_rate_limit_drop)}, 932 {CPSW2_STATS6_INFO(ale_rate_limit_drop)},
754 {CPSW2_STATS6_INFO(ale_vid_ingress_drop)}, 933 {CPSW2_STATS6_INFO(ale_vid_ingress_drop)},
755 {CPSW2_STATS6_INFO(ale_da_eq_sa_drop)}, 934 {CPSW2_STATS6_INFO(ale_da_eq_sa_drop)},
756 {CPSW2_STATS6_INFO(ale_block_drop)}, 935 {CPSW2_STATS6_INFO(ale_unknown_ucast)},
757 {CPSW2_STATS6_INFO(ale_secure_drop)}, 936 {CPSW2_STATS6_INFO(ale_unknown_ucast_bytes)},
758 {CPSW2_STATS6_INFO(ale_auth_drop)}, 937 {CPSW2_STATS6_INFO(ale_unknown_mcast)},
938 {CPSW2_STATS6_INFO(ale_unknown_mcast_bytes)},
939 {CPSW2_STATS6_INFO(ale_unknown_bcast)},
940 {CPSW2_STATS6_INFO(ale_unknown_bcast_bytes)},
941 {CPSW2_STATS6_INFO(ale_pol_match)},
942 {CPSW2_STATS6_INFO(ale_pol_match_red)},
943 {CPSW2_STATS6_INFO(ale_pol_match_yellow)},
944 {CPSW2_STATS6_INFO(tx_mem_protect_err)},
945 {CPSW2_STATS6_INFO(tx_pri0_drop)},
946 {CPSW2_STATS6_INFO(tx_pri1_drop)},
947 {CPSW2_STATS6_INFO(tx_pri2_drop)},
948 {CPSW2_STATS6_INFO(tx_pri3_drop)},
949 {CPSW2_STATS6_INFO(tx_pri4_drop)},
950 {CPSW2_STATS6_INFO(tx_pri5_drop)},
951 {CPSW2_STATS6_INFO(tx_pri6_drop)},
952 {CPSW2_STATS6_INFO(tx_pri7_drop)},
953 {CPSW2_STATS6_INFO(tx_pri0_drop_bcnt)},
954 {CPSW2_STATS6_INFO(tx_pri1_drop_bcnt)},
955 {CPSW2_STATS6_INFO(tx_pri2_drop_bcnt)},
956 {CPSW2_STATS6_INFO(tx_pri3_drop_bcnt)},
957 {CPSW2_STATS6_INFO(tx_pri4_drop_bcnt)},
958 {CPSW2_STATS6_INFO(tx_pri5_drop_bcnt)},
959 {CPSW2_STATS6_INFO(tx_pri6_drop_bcnt)},
960 {CPSW2_STATS6_INFO(tx_pri7_drop_bcnt)},
759 /* CPSW module 7 */ 961 /* CPSW module 7 */
760 {CPSW2_STATS7_INFO(rx_good_frames)}, 962 {CPSW2_STATS7_INFO(rx_good_frames)},
761 {CPSW2_STATS7_INFO(rx_broadcast_frames)}, 963 {CPSW2_STATS7_INFO(rx_broadcast_frames)},
@@ -796,9 +998,32 @@ static const struct netcp2_ethtool_stat et_stats[] = {
796 {CPSW2_STATS7_INFO(ale_rate_limit_drop)}, 998 {CPSW2_STATS7_INFO(ale_rate_limit_drop)},
797 {CPSW2_STATS7_INFO(ale_vid_ingress_drop)}, 999 {CPSW2_STATS7_INFO(ale_vid_ingress_drop)},
798 {CPSW2_STATS7_INFO(ale_da_eq_sa_drop)}, 1000 {CPSW2_STATS7_INFO(ale_da_eq_sa_drop)},
799 {CPSW2_STATS7_INFO(ale_block_drop)}, 1001 {CPSW2_STATS7_INFO(ale_unknown_ucast)},
800 {CPSW2_STATS7_INFO(ale_secure_drop)}, 1002 {CPSW2_STATS7_INFO(ale_unknown_ucast_bytes)},
801 {CPSW2_STATS7_INFO(ale_auth_drop)}, 1003 {CPSW2_STATS7_INFO(ale_unknown_mcast)},
1004 {CPSW2_STATS7_INFO(ale_unknown_mcast_bytes)},
1005 {CPSW2_STATS7_INFO(ale_unknown_bcast)},
1006 {CPSW2_STATS7_INFO(ale_unknown_bcast_bytes)},
1007 {CPSW2_STATS7_INFO(ale_pol_match)},
1008 {CPSW2_STATS7_INFO(ale_pol_match_red)},
1009 {CPSW2_STATS7_INFO(ale_pol_match_yellow)},
1010 {CPSW2_STATS7_INFO(tx_mem_protect_err)},
1011 {CPSW2_STATS7_INFO(tx_pri0_drop)},
1012 {CPSW2_STATS7_INFO(tx_pri1_drop)},
1013 {CPSW2_STATS7_INFO(tx_pri2_drop)},
1014 {CPSW2_STATS7_INFO(tx_pri3_drop)},
1015 {CPSW2_STATS7_INFO(tx_pri4_drop)},
1016 {CPSW2_STATS7_INFO(tx_pri5_drop)},
1017 {CPSW2_STATS7_INFO(tx_pri6_drop)},
1018 {CPSW2_STATS7_INFO(tx_pri7_drop)},
1019 {CPSW2_STATS7_INFO(tx_pri0_drop_bcnt)},
1020 {CPSW2_STATS7_INFO(tx_pri1_drop_bcnt)},
1021 {CPSW2_STATS7_INFO(tx_pri2_drop_bcnt)},
1022 {CPSW2_STATS7_INFO(tx_pri3_drop_bcnt)},
1023 {CPSW2_STATS7_INFO(tx_pri4_drop_bcnt)},
1024 {CPSW2_STATS7_INFO(tx_pri5_drop_bcnt)},
1025 {CPSW2_STATS7_INFO(tx_pri6_drop_bcnt)},
1026 {CPSW2_STATS7_INFO(tx_pri7_drop_bcnt)},
802 /* CPSW module 8 */ 1027 /* CPSW module 8 */
803 {CPSW2_STATS8_INFO(rx_good_frames)}, 1028 {CPSW2_STATS8_INFO(rx_good_frames)},
804 {CPSW2_STATS8_INFO(rx_broadcast_frames)}, 1029 {CPSW2_STATS8_INFO(rx_broadcast_frames)},
@@ -839,9 +1064,32 @@ static const struct netcp2_ethtool_stat et_stats[] = {
839 {CPSW2_STATS8_INFO(ale_rate_limit_drop)}, 1064 {CPSW2_STATS8_INFO(ale_rate_limit_drop)},
840 {CPSW2_STATS8_INFO(ale_vid_ingress_drop)}, 1065 {CPSW2_STATS8_INFO(ale_vid_ingress_drop)},
841 {CPSW2_STATS8_INFO(ale_da_eq_sa_drop)}, 1066 {CPSW2_STATS8_INFO(ale_da_eq_sa_drop)},
842 {CPSW2_STATS8_INFO(ale_block_drop)}, 1067 {CPSW2_STATS8_INFO(ale_unknown_ucast)},
843 {CPSW2_STATS8_INFO(ale_secure_drop)}, 1068 {CPSW2_STATS8_INFO(ale_unknown_ucast_bytes)},
844 {CPSW2_STATS8_INFO(ale_auth_drop)}, 1069 {CPSW2_STATS8_INFO(ale_unknown_mcast)},
1070 {CPSW2_STATS8_INFO(ale_unknown_mcast_bytes)},
1071 {CPSW2_STATS8_INFO(ale_unknown_bcast)},
1072 {CPSW2_STATS8_INFO(ale_unknown_bcast_bytes)},
1073 {CPSW2_STATS8_INFO(ale_pol_match)},
1074 {CPSW2_STATS8_INFO(ale_pol_match_red)},
1075 {CPSW2_STATS8_INFO(ale_pol_match_yellow)},
1076 {CPSW2_STATS8_INFO(tx_mem_protect_err)},
1077 {CPSW2_STATS8_INFO(tx_pri0_drop)},
1078 {CPSW2_STATS8_INFO(tx_pri1_drop)},
1079 {CPSW2_STATS8_INFO(tx_pri2_drop)},
1080 {CPSW2_STATS8_INFO(tx_pri3_drop)},
1081 {CPSW2_STATS8_INFO(tx_pri4_drop)},
1082 {CPSW2_STATS8_INFO(tx_pri5_drop)},
1083 {CPSW2_STATS8_INFO(tx_pri6_drop)},
1084 {CPSW2_STATS8_INFO(tx_pri7_drop)},
1085 {CPSW2_STATS8_INFO(tx_pri0_drop_bcnt)},
1086 {CPSW2_STATS8_INFO(tx_pri1_drop_bcnt)},
1087 {CPSW2_STATS8_INFO(tx_pri2_drop_bcnt)},
1088 {CPSW2_STATS8_INFO(tx_pri3_drop_bcnt)},
1089 {CPSW2_STATS8_INFO(tx_pri4_drop_bcnt)},
1090 {CPSW2_STATS8_INFO(tx_pri5_drop_bcnt)},
1091 {CPSW2_STATS8_INFO(tx_pri6_drop_bcnt)},
1092 {CPSW2_STATS8_INFO(tx_pri7_drop_bcnt)},
845}; 1093};
846 1094
847#define ETHTOOL_PORT_STATS_NUM (ARRAY_SIZE(et_stats)/CPSW2_NUM_PORTS) 1095#define ETHTOOL_PORT_STATS_NUM (ARRAY_SIZE(et_stats)/CPSW2_NUM_PORTS)