1*d14abf15SRobert Mustacchi #ifndef IGU_DEFS_H
2*d14abf15SRobert Mustacchi #define IGU_DEFS_H
3*d14abf15SRobert Mustacchi 
4*d14abf15SRobert Mustacchi #define IGU_FUNC_BASE			0x0400
5*d14abf15SRobert Mustacchi 
6*d14abf15SRobert Mustacchi #define IGU_ADDR_MSIX			0x0000
7*d14abf15SRobert Mustacchi #define IGU_ADDR_INT_ACK		0x0200
8*d14abf15SRobert Mustacchi #define IGU_ADDR_PROD_UPD		0x0201
9*d14abf15SRobert Mustacchi #define IGU_ADDR_ATTN_BITS_UPD	0x0202
10*d14abf15SRobert Mustacchi #define IGU_ADDR_ATTN_BITS_SET	0x0203
11*d14abf15SRobert Mustacchi #define IGU_ADDR_ATTN_BITS_CLR	0x0204
12*d14abf15SRobert Mustacchi #define IGU_ADDR_COALESCE_NOW	0x0205
13*d14abf15SRobert Mustacchi #define IGU_ADDR_SIMD_MASK		0x0206
14*d14abf15SRobert Mustacchi #define IGU_ADDR_SIMD_NOMASK	0x0207
15*d14abf15SRobert Mustacchi #define IGU_ADDR_MSI_CTL		0x0210
16*d14abf15SRobert Mustacchi #define IGU_ADDR_MSI_ADDR_LO	0x0211
17*d14abf15SRobert Mustacchi #define IGU_ADDR_MSI_ADDR_HI	0x0212
18*d14abf15SRobert Mustacchi #define IGU_ADDR_MSI_DATA		0x0213
19*d14abf15SRobert Mustacchi 
20*d14abf15SRobert Mustacchi 
21*d14abf15SRobert Mustacchi #define IGU_USE_REGISTER_ustorm_type_0_sb_cleanup  0
22*d14abf15SRobert Mustacchi #define IGU_USE_REGISTER_ustorm_type_1_sb_cleanup  1
23*d14abf15SRobert Mustacchi #define IGU_USE_REGISTER_cstorm_type_0_sb_cleanup  2
24*d14abf15SRobert Mustacchi #define IGU_USE_REGISTER_cstorm_type_1_sb_cleanup  3
25*d14abf15SRobert Mustacchi 
26*d14abf15SRobert Mustacchi #define COMMAND_REG_INT_ACK         0x0
27*d14abf15SRobert Mustacchi #define COMMAND_REG_PROD_UPD        0x4
28*d14abf15SRobert Mustacchi #define COMMAND_REG_ATTN_BITS_UPD   0x8
29*d14abf15SRobert Mustacchi #define COMMAND_REG_ATTN_BITS_SET   0xc
30*d14abf15SRobert Mustacchi #define COMMAND_REG_ATTN_BITS_CLR   0x10
31*d14abf15SRobert Mustacchi #define COMMAND_REG_COALESCE_NOW    0x14
32*d14abf15SRobert Mustacchi #define COMMAND_REG_SIMD_MASK       0x18
33*d14abf15SRobert Mustacchi #define COMMAND_REG_SIMD_NOMASK     0x1c
34*d14abf15SRobert Mustacchi 
35*d14abf15SRobert Mustacchi 
36*d14abf15SRobert Mustacchi // Memory addresses on the BAR for the IGU Sub Block
37*d14abf15SRobert Mustacchi #define IGU_MEM_BASE						0x0000
38*d14abf15SRobert Mustacchi 
39*d14abf15SRobert Mustacchi #define IGU_MEM_MSIX_BASE					0x0000
40*d14abf15SRobert Mustacchi #define IGU_MEM_MSIX_UPPER					0x007f
41*d14abf15SRobert Mustacchi #define IGU_MEM_MSIX_RESERVED_UPPER			0x01ff
42*d14abf15SRobert Mustacchi 
43*d14abf15SRobert Mustacchi #define IGU_MEM_PBA_MSIX_BASE				0x0200
44*d14abf15SRobert Mustacchi #define IGU_MEM_PBA_MSIX_UPPER				0x0200
45*d14abf15SRobert Mustacchi 
46*d14abf15SRobert Mustacchi #define IGU_CMD_BACKWARD_COMP_PROD_UPD		0x0201
47*d14abf15SRobert Mustacchi #define IGU_MEM_PBA_MSIX_RESERVED_UPPER		0x03ff
48*d14abf15SRobert Mustacchi 
49*d14abf15SRobert Mustacchi #define IGU_CMD_INT_ACK_BASE				0x0400
50*d14abf15SRobert Mustacchi #define IGU_CMD_INT_ACK_UPPER				(IGU_CMD_INT_ACK_BASE + MAX_SB_PER_PATH - 1)
51*d14abf15SRobert Mustacchi #define IGU_CMD_INT_ACK_RESERVED_UPPER		0x04ff
52*d14abf15SRobert Mustacchi 
53*d14abf15SRobert Mustacchi #define IGU_CMD_E2_PROD_UPD_BASE			0x0500
54*d14abf15SRobert Mustacchi #define IGU_CMD_E2_PROD_UPD_UPPER			(IGU_CMD_E2_PROD_UPD_BASE + MAX_SB_PER_PATH  - 1)
55*d14abf15SRobert Mustacchi #define IGU_CMD_E2_PROD_UPD_RESERVED_UPPER	0x059f
56*d14abf15SRobert Mustacchi 
57*d14abf15SRobert Mustacchi #define IGU_CMD_ATTN_BIT_UPD_UPPER			0x05a0
58*d14abf15SRobert Mustacchi #define IGU_CMD_ATTN_BIT_SET_UPPER			0x05a1
59*d14abf15SRobert Mustacchi #define IGU_CMD_ATTN_BIT_CLR_UPPER			0x05a2
60*d14abf15SRobert Mustacchi 
61*d14abf15SRobert Mustacchi #define IGU_REG_SISR_MDPC_WMASK_UPPER		0x05a3
62*d14abf15SRobert Mustacchi #define IGU_REG_SISR_MDPC_WMASK_LSB_UPPER	0x05a4
63*d14abf15SRobert Mustacchi #define IGU_REG_SISR_MDPC_WMASK_MSB_UPPER	0x05a5
64*d14abf15SRobert Mustacchi #define IGU_REG_SISR_MDPC_WOMASK_UPPER		0x05a6
65*d14abf15SRobert Mustacchi 
66*d14abf15SRobert Mustacchi 
67*d14abf15SRobert Mustacchi #define IGU_REG_RESERVED_UPPER				0x05ff
68*d14abf15SRobert Mustacchi 
69*d14abf15SRobert Mustacchi #define IGU_SEG_IDX_ATTN	2
70*d14abf15SRobert Mustacchi #define IGU_SEG_IDX_DEFAULT	1
71*d14abf15SRobert Mustacchi /* Fields of IGU PF CONFIGRATION REGISTER */
72*d14abf15SRobert Mustacchi #define IGU_PF_CONF_FUNC_EN       (0x1<<0)  /* function enable        */
73*d14abf15SRobert Mustacchi #define IGU_PF_CONF_MSI_MSIX_EN   (0x1<<1)  /* MSI/MSIX enable        */
74*d14abf15SRobert Mustacchi #define IGU_PF_CONF_INT_LINE_EN   (0x1<<2)  /* INT enable             */
75*d14abf15SRobert Mustacchi #define IGU_PF_CONF_ATTN_BIT_EN   (0x1<<3)  /* attention enable       */
76*d14abf15SRobert Mustacchi #define IGU_PF_CONF_SINGLE_ISR_EN (0x1<<4)  /* single ISR mode enable */
77*d14abf15SRobert Mustacchi #define IGU_PF_CONF_SIMD_MODE     (0x1<<5)  /* simd all ones mode     */
78*d14abf15SRobert Mustacchi 
79*d14abf15SRobert Mustacchi /* Fields of IGU VF CONFIGRATION REGISTER */
80*d14abf15SRobert Mustacchi #define IGU_VF_CONF_FUNC_EN        (0x1<<0)  /* function enable        */
81*d14abf15SRobert Mustacchi #define IGU_VF_CONF_MSI_MSIX_EN    (0x1<<1)  /* MSI/MSIX enable        */
82*d14abf15SRobert Mustacchi #define IGU_VF_CONF_PARENT_MASK    (0x3<<2)  /* Parent PF              */
83*d14abf15SRobert Mustacchi #define IGU_VF_CONF_PARENT_SHIFT   2         /* Parent PF              */
84*d14abf15SRobert Mustacchi #define IGU_VF_CONF_SINGLE_ISR_EN  (0x1<<4)  /* single ISR mode enable */
85*d14abf15SRobert Mustacchi 
86*d14abf15SRobert Mustacchi 
87*d14abf15SRobert Mustacchi #define IGU_BC_DSB_NUM_SEGS    5
88*d14abf15SRobert Mustacchi #define IGU_BC_NDSB_NUM_SEGS   2
89*d14abf15SRobert Mustacchi #define IGU_NORM_DSB_NUM_SEGS  2
90*d14abf15SRobert Mustacchi #define IGU_NORM_NDSB_NUM_SEGS 1
91*d14abf15SRobert Mustacchi #define IGU_BC_BASE_DSB_PROD   128
92*d14abf15SRobert Mustacchi #define IGU_NORM_BASE_DSB_PROD 136
93*d14abf15SRobert Mustacchi 
94*d14abf15SRobert Mustacchi /* FID (if VF - [6] = 0; [5:0] = VF number; if PF - [6] = 1; [5:2] = 0; [1:0] = PF number) */
95*d14abf15SRobert Mustacchi #define IGU_FID_ENCODE_IS_PF        (0x1<<6)
96*d14abf15SRobert Mustacchi #define IGU_FID_ENCODE_IS_PF_SHIFT  6
97*d14abf15SRobert Mustacchi #define IGU_FID_VF_NUM_MASK         (0x3f)
98*d14abf15SRobert Mustacchi #define IGU_FID_PF_NUM_MASK         (0x7)
99*d14abf15SRobert Mustacchi 
100*d14abf15SRobert Mustacchi #define IGU_REG_MAPPING_MEMORY_VALID            (1<<0)
101*d14abf15SRobert Mustacchi #define IGU_REG_MAPPING_MEMORY_VECTOR_MASK      (0x3F<<1)
102*d14abf15SRobert Mustacchi #define IGU_REG_MAPPING_MEMORY_VECTOR_SHIFT     1
103*d14abf15SRobert Mustacchi #define IGU_REG_MAPPING_MEMORY_FID_MASK         (0x7F<<7)
104*d14abf15SRobert Mustacchi #define IGU_REG_MAPPING_MEMORY_FID_SHIFT        7
105*d14abf15SRobert Mustacchi 
106*d14abf15SRobert Mustacchi #endif //IGU_DEFS_H
107*d14abf15SRobert Mustacchi 
108