xref: /linux/drivers/net/ethernet/microchip/sparx5/lan969x/lan969x_vcap_impl.c (revision 150b567e0d572342ef08bace7ee7aff80fd75327)
1*1cd7523fSDaniel Machon // SPDX-License-Identifier: GPL-2.0+
2*1cd7523fSDaniel Machon 
3*1cd7523fSDaniel Machon #include "vcap_api.h"
4*1cd7523fSDaniel Machon #include "lan969x.h"
5*1cd7523fSDaniel Machon 
6*1cd7523fSDaniel Machon const struct sparx5_vcap_inst lan969x_vcap_inst_cfg[] = {
7*1cd7523fSDaniel Machon 	{
8*1cd7523fSDaniel Machon 		.vtype = VCAP_TYPE_IS0, /* CLM-0 */
9*1cd7523fSDaniel Machon 		.vinst = 0,
10*1cd7523fSDaniel Machon 		.map_id = 1,
11*1cd7523fSDaniel Machon 		.lookups = SPARX5_IS0_LOOKUPS,
12*1cd7523fSDaniel Machon 		.lookups_per_instance = SPARX5_IS0_LOOKUPS / 3,
13*1cd7523fSDaniel Machon 		.first_cid = SPARX5_VCAP_CID_IS0_L0,
14*1cd7523fSDaniel Machon 		.last_cid = SPARX5_VCAP_CID_IS0_L2 - 1,
15*1cd7523fSDaniel Machon 		.blockno = 2,
16*1cd7523fSDaniel Machon 		.blocks = 1,
17*1cd7523fSDaniel Machon 		.ingress = true,
18*1cd7523fSDaniel Machon 	},
19*1cd7523fSDaniel Machon 	{
20*1cd7523fSDaniel Machon 		.vtype = VCAP_TYPE_IS0, /* CLM-1 */
21*1cd7523fSDaniel Machon 		.vinst = 1,
22*1cd7523fSDaniel Machon 		.map_id = 2,
23*1cd7523fSDaniel Machon 		.lookups = SPARX5_IS0_LOOKUPS,
24*1cd7523fSDaniel Machon 		.lookups_per_instance = SPARX5_IS0_LOOKUPS / 3,
25*1cd7523fSDaniel Machon 		.first_cid = SPARX5_VCAP_CID_IS0_L2,
26*1cd7523fSDaniel Machon 		.last_cid = SPARX5_VCAP_CID_IS0_L4 - 1,
27*1cd7523fSDaniel Machon 		.blockno = 3,
28*1cd7523fSDaniel Machon 		.blocks = 1,
29*1cd7523fSDaniel Machon 		.ingress = true,
30*1cd7523fSDaniel Machon 	},
31*1cd7523fSDaniel Machon 	{
32*1cd7523fSDaniel Machon 		.vtype = VCAP_TYPE_IS0, /* CLM-2 */
33*1cd7523fSDaniel Machon 		.vinst = 2,
34*1cd7523fSDaniel Machon 		.map_id = 3,
35*1cd7523fSDaniel Machon 		.lookups = SPARX5_IS0_LOOKUPS,
36*1cd7523fSDaniel Machon 		.lookups_per_instance = SPARX5_IS0_LOOKUPS / 3,
37*1cd7523fSDaniel Machon 		.first_cid = SPARX5_VCAP_CID_IS0_L4,
38*1cd7523fSDaniel Machon 		.last_cid = SPARX5_VCAP_CID_IS0_MAX,
39*1cd7523fSDaniel Machon 		.blockno = 4,
40*1cd7523fSDaniel Machon 		.blocks = 1,
41*1cd7523fSDaniel Machon 		.ingress = true,
42*1cd7523fSDaniel Machon 	},
43*1cd7523fSDaniel Machon 	{
44*1cd7523fSDaniel Machon 		.vtype = VCAP_TYPE_IS2, /* IS2-0 */
45*1cd7523fSDaniel Machon 		.vinst = 0,
46*1cd7523fSDaniel Machon 		.map_id = 4,
47*1cd7523fSDaniel Machon 		.lookups = SPARX5_IS2_LOOKUPS,
48*1cd7523fSDaniel Machon 		.lookups_per_instance = SPARX5_IS2_LOOKUPS / 2,
49*1cd7523fSDaniel Machon 		.first_cid = SPARX5_VCAP_CID_IS2_L0,
50*1cd7523fSDaniel Machon 		.last_cid = SPARX5_VCAP_CID_IS2_L2 - 1,
51*1cd7523fSDaniel Machon 		.blockno = 0,
52*1cd7523fSDaniel Machon 		.blocks = 1,
53*1cd7523fSDaniel Machon 		.ingress = true,
54*1cd7523fSDaniel Machon 	},
55*1cd7523fSDaniel Machon 	{
56*1cd7523fSDaniel Machon 		.vtype = VCAP_TYPE_IS2, /* IS2-1 */
57*1cd7523fSDaniel Machon 		.vinst = 1,
58*1cd7523fSDaniel Machon 		.map_id = 5,
59*1cd7523fSDaniel Machon 		.lookups = SPARX5_IS2_LOOKUPS,
60*1cd7523fSDaniel Machon 		.lookups_per_instance = SPARX5_IS2_LOOKUPS / 2,
61*1cd7523fSDaniel Machon 		.first_cid = SPARX5_VCAP_CID_IS2_L2,
62*1cd7523fSDaniel Machon 		.last_cid = SPARX5_VCAP_CID_IS2_MAX,
63*1cd7523fSDaniel Machon 		.blockno = 1,
64*1cd7523fSDaniel Machon 		.blocks = 1,
65*1cd7523fSDaniel Machon 		.ingress = true,
66*1cd7523fSDaniel Machon 	},
67*1cd7523fSDaniel Machon 	{
68*1cd7523fSDaniel Machon 		.vtype = VCAP_TYPE_ES0,
69*1cd7523fSDaniel Machon 		.lookups = SPARX5_ES0_LOOKUPS,
70*1cd7523fSDaniel Machon 		.lookups_per_instance = SPARX5_ES0_LOOKUPS,
71*1cd7523fSDaniel Machon 		.first_cid = SPARX5_VCAP_CID_ES0_L0,
72*1cd7523fSDaniel Machon 		.last_cid = SPARX5_VCAP_CID_ES0_MAX,
73*1cd7523fSDaniel Machon 		.count = 1536,
74*1cd7523fSDaniel Machon 		.ingress = false,
75*1cd7523fSDaniel Machon 	},
76*1cd7523fSDaniel Machon 	{
77*1cd7523fSDaniel Machon 		.vtype = VCAP_TYPE_ES2,
78*1cd7523fSDaniel Machon 		.lookups = SPARX5_ES2_LOOKUPS,
79*1cd7523fSDaniel Machon 		.lookups_per_instance = SPARX5_ES2_LOOKUPS,
80*1cd7523fSDaniel Machon 		.first_cid = SPARX5_VCAP_CID_ES2_L0,
81*1cd7523fSDaniel Machon 		.last_cid = SPARX5_VCAP_CID_ES2_MAX,
82*1cd7523fSDaniel Machon 		.count = 1024,
83*1cd7523fSDaniel Machon 		.ingress = false,
84*1cd7523fSDaniel Machon 	},
85*1cd7523fSDaniel Machon };
86