d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#ifndef IGU_DEFS_H
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_DEFS_H
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_FUNC_BASE 0x0400
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_ADDR_MSIX 0x0000
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_ADDR_INT_ACK 0x0200
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_ADDR_PROD_UPD 0x0201
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_ADDR_ATTN_BITS_UPD 0x0202
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_ADDR_ATTN_BITS_SET 0x0203
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_ADDR_ATTN_BITS_CLR 0x0204
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_ADDR_COALESCE_NOW 0x0205
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_ADDR_SIMD_MASK 0x0206
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_ADDR_SIMD_NOMASK 0x0207
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_ADDR_MSI_CTL 0x0210
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_ADDR_MSI_ADDR_LO 0x0211
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_ADDR_MSI_ADDR_HI 0x0212
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_ADDR_MSI_DATA 0x0213
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_USE_REGISTER_ustorm_type_0_sb_cleanup 0
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_USE_REGISTER_ustorm_type_1_sb_cleanup 1
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_USE_REGISTER_cstorm_type_0_sb_cleanup 2
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_USE_REGISTER_cstorm_type_1_sb_cleanup 3
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define COMMAND_REG_INT_ACK 0x0
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define COMMAND_REG_PROD_UPD 0x4
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define COMMAND_REG_ATTN_BITS_UPD 0x8
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define COMMAND_REG_ATTN_BITS_SET 0xc
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define COMMAND_REG_ATTN_BITS_CLR 0x10
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define COMMAND_REG_COALESCE_NOW 0x14
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define COMMAND_REG_SIMD_MASK 0x18
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define COMMAND_REG_SIMD_NOMASK 0x1c
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi// Memory addresses on the BAR for the IGU Sub Block
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_MEM_BASE 0x0000
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_MEM_MSIX_BASE 0x0000
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_MEM_MSIX_UPPER 0x007f
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_MEM_MSIX_RESERVED_UPPER 0x01ff
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_MEM_PBA_MSIX_BASE 0x0200
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_MEM_PBA_MSIX_UPPER 0x0200
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_CMD_BACKWARD_COMP_PROD_UPD 0x0201
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_MEM_PBA_MSIX_RESERVED_UPPER 0x03ff
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_CMD_INT_ACK_BASE 0x0400
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_CMD_INT_ACK_UPPER (IGU_CMD_INT_ACK_BASE + MAX_SB_PER_PATH - 1)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_CMD_INT_ACK_RESERVED_UPPER 0x04ff
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_CMD_E2_PROD_UPD_BASE 0x0500
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_CMD_E2_PROD_UPD_UPPER (IGU_CMD_E2_PROD_UPD_BASE + MAX_SB_PER_PATH - 1)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_CMD_E2_PROD_UPD_RESERVED_UPPER 0x059f
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_CMD_ATTN_BIT_UPD_UPPER 0x05a0
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_CMD_ATTN_BIT_SET_UPPER 0x05a1
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_CMD_ATTN_BIT_CLR_UPPER 0x05a2
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_REG_SISR_MDPC_WMASK_UPPER 0x05a3
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_REG_SISR_MDPC_WMASK_LSB_UPPER 0x05a4
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_REG_SISR_MDPC_WMASK_MSB_UPPER 0x05a5
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_REG_SISR_MDPC_WOMASK_UPPER 0x05a6
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_REG_RESERVED_UPPER 0x05ff
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_SEG_IDX_ATTN 2
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_SEG_IDX_DEFAULT 1
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi/* Fields of IGU PF CONFIGRATION REGISTER */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_PF_CONF_FUNC_EN (0x1<<0) /* function enable */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_PF_CONF_MSI_MSIX_EN (0x1<<1) /* MSI/MSIX enable */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_PF_CONF_INT_LINE_EN (0x1<<2) /* INT enable */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_PF_CONF_ATTN_BIT_EN (0x1<<3) /* attention enable */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_PF_CONF_SINGLE_ISR_EN (0x1<<4) /* single ISR mode enable */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_PF_CONF_SIMD_MODE (0x1<<5) /* simd all ones mode */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi/* Fields of IGU VF CONFIGRATION REGISTER */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_VF_CONF_FUNC_EN (0x1<<0) /* function enable */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_VF_CONF_MSI_MSIX_EN (0x1<<1) /* MSI/MSIX enable */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_VF_CONF_PARENT_MASK (0x3<<2) /* Parent PF */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_VF_CONF_PARENT_SHIFT 2 /* Parent PF */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_VF_CONF_SINGLE_ISR_EN (0x1<<4) /* single ISR mode enable */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_BC_DSB_NUM_SEGS 5
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_BC_NDSB_NUM_SEGS 2
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_NORM_DSB_NUM_SEGS 2
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_NORM_NDSB_NUM_SEGS 1
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_BC_BASE_DSB_PROD 128
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_NORM_BASE_DSB_PROD 136
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi/* FID (if VF - [6] = 0; [5:0] = VF number; if PF - [6] = 1; [5:2] = 0; [1:0] = PF number) */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_FID_ENCODE_IS_PF (0x1<<6)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_FID_ENCODE_IS_PF_SHIFT 6
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_FID_VF_NUM_MASK (0x3f)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_FID_PF_NUM_MASK (0x7)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_REG_MAPPING_MEMORY_VALID (1<<0)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_REG_MAPPING_MEMORY_VECTOR_MASK (0x3F<<1)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_REG_MAPPING_MEMORY_VECTOR_SHIFT 1
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_REG_MAPPING_MEMORY_FID_MASK (0x7F<<7)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define IGU_REG_MAPPING_MEMORY_FID_SHIFT 7
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#endif //IGU_DEFS_H
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi