xref: /dpdk/drivers/net/ntnic/include/hw_mod_km_v7.h (revision 3005c75d6b55c73eeb2c25406b7901bac5b54d6d)
1*3005c75dSOleksandr Kolomeiets /*
2*3005c75dSOleksandr Kolomeiets  * SPDX-License-Identifier: BSD-3-Clause
3*3005c75dSOleksandr Kolomeiets  * Copyright(c) 2023 Napatech A/S
4*3005c75dSOleksandr Kolomeiets  */
5*3005c75dSOleksandr Kolomeiets 
6*3005c75dSOleksandr Kolomeiets #ifndef _HW_MOD_KM_V7_H_
7*3005c75dSOleksandr Kolomeiets #define _HW_MOD_KM_V7_H_
8*3005c75dSOleksandr Kolomeiets 
9*3005c75dSOleksandr Kolomeiets #include <stdint.h>
10*3005c75dSOleksandr Kolomeiets 
11*3005c75dSOleksandr Kolomeiets struct km_v7_rcp_s {
12*3005c75dSOleksandr Kolomeiets 	uint32_t qw0_dyn;
13*3005c75dSOleksandr Kolomeiets 	int32_t qw0_ofs;
14*3005c75dSOleksandr Kolomeiets 	uint32_t qw0_sel_a;
15*3005c75dSOleksandr Kolomeiets 	uint32_t qw0_sel_b;
16*3005c75dSOleksandr Kolomeiets 	uint32_t qw4_dyn;
17*3005c75dSOleksandr Kolomeiets 	int32_t qw4_ofs;
18*3005c75dSOleksandr Kolomeiets 	uint32_t qw4_sel_a;
19*3005c75dSOleksandr Kolomeiets 	uint32_t qw4_sel_b;
20*3005c75dSOleksandr Kolomeiets 	uint32_t dw8_dyn;
21*3005c75dSOleksandr Kolomeiets 	int32_t dw8_ofs;
22*3005c75dSOleksandr Kolomeiets 	uint32_t dw8_sel_a;
23*3005c75dSOleksandr Kolomeiets 	uint32_t dw8_sel_b;
24*3005c75dSOleksandr Kolomeiets 	uint32_t dw10_dyn;
25*3005c75dSOleksandr Kolomeiets 	int32_t dw10_ofs;
26*3005c75dSOleksandr Kolomeiets 	uint32_t dw10_sel_a;
27*3005c75dSOleksandr Kolomeiets 	uint32_t dw10_sel_b;
28*3005c75dSOleksandr Kolomeiets 	uint32_t swx_cch;
29*3005c75dSOleksandr Kolomeiets 	uint32_t swx_sel_a;
30*3005c75dSOleksandr Kolomeiets 	uint32_t swx_sel_b;
31*3005c75dSOleksandr Kolomeiets 	uint32_t mask_d_a[12];
32*3005c75dSOleksandr Kolomeiets 	uint32_t mask_b[6];
33*3005c75dSOleksandr Kolomeiets 	uint32_t dual;
34*3005c75dSOleksandr Kolomeiets 	uint32_t paired;
35*3005c75dSOleksandr Kolomeiets 	uint32_t el_a;
36*3005c75dSOleksandr Kolomeiets 	uint32_t el_b;
37*3005c75dSOleksandr Kolomeiets 	uint32_t info_a;
38*3005c75dSOleksandr Kolomeiets 	uint32_t info_b;
39*3005c75dSOleksandr Kolomeiets 	uint32_t ftm_a;
40*3005c75dSOleksandr Kolomeiets 	uint32_t ftm_b;
41*3005c75dSOleksandr Kolomeiets 	uint32_t bank_a;
42*3005c75dSOleksandr Kolomeiets 	uint32_t bank_b;
43*3005c75dSOleksandr Kolomeiets 	uint32_t kl_a;
44*3005c75dSOleksandr Kolomeiets 	uint32_t kl_b;
45*3005c75dSOleksandr Kolomeiets 	uint32_t keyway_a;
46*3005c75dSOleksandr Kolomeiets 	uint32_t keyway_b;
47*3005c75dSOleksandr Kolomeiets 	uint32_t synergy_mode;
48*3005c75dSOleksandr Kolomeiets 	uint32_t dw0_b_dyn;
49*3005c75dSOleksandr Kolomeiets 	int32_t dw0_b_ofs;
50*3005c75dSOleksandr Kolomeiets 	uint32_t dw2_b_dyn;
51*3005c75dSOleksandr Kolomeiets 	int32_t dw2_b_ofs;
52*3005c75dSOleksandr Kolomeiets 	uint32_t sw4_b_dyn;
53*3005c75dSOleksandr Kolomeiets 	int32_t sw4_b_ofs;
54*3005c75dSOleksandr Kolomeiets 	uint32_t sw5_b_dyn;
55*3005c75dSOleksandr Kolomeiets 	int32_t sw5_b_ofs;
56*3005c75dSOleksandr Kolomeiets };
57*3005c75dSOleksandr Kolomeiets 
58*3005c75dSOleksandr Kolomeiets struct km_v7_cam_s {
59*3005c75dSOleksandr Kolomeiets 	uint32_t w0;
60*3005c75dSOleksandr Kolomeiets 	uint32_t w1;
61*3005c75dSOleksandr Kolomeiets 	uint32_t w2;
62*3005c75dSOleksandr Kolomeiets 	uint32_t w3;
63*3005c75dSOleksandr Kolomeiets 	uint32_t w4;
64*3005c75dSOleksandr Kolomeiets 	uint32_t w5;
65*3005c75dSOleksandr Kolomeiets 	uint32_t ft0;
66*3005c75dSOleksandr Kolomeiets 	uint32_t ft1;
67*3005c75dSOleksandr Kolomeiets 	uint32_t ft2;
68*3005c75dSOleksandr Kolomeiets 	uint32_t ft3;
69*3005c75dSOleksandr Kolomeiets 	uint32_t ft4;
70*3005c75dSOleksandr Kolomeiets 	uint32_t ft5;
71*3005c75dSOleksandr Kolomeiets };
72*3005c75dSOleksandr Kolomeiets 
73*3005c75dSOleksandr Kolomeiets struct km_v7_tcam_s {
74*3005c75dSOleksandr Kolomeiets 	uint32_t t[3];
75*3005c75dSOleksandr Kolomeiets 	uint32_t dirty;
76*3005c75dSOleksandr Kolomeiets };
77*3005c75dSOleksandr Kolomeiets 
78*3005c75dSOleksandr Kolomeiets struct km_v7_tci_s {
79*3005c75dSOleksandr Kolomeiets 	uint32_t color;
80*3005c75dSOleksandr Kolomeiets 	uint32_t ft;
81*3005c75dSOleksandr Kolomeiets };
82*3005c75dSOleksandr Kolomeiets 
83*3005c75dSOleksandr Kolomeiets struct km_v7_tcq_s {
84*3005c75dSOleksandr Kolomeiets 	uint32_t bank_mask;
85*3005c75dSOleksandr Kolomeiets 	uint32_t qual;
86*3005c75dSOleksandr Kolomeiets };
87*3005c75dSOleksandr Kolomeiets 
88*3005c75dSOleksandr Kolomeiets struct hw_mod_km_v7_s {
89*3005c75dSOleksandr Kolomeiets 	struct km_v7_rcp_s *rcp;
90*3005c75dSOleksandr Kolomeiets 	struct km_v7_cam_s *cam;
91*3005c75dSOleksandr Kolomeiets 	struct km_v7_tcam_s *tcam;
92*3005c75dSOleksandr Kolomeiets 	struct km_v7_tci_s *tci;
93*3005c75dSOleksandr Kolomeiets 	struct km_v7_tcq_s *tcq;
94*3005c75dSOleksandr Kolomeiets };
95*3005c75dSOleksandr Kolomeiets 
96*3005c75dSOleksandr Kolomeiets #endif	/* _HW_MOD_KM_V7_H_ */
97