1 /* SPDX-License-Identifier: GPL-2.0
2  * Marvell OcteonTx2 RVU Admin Function driver
3  *
4  * Copyright (C) 2018 Marvell International Ltd.
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9  */
10 
11 #ifndef RVU_STRUCT_H
12 #define RVU_STRUCT_H
13 
14 /* RVU Block Address Enumeration */
15 enum rvu_block_addr_e {
16 	BLKADDR_RVUM    = 0x0ULL,
17 	BLKADDR_LMT     = 0x1ULL,
18 	BLKADDR_MSIX    = 0x2ULL,
19 	BLKADDR_NPA     = 0x3ULL,
20 	BLKADDR_NIX0    = 0x4ULL,
21 	BLKADDR_NIX1    = 0x5ULL,
22 	BLKADDR_NPC     = 0x6ULL,
23 	BLKADDR_SSO     = 0x7ULL,
24 	BLKADDR_SSOW    = 0x8ULL,
25 	BLKADDR_TIM     = 0x9ULL,
26 	BLKADDR_CPT0    = 0xaULL,
27 	BLKADDR_CPT1    = 0xbULL,
28 	BLKADDR_NDC0    = 0xcULL,
29 	BLKADDR_NDC1    = 0xdULL,
30 	BLKADDR_NDC2    = 0xeULL,
31 	BLK_COUNT	= 0xfULL,
32 };
33 
34 /* RVU Block Type Enumeration */
35 enum rvu_block_type_e {
36 	BLKTYPE_RVUM = 0x0,
37 	BLKTYPE_MSIX = 0x1,
38 	BLKTYPE_LMT  = 0x2,
39 	BLKTYPE_NIX  = 0x3,
40 	BLKTYPE_NPA  = 0x4,
41 	BLKTYPE_NPC  = 0x5,
42 	BLKTYPE_SSO  = 0x6,
43 	BLKTYPE_SSOW = 0x7,
44 	BLKTYPE_TIM  = 0x8,
45 	BLKTYPE_CPT  = 0x9,
46 	BLKTYPE_NDC  = 0xa,
47 	BLKTYPE_MAX  = 0xa,
48 };
49 
50 /* RVU Admin function Interrupt Vector Enumeration */
51 enum rvu_af_int_vec_e {
52 	RVU_AF_INT_VEC_POISON = 0x0,
53 	RVU_AF_INT_VEC_PFFLR  = 0x1,
54 	RVU_AF_INT_VEC_PFME   = 0x2,
55 	RVU_AF_INT_VEC_GEN    = 0x3,
56 	RVU_AF_INT_VEC_MBOX   = 0x4,
57 	RVU_AF_INT_VEC_CNT    = 0x5,
58 };
59 
60 /**
61  * RVU PF Interrupt Vector Enumeration
62  */
63 enum rvu_pf_int_vec_e {
64 	RVU_PF_INT_VEC_VFFLR0     = 0x0,
65 	RVU_PF_INT_VEC_VFFLR1     = 0x1,
66 	RVU_PF_INT_VEC_VFME0      = 0x2,
67 	RVU_PF_INT_VEC_VFME1      = 0x3,
68 	RVU_PF_INT_VEC_VFPF_MBOX0 = 0x4,
69 	RVU_PF_INT_VEC_VFPF_MBOX1 = 0x5,
70 	RVU_PF_INT_VEC_AFPF_MBOX  = 0x6,
71 	RVU_PF_INT_VEC_CNT	  = 0x7,
72 };
73 
74 #endif /* RVU_STRUCT_H */
75