Merge branch '2021-09-30-whitespace-cleanups' into next
[platform/kernel/u-boot.git] / drivers / net / octeontx2 / npc.h
1 /* SPDX-License-Identifier:    GPL-2.0
2  *
3  * Copyright (C) 2018 Marvell International Ltd.
4  */
5
6 #ifndef __NPC_H__
7 #define __NPC_H__
8
9 #define RSVD_MCAM_ENTRIES_PER_PF        2       /** Ucast and Bcast */
10 #define RSVD_MCAM_ENTRIES_PER_NIXLF     1       /** Ucast for VFs */
11
12 struct npc_kpu_profile_cam {
13         u8 state;
14         u8 state_mask;
15         u16 dp0;
16         u16 dp0_mask;
17         u16 dp1;
18         u16 dp1_mask;
19         u16 dp2;
20         u16 dp2_mask;
21 };
22
23 struct npc_kpu_profile_action {
24         u8 errlev;
25         u8 errcode;
26         u8 dp0_offset;
27         u8 dp1_offset;
28         u8 dp2_offset;
29         u8 bypass_count;
30         u8 parse_done;
31         u8 next_state;
32         u8 ptr_advance;
33         u8 cap_ena;
34         u8 lid;
35         u8 ltype;
36         u8 flags;
37         u8 offset;
38         u8 mask;
39         u8 right;
40         u8 shift;
41 };
42
43 struct npc_kpu_profile {
44         int cam_entries;
45         int action_entries;
46         struct npc_kpu_profile_cam *cam;
47         struct npc_kpu_profile_action *action;
48 };
49
50 struct npc_pkind {
51         struct rsrc_bmap rsrc;
52         u32     *pfchan_map;
53 };
54
55 struct npc_mcam {
56         struct rsrc_bmap rsrc;
57         u16     *pfvf_map;
58         u16     total_entries; /* Total number of MCAM entries */
59         u16     entries;  /* Total - reserved for NIX LFs */
60         u8      banks_per_entry;  /* Number of keywords in key */
61         u8      keysize;
62         u8      banks;    /* Number of MCAM banks */
63         u16     banksize; /* Number of MCAM entries in each bank */
64         u16     counters; /* Number of match counters */
65         u16     nixlf_offset;
66         u16     pf_offset;
67 };
68
69 struct nix_af_handle;
70 struct nix_handle;
71 struct rvu_hwinfo;
72
73 struct npc_af {
74         struct nix_af_handle    *nix_af;
75         struct npc_pkind        pkind;
76         void __iomem            *npc_af_base;
77         u8                      npc_kpus;       /** Number of parser units */
78         struct npc_mcam         mcam;
79         struct rvu_block        block;
80         struct rvu_hwinfo       *hw;
81 };
82
83 struct npc {
84         struct npc_af           *npc_af;
85         void __iomem            *npc_base;
86         struct nix_handle       *nix;
87 }
88
89 #endif /* __NPC_H__ */