0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 #ifndef _REGS_H
0014 #define _REGS_H
0015
0016 #define TBD 0
0017
0018 struct XENA_dev_config {
0019
0020
0021
0022 u64 general_int_status;
0023 #define GEN_INTR_TXPIC s2BIT(0)
0024 #define GEN_INTR_TXDMA s2BIT(1)
0025 #define GEN_INTR_TXMAC s2BIT(2)
0026 #define GEN_INTR_TXXGXS s2BIT(3)
0027 #define GEN_INTR_TXTRAFFIC s2BIT(8)
0028 #define GEN_INTR_RXPIC s2BIT(32)
0029 #define GEN_INTR_RXDMA s2BIT(33)
0030 #define GEN_INTR_RXMAC s2BIT(34)
0031 #define GEN_INTR_MC s2BIT(35)
0032 #define GEN_INTR_RXXGXS s2BIT(36)
0033 #define GEN_INTR_RXTRAFFIC s2BIT(40)
0034 #define GEN_ERROR_INTR GEN_INTR_TXPIC | GEN_INTR_RXPIC | \
0035 GEN_INTR_TXDMA | GEN_INTR_RXDMA | \
0036 GEN_INTR_TXMAC | GEN_INTR_RXMAC | \
0037 GEN_INTR_TXXGXS| GEN_INTR_RXXGXS| \
0038 GEN_INTR_MC
0039
0040 u64 general_int_mask;
0041
0042 u8 unused0[0x100 - 0x10];
0043
0044 u64 sw_reset;
0045
0046 #define SW_RESET_XENA vBIT(0xA5,0,8)
0047 #define SW_RESET_FLASH vBIT(0xA5,8,8)
0048 #define SW_RESET_EOI vBIT(0xA5,16,8)
0049 #define SW_RESET_ALL (SW_RESET_XENA | \
0050 SW_RESET_FLASH | \
0051 SW_RESET_EOI)
0052
0053 #define SW_RESET_RAW_VAL 0xA5000000
0054
0055
0056 u64 adapter_status;
0057 #define ADAPTER_STATUS_TDMA_READY s2BIT(0)
0058 #define ADAPTER_STATUS_RDMA_READY s2BIT(1)
0059 #define ADAPTER_STATUS_PFC_READY s2BIT(2)
0060 #define ADAPTER_STATUS_TMAC_BUF_EMPTY s2BIT(3)
0061 #define ADAPTER_STATUS_PIC_QUIESCENT s2BIT(5)
0062 #define ADAPTER_STATUS_RMAC_REMOTE_FAULT s2BIT(6)
0063 #define ADAPTER_STATUS_RMAC_LOCAL_FAULT s2BIT(7)
0064 #define ADAPTER_STATUS_RMAC_PCC_IDLE vBIT(0xFF,8,8)
0065 #define ADAPTER_STATUS_RMAC_PCC_FOUR_IDLE vBIT(0x0F,8,8)
0066 #define ADAPTER_STATUS_RC_PRC_QUIESCENT vBIT(0xFF,16,8)
0067 #define ADAPTER_STATUS_MC_DRAM_READY s2BIT(24)
0068 #define ADAPTER_STATUS_MC_QUEUES_READY s2BIT(25)
0069 #define ADAPTER_STATUS_RIC_RUNNING s2BIT(26)
0070 #define ADAPTER_STATUS_M_PLL_LOCK s2BIT(30)
0071 #define ADAPTER_STATUS_P_PLL_LOCK s2BIT(31)
0072
0073 u64 adapter_control;
0074 #define ADAPTER_CNTL_EN s2BIT(7)
0075 #define ADAPTER_EOI_TX_ON s2BIT(15)
0076 #define ADAPTER_LED_ON s2BIT(23)
0077 #define ADAPTER_UDPI(val) vBIT(val,36,4)
0078 #define ADAPTER_WAIT_INT s2BIT(48)
0079 #define ADAPTER_ECC_EN s2BIT(55)
0080
0081 u64 serr_source;
0082 #define SERR_SOURCE_PIC s2BIT(0)
0083 #define SERR_SOURCE_TXDMA s2BIT(1)
0084 #define SERR_SOURCE_RXDMA s2BIT(2)
0085 #define SERR_SOURCE_MAC s2BIT(3)
0086 #define SERR_SOURCE_MC s2BIT(4)
0087 #define SERR_SOURCE_XGXS s2BIT(5)
0088 #define SERR_SOURCE_ANY (SERR_SOURCE_PIC | \
0089 SERR_SOURCE_TXDMA | \
0090 SERR_SOURCE_RXDMA | \
0091 SERR_SOURCE_MAC | \
0092 SERR_SOURCE_MC | \
0093 SERR_SOURCE_XGXS)
0094
0095 u64 pci_mode;
0096 #define GET_PCI_MODE(val) ((val & vBIT(0xF, 0, 4)) >> 60)
0097 #define PCI_MODE_PCI_33 0
0098 #define PCI_MODE_PCI_66 0x1
0099 #define PCI_MODE_PCIX_M1_66 0x2
0100 #define PCI_MODE_PCIX_M1_100 0x3
0101 #define PCI_MODE_PCIX_M1_133 0x4
0102 #define PCI_MODE_PCIX_M2_66 0x5
0103 #define PCI_MODE_PCIX_M2_100 0x6
0104 #define PCI_MODE_PCIX_M2_133 0x7
0105 #define PCI_MODE_UNSUPPORTED s2BIT(0)
0106 #define PCI_MODE_32_BITS s2BIT(8)
0107 #define PCI_MODE_UNKNOWN_MODE s2BIT(9)
0108
0109 u8 unused_0[0x800 - 0x128];
0110
0111
0112 u64 pic_int_status;
0113 u64 pic_int_mask;
0114 #define PIC_INT_TX s2BIT(0)
0115 #define PIC_INT_FLSH s2BIT(1)
0116 #define PIC_INT_MDIO s2BIT(2)
0117 #define PIC_INT_IIC s2BIT(3)
0118 #define PIC_INT_GPIO s2BIT(4)
0119 #define PIC_INT_RX s2BIT(32)
0120
0121 u64 txpic_int_reg;
0122 u64 txpic_int_mask;
0123 #define PCIX_INT_REG_ECC_SG_ERR s2BIT(0)
0124 #define PCIX_INT_REG_ECC_DB_ERR s2BIT(1)
0125 #define PCIX_INT_REG_FLASHR_R_FSM_ERR s2BIT(8)
0126 #define PCIX_INT_REG_FLASHR_W_FSM_ERR s2BIT(9)
0127 #define PCIX_INT_REG_INI_TX_FSM_SERR s2BIT(10)
0128 #define PCIX_INT_REG_INI_TXO_FSM_ERR s2BIT(11)
0129 #define PCIX_INT_REG_TRT_FSM_SERR s2BIT(13)
0130 #define PCIX_INT_REG_SRT_FSM_SERR s2BIT(14)
0131 #define PCIX_INT_REG_PIFR_FSM_SERR s2BIT(15)
0132 #define PCIX_INT_REG_WRC_TX_SEND_FSM_SERR s2BIT(21)
0133 #define PCIX_INT_REG_RRC_TX_REQ_FSM_SERR s2BIT(23)
0134 #define PCIX_INT_REG_INI_RX_FSM_SERR s2BIT(48)
0135 #define PCIX_INT_REG_RA_RX_FSM_SERR s2BIT(50)
0136
0137
0138
0139
0140
0141 u64 txpic_alarms;
0142 u64 rxpic_int_reg;
0143 u64 rxpic_int_mask;
0144 u64 rxpic_alarms;
0145
0146 u64 flsh_int_reg;
0147 u64 flsh_int_mask;
0148 #define PIC_FLSH_INT_REG_CYCLE_FSM_ERR s2BIT(63)
0149 #define PIC_FLSH_INT_REG_ERR s2BIT(62)
0150 u64 flash_alarms;
0151
0152 u64 mdio_int_reg;
0153 u64 mdio_int_mask;
0154 #define MDIO_INT_REG_MDIO_BUS_ERR s2BIT(0)
0155 #define MDIO_INT_REG_DTX_BUS_ERR s2BIT(8)
0156 #define MDIO_INT_REG_LASI s2BIT(39)
0157 u64 mdio_alarms;
0158
0159 u64 iic_int_reg;
0160 u64 iic_int_mask;
0161 #define IIC_INT_REG_BUS_FSM_ERR s2BIT(4)
0162 #define IIC_INT_REG_BIT_FSM_ERR s2BIT(5)
0163 #define IIC_INT_REG_CYCLE_FSM_ERR s2BIT(6)
0164 #define IIC_INT_REG_REQ_FSM_ERR s2BIT(7)
0165 #define IIC_INT_REG_ACK_ERR s2BIT(8)
0166 u64 iic_alarms;
0167
0168 u8 unused4[0x08];
0169
0170 u64 gpio_int_reg;
0171 #define GPIO_INT_REG_DP_ERR_INT s2BIT(0)
0172 #define GPIO_INT_REG_LINK_DOWN s2BIT(1)
0173 #define GPIO_INT_REG_LINK_UP s2BIT(2)
0174 u64 gpio_int_mask;
0175 #define GPIO_INT_MASK_LINK_DOWN s2BIT(1)
0176 #define GPIO_INT_MASK_LINK_UP s2BIT(2)
0177 u64 gpio_alarms;
0178
0179 u8 unused5[0x38];
0180
0181 u64 tx_traffic_int;
0182 #define TX_TRAFFIC_INT_n(n) s2BIT(n)
0183 u64 tx_traffic_mask;
0184
0185 u64 rx_traffic_int;
0186 #define RX_TRAFFIC_INT_n(n) s2BIT(n)
0187 u64 rx_traffic_mask;
0188
0189
0190 u64 pic_control;
0191 #define PIC_CNTL_RX_ALARM_MAP_1 s2BIT(0)
0192 #define PIC_CNTL_SHARED_SPLITS(n) vBIT(n,11,5)
0193
0194 u64 swapper_ctrl;
0195 #define SWAPPER_CTRL_PIF_R_FE s2BIT(0)
0196 #define SWAPPER_CTRL_PIF_R_SE s2BIT(1)
0197 #define SWAPPER_CTRL_PIF_W_FE s2BIT(8)
0198 #define SWAPPER_CTRL_PIF_W_SE s2BIT(9)
0199 #define SWAPPER_CTRL_TXP_FE s2BIT(16)
0200 #define SWAPPER_CTRL_TXP_SE s2BIT(17)
0201 #define SWAPPER_CTRL_TXD_R_FE s2BIT(18)
0202 #define SWAPPER_CTRL_TXD_R_SE s2BIT(19)
0203 #define SWAPPER_CTRL_TXD_W_FE s2BIT(20)
0204 #define SWAPPER_CTRL_TXD_W_SE s2BIT(21)
0205 #define SWAPPER_CTRL_TXF_R_FE s2BIT(22)
0206 #define SWAPPER_CTRL_TXF_R_SE s2BIT(23)
0207 #define SWAPPER_CTRL_RXD_R_FE s2BIT(32)
0208 #define SWAPPER_CTRL_RXD_R_SE s2BIT(33)
0209 #define SWAPPER_CTRL_RXD_W_FE s2BIT(34)
0210 #define SWAPPER_CTRL_RXD_W_SE s2BIT(35)
0211 #define SWAPPER_CTRL_RXF_W_FE s2BIT(36)
0212 #define SWAPPER_CTRL_RXF_W_SE s2BIT(37)
0213 #define SWAPPER_CTRL_XMSI_FE s2BIT(40)
0214 #define SWAPPER_CTRL_XMSI_SE s2BIT(41)
0215 #define SWAPPER_CTRL_STATS_FE s2BIT(48)
0216 #define SWAPPER_CTRL_STATS_SE s2BIT(49)
0217
0218 u64 pif_rd_swapper_fb;
0219 #define IF_RD_SWAPPER_FB 0x0123456789ABCDEF
0220
0221 u64 scheduled_int_ctrl;
0222 #define SCHED_INT_CTRL_TIMER_EN s2BIT(0)
0223 #define SCHED_INT_CTRL_ONE_SHOT s2BIT(1)
0224 #define SCHED_INT_CTRL_INT2MSI(val) vBIT(val,10,6)
0225 #define SCHED_INT_PERIOD TBD
0226
0227 u64 txreqtimeout;
0228 #define TXREQTO_VAL(val) vBIT(val,0,32)
0229 #define TXREQTO_EN s2BIT(63)
0230
0231 u64 statsreqtimeout;
0232 #define STATREQTO_VAL(n) TBD
0233 #define STATREQTO_EN s2BIT(63)
0234
0235 u64 read_retry_delay;
0236 u64 read_retry_acceleration;
0237 u64 write_retry_delay;
0238 u64 write_retry_acceleration;
0239
0240 u64 xmsi_control;
0241 u64 xmsi_access;
0242 u64 xmsi_address;
0243 u64 xmsi_data;
0244
0245 u64 rx_mat;
0246 #define RX_MAT_SET(ring, msi) vBIT(msi, (8 * ring), 8)
0247
0248 u8 unused6[0x8];
0249
0250 u64 tx_mat0_n[0x8];
0251 #define TX_MAT_SET(fifo, msi) vBIT(msi, (8 * fifo), 8)
0252
0253 u64 xmsi_mask_reg;
0254 u64 stat_byte_cnt;
0255 #define STAT_BC(n) vBIT(n,4,12)
0256
0257
0258 u64 stat_cfg;
0259 #define STAT_CFG_STAT_EN s2BIT(0)
0260 #define STAT_CFG_ONE_SHOT_EN s2BIT(1)
0261 #define STAT_CFG_STAT_NS_EN s2BIT(8)
0262 #define STAT_CFG_STAT_RO s2BIT(9)
0263 #define STAT_TRSF_PER(n) TBD
0264 #define PER_SEC 0x208d5
0265 #define SET_UPDT_PERIOD(n) vBIT((PER_SEC*n),32,32)
0266 #define SET_UPDT_CLICKS(val) vBIT(val, 32, 32)
0267
0268 u64 stat_addr;
0269
0270
0271 u64 mdio_control;
0272 #define MDIO_MMD_INDX_ADDR(val) vBIT(val, 0, 16)
0273 #define MDIO_MMD_DEV_ADDR(val) vBIT(val, 19, 5)
0274 #define MDIO_MMS_PRT_ADDR(val) vBIT(val, 27, 5)
0275 #define MDIO_CTRL_START_TRANS(val) vBIT(val, 56, 4)
0276 #define MDIO_OP(val) vBIT(val, 60, 2)
0277 #define MDIO_OP_ADDR_TRANS 0x0
0278 #define MDIO_OP_WRITE_TRANS 0x1
0279 #define MDIO_OP_READ_POST_INC_TRANS 0x2
0280 #define MDIO_OP_READ_TRANS 0x3
0281 #define MDIO_MDIO_DATA(val) vBIT(val, 32, 16)
0282
0283 u64 dtx_control;
0284
0285 u64 i2c_control;
0286 #define I2C_CONTROL_DEV_ID(id) vBIT(id,1,3)
0287 #define I2C_CONTROL_ADDR(addr) vBIT(addr,5,11)
0288 #define I2C_CONTROL_BYTE_CNT(cnt) vBIT(cnt,22,2)
0289 #define I2C_CONTROL_READ s2BIT(24)
0290 #define I2C_CONTROL_NACK s2BIT(25)
0291 #define I2C_CONTROL_CNTL_START vBIT(0xE,28,4)
0292 #define I2C_CONTROL_CNTL_END(val) (val & vBIT(0x1,28,4))
0293 #define I2C_CONTROL_GET_DATA(val) (u32)(val & 0xFFFFFFFF)
0294 #define I2C_CONTROL_SET_DATA(val) vBIT(val,32,32)
0295
0296 u64 gpio_control;
0297 #define GPIO_CTRL_GPIO_0 s2BIT(8)
0298 u64 misc_control;
0299 #define FAULT_BEHAVIOUR s2BIT(0)
0300 #define EXT_REQ_EN s2BIT(1)
0301 #define MISC_LINK_STABILITY_PRD(val) vBIT(val,29,3)
0302
0303 u8 unused7_1[0x230 - 0x208];
0304
0305 u64 pic_control2;
0306 u64 ini_dperr_ctrl;
0307
0308 u64 wreq_split_mask;
0309 #define WREQ_SPLIT_MASK_SET_MASK(val) vBIT(val, 52, 12)
0310
0311 u8 unused7_2[0x800 - 0x248];
0312
0313
0314 u64 txdma_int_status;
0315 u64 txdma_int_mask;
0316 #define TXDMA_PFC_INT s2BIT(0)
0317 #define TXDMA_TDA_INT s2BIT(1)
0318 #define TXDMA_PCC_INT s2BIT(2)
0319 #define TXDMA_TTI_INT s2BIT(3)
0320 #define TXDMA_LSO_INT s2BIT(4)
0321 #define TXDMA_TPA_INT s2BIT(5)
0322 #define TXDMA_SM_INT s2BIT(6)
0323 u64 pfc_err_reg;
0324 #define PFC_ECC_SG_ERR s2BIT(7)
0325 #define PFC_ECC_DB_ERR s2BIT(15)
0326 #define PFC_SM_ERR_ALARM s2BIT(23)
0327 #define PFC_MISC_0_ERR s2BIT(31)
0328 #define PFC_MISC_1_ERR s2BIT(32)
0329 #define PFC_PCIX_ERR s2BIT(39)
0330 u64 pfc_err_mask;
0331 u64 pfc_err_alarm;
0332
0333 u64 tda_err_reg;
0334 #define TDA_Fn_ECC_SG_ERR vBIT(0xff,0,8)
0335 #define TDA_Fn_ECC_DB_ERR vBIT(0xff,8,8)
0336 #define TDA_SM0_ERR_ALARM s2BIT(22)
0337 #define TDA_SM1_ERR_ALARM s2BIT(23)
0338 #define TDA_PCIX_ERR s2BIT(39)
0339 u64 tda_err_mask;
0340 u64 tda_err_alarm;
0341
0342 u64 pcc_err_reg;
0343 #define PCC_FB_ECC_SG_ERR vBIT(0xFF,0,8)
0344 #define PCC_TXB_ECC_SG_ERR vBIT(0xFF,8,8)
0345 #define PCC_FB_ECC_DB_ERR vBIT(0xFF,16, 8)
0346 #define PCC_TXB_ECC_DB_ERR vBIT(0xff,24,8)
0347 #define PCC_SM_ERR_ALARM vBIT(0xff,32,8)
0348 #define PCC_WR_ERR_ALARM vBIT(0xff,40,8)
0349 #define PCC_N_SERR vBIT(0xff,48,8)
0350 #define PCC_6_COF_OV_ERR s2BIT(56)
0351 #define PCC_7_COF_OV_ERR s2BIT(57)
0352 #define PCC_6_LSO_OV_ERR s2BIT(58)
0353 #define PCC_7_LSO_OV_ERR s2BIT(59)
0354 #define PCC_ENABLE_FOUR vBIT(0x0F,0,8)
0355 u64 pcc_err_mask;
0356 u64 pcc_err_alarm;
0357
0358 u64 tti_err_reg;
0359 #define TTI_ECC_SG_ERR s2BIT(7)
0360 #define TTI_ECC_DB_ERR s2BIT(15)
0361 #define TTI_SM_ERR_ALARM s2BIT(23)
0362 u64 tti_err_mask;
0363 u64 tti_err_alarm;
0364
0365 u64 lso_err_reg;
0366 #define LSO6_SEND_OFLOW s2BIT(12)
0367 #define LSO7_SEND_OFLOW s2BIT(13)
0368 #define LSO6_ABORT s2BIT(14)
0369 #define LSO7_ABORT s2BIT(15)
0370 #define LSO6_SM_ERR_ALARM s2BIT(22)
0371 #define LSO7_SM_ERR_ALARM s2BIT(23)
0372 u64 lso_err_mask;
0373 u64 lso_err_alarm;
0374
0375 u64 tpa_err_reg;
0376 #define TPA_TX_FRM_DROP s2BIT(7)
0377 #define TPA_SM_ERR_ALARM s2BIT(23)
0378
0379 u64 tpa_err_mask;
0380 u64 tpa_err_alarm;
0381
0382 u64 sm_err_reg;
0383 #define SM_SM_ERR_ALARM s2BIT(15)
0384 u64 sm_err_mask;
0385 u64 sm_err_alarm;
0386
0387 u8 unused8[0x100 - 0xB8];
0388
0389
0390 u64 tx_dma_wrap_stat;
0391
0392
0393 #define X_MAX_FIFOS 8
0394 #define X_FIFO_MAX_LEN 0x1FFF
0395 u64 tx_fifo_partition_0;
0396 #define TX_FIFO_PARTITION_EN s2BIT(0)
0397 #define TX_FIFO_PARTITION_0_PRI(val) vBIT(val,5,3)
0398 #define TX_FIFO_PARTITION_0_LEN(val) vBIT(val,19,13)
0399 #define TX_FIFO_PARTITION_1_PRI(val) vBIT(val,37,3)
0400 #define TX_FIFO_PARTITION_1_LEN(val) vBIT(val,51,13 )
0401
0402 u64 tx_fifo_partition_1;
0403 #define TX_FIFO_PARTITION_2_PRI(val) vBIT(val,5,3)
0404 #define TX_FIFO_PARTITION_2_LEN(val) vBIT(val,19,13)
0405 #define TX_FIFO_PARTITION_3_PRI(val) vBIT(val,37,3)
0406 #define TX_FIFO_PARTITION_3_LEN(val) vBIT(val,51,13)
0407
0408 u64 tx_fifo_partition_2;
0409 #define TX_FIFO_PARTITION_4_PRI(val) vBIT(val,5,3)
0410 #define TX_FIFO_PARTITION_4_LEN(val) vBIT(val,19,13)
0411 #define TX_FIFO_PARTITION_5_PRI(val) vBIT(val,37,3)
0412 #define TX_FIFO_PARTITION_5_LEN(val) vBIT(val,51,13)
0413
0414 u64 tx_fifo_partition_3;
0415 #define TX_FIFO_PARTITION_6_PRI(val) vBIT(val,5,3)
0416 #define TX_FIFO_PARTITION_6_LEN(val) vBIT(val,19,13)
0417 #define TX_FIFO_PARTITION_7_PRI(val) vBIT(val,37,3)
0418 #define TX_FIFO_PARTITION_7_LEN(val) vBIT(val,51,13)
0419
0420 #define TX_FIFO_PARTITION_PRI_0 0
0421 #define TX_FIFO_PARTITION_PRI_1 1
0422 #define TX_FIFO_PARTITION_PRI_2 2
0423 #define TX_FIFO_PARTITION_PRI_3 3
0424 #define TX_FIFO_PARTITION_PRI_4 4
0425 #define TX_FIFO_PARTITION_PRI_5 5
0426 #define TX_FIFO_PARTITION_PRI_6 6
0427 #define TX_FIFO_PARTITION_PRI_7 7
0428
0429 u64 tx_w_round_robin_0;
0430 u64 tx_w_round_robin_1;
0431 u64 tx_w_round_robin_2;
0432 u64 tx_w_round_robin_3;
0433 u64 tx_w_round_robin_4;
0434
0435 u64 tti_command_mem;
0436 #define TTI_CMD_MEM_WE s2BIT(7)
0437 #define TTI_CMD_MEM_STROBE_NEW_CMD s2BIT(15)
0438 #define TTI_CMD_MEM_STROBE_BEING_EXECUTED s2BIT(15)
0439 #define TTI_CMD_MEM_OFFSET(n) vBIT(n,26,6)
0440
0441 u64 tti_data1_mem;
0442 #define TTI_DATA1_MEM_TX_TIMER_VAL(n) vBIT(n,6,26)
0443 #define TTI_DATA1_MEM_TX_TIMER_AC_CI(n) vBIT(n,38,2)
0444 #define TTI_DATA1_MEM_TX_TIMER_AC_EN s2BIT(38)
0445 #define TTI_DATA1_MEM_TX_TIMER_CI_EN s2BIT(39)
0446 #define TTI_DATA1_MEM_TX_URNG_A(n) vBIT(n,41,7)
0447 #define TTI_DATA1_MEM_TX_URNG_B(n) vBIT(n,49,7)
0448 #define TTI_DATA1_MEM_TX_URNG_C(n) vBIT(n,57,7)
0449
0450 u64 tti_data2_mem;
0451 #define TTI_DATA2_MEM_TX_UFC_A(n) vBIT(n,0,16)
0452 #define TTI_DATA2_MEM_TX_UFC_B(n) vBIT(n,16,16)
0453 #define TTI_DATA2_MEM_TX_UFC_C(n) vBIT(n,32,16)
0454 #define TTI_DATA2_MEM_TX_UFC_D(n) vBIT(n,48,16)
0455
0456
0457 u64 tx_pa_cfg;
0458 #define TX_PA_CFG_IGNORE_FRM_ERR s2BIT(1)
0459 #define TX_PA_CFG_IGNORE_SNAP_OUI s2BIT(2)
0460 #define TX_PA_CFG_IGNORE_LLC_CTRL s2BIT(3)
0461 #define TX_PA_CFG_IGNORE_L2_ERR s2BIT(6)
0462 #define RX_PA_CFG_STRIP_VLAN_TAG s2BIT(15)
0463
0464
0465 u64 pcc_enable;
0466
0467 u8 unused9[0x700 - 0x178];
0468
0469 u64 txdma_debug_ctrl;
0470
0471 u8 unused10[0x1800 - 0x1708];
0472
0473
0474 u64 rxdma_int_status;
0475 u64 rxdma_int_mask;
0476 #define RXDMA_INT_RC_INT_M s2BIT(0)
0477 #define RXDMA_INT_RPA_INT_M s2BIT(1)
0478 #define RXDMA_INT_RDA_INT_M s2BIT(2)
0479 #define RXDMA_INT_RTI_INT_M s2BIT(3)
0480
0481 u64 rda_err_reg;
0482 #define RDA_RXDn_ECC_SG_ERR vBIT(0xFF,0,8)
0483 #define RDA_RXDn_ECC_DB_ERR vBIT(0xFF,8,8)
0484 #define RDA_FRM_ECC_SG_ERR s2BIT(23)
0485 #define RDA_FRM_ECC_DB_N_AERR s2BIT(31)
0486 #define RDA_SM1_ERR_ALARM s2BIT(38)
0487 #define RDA_SM0_ERR_ALARM s2BIT(39)
0488 #define RDA_MISC_ERR s2BIT(47)
0489 #define RDA_PCIX_ERR s2BIT(55)
0490 #define RDA_RXD_ECC_DB_SERR s2BIT(63)
0491 u64 rda_err_mask;
0492 u64 rda_err_alarm;
0493
0494 u64 rc_err_reg;
0495 #define RC_PRCn_ECC_SG_ERR vBIT(0xFF,0,8)
0496 #define RC_PRCn_ECC_DB_ERR vBIT(0xFF,8,8)
0497 #define RC_FTC_ECC_SG_ERR s2BIT(23)
0498 #define RC_FTC_ECC_DB_ERR s2BIT(31)
0499 #define RC_PRCn_SM_ERR_ALARM vBIT(0xFF,32,8)
0500 #define RC_FTC_SM_ERR_ALARM s2BIT(47)
0501 #define RC_RDA_FAIL_WR_Rn vBIT(0xFF,48,8)
0502 u64 rc_err_mask;
0503 u64 rc_err_alarm;
0504
0505 u64 prc_pcix_err_reg;
0506 #define PRC_PCI_AB_RD_Rn vBIT(0xFF,0,8)
0507 #define PRC_PCI_DP_RD_Rn vBIT(0xFF,8,8)
0508 #define PRC_PCI_AB_WR_Rn vBIT(0xFF,16,8)
0509 #define PRC_PCI_DP_WR_Rn vBIT(0xFF,24,8)
0510 #define PRC_PCI_AB_F_WR_Rn vBIT(0xFF,32,8)
0511 #define PRC_PCI_DP_F_WR_Rn vBIT(0xFF,40,8)
0512 u64 prc_pcix_err_mask;
0513 u64 prc_pcix_err_alarm;
0514
0515 u64 rpa_err_reg;
0516 #define RPA_ECC_SG_ERR s2BIT(7)
0517 #define RPA_ECC_DB_ERR s2BIT(15)
0518 #define RPA_FLUSH_REQUEST s2BIT(22)
0519 #define RPA_SM_ERR_ALARM s2BIT(23)
0520 #define RPA_CREDIT_ERR s2BIT(31)
0521 u64 rpa_err_mask;
0522 u64 rpa_err_alarm;
0523
0524 u64 rti_err_reg;
0525 #define RTI_ECC_SG_ERR s2BIT(7)
0526 #define RTI_ECC_DB_ERR s2BIT(15)
0527 #define RTI_SM_ERR_ALARM s2BIT(23)
0528 u64 rti_err_mask;
0529 u64 rti_err_alarm;
0530
0531 u8 unused11[0x100 - 0x88];
0532
0533
0534 u64 rx_queue_priority;
0535 #define RX_QUEUE_0_PRIORITY(val) vBIT(val,5,3)
0536 #define RX_QUEUE_1_PRIORITY(val) vBIT(val,13,3)
0537 #define RX_QUEUE_2_PRIORITY(val) vBIT(val,21,3)
0538 #define RX_QUEUE_3_PRIORITY(val) vBIT(val,29,3)
0539 #define RX_QUEUE_4_PRIORITY(val) vBIT(val,37,3)
0540 #define RX_QUEUE_5_PRIORITY(val) vBIT(val,45,3)
0541 #define RX_QUEUE_6_PRIORITY(val) vBIT(val,53,3)
0542 #define RX_QUEUE_7_PRIORITY(val) vBIT(val,61,3)
0543
0544 #define RX_QUEUE_PRI_0 0
0545 #define RX_QUEUE_PRI_1 1
0546 #define RX_QUEUE_PRI_2 2
0547 #define RX_QUEUE_PRI_3 3
0548 #define RX_QUEUE_PRI_4 4
0549 #define RX_QUEUE_PRI_5 5
0550 #define RX_QUEUE_PRI_6 6
0551 #define RX_QUEUE_PRI_7 7
0552
0553 u64 rx_w_round_robin_0;
0554 u64 rx_w_round_robin_1;
0555 u64 rx_w_round_robin_2;
0556 u64 rx_w_round_robin_3;
0557 u64 rx_w_round_robin_4;
0558
0559
0560 #define RX_MAX_RINGS 8
0561 #if 0
0562 #define RX_MAX_RINGS_SZ 0xFFFF
0563 #define RX_MIN_RINGS_SZ 0x3F
0564 #endif
0565 u64 prc_rxd0_n[RX_MAX_RINGS];
0566 u64 prc_ctrl_n[RX_MAX_RINGS];
0567 #define PRC_CTRL_RC_ENABLED s2BIT(7)
0568 #define PRC_CTRL_RING_MODE (s2BIT(14)|s2BIT(15))
0569 #define PRC_CTRL_RING_MODE_1 vBIT(0,14,2)
0570 #define PRC_CTRL_RING_MODE_3 vBIT(1,14,2)
0571 #define PRC_CTRL_RING_MODE_5 vBIT(2,14,2)
0572 #define PRC_CTRL_RING_MODE_x vBIT(3,14,2)
0573 #define PRC_CTRL_NO_SNOOP (s2BIT(22)|s2BIT(23))
0574 #define PRC_CTRL_NO_SNOOP_DESC s2BIT(22)
0575 #define PRC_CTRL_NO_SNOOP_BUFF s2BIT(23)
0576 #define PRC_CTRL_BIMODAL_INTERRUPT s2BIT(37)
0577 #define PRC_CTRL_GROUP_READS s2BIT(38)
0578 #define PRC_CTRL_RXD_BACKOFF_INTERVAL(val) vBIT(val,40,24)
0579
0580 u64 prc_alarm_action;
0581 #define PRC_ALARM_ACTION_RR_R0_STOP s2BIT(3)
0582 #define PRC_ALARM_ACTION_RW_R0_STOP s2BIT(7)
0583 #define PRC_ALARM_ACTION_RR_R1_STOP s2BIT(11)
0584 #define PRC_ALARM_ACTION_RW_R1_STOP s2BIT(15)
0585 #define PRC_ALARM_ACTION_RR_R2_STOP s2BIT(19)
0586 #define PRC_ALARM_ACTION_RW_R2_STOP s2BIT(23)
0587 #define PRC_ALARM_ACTION_RR_R3_STOP s2BIT(27)
0588 #define PRC_ALARM_ACTION_RW_R3_STOP s2BIT(31)
0589 #define PRC_ALARM_ACTION_RR_R4_STOP s2BIT(35)
0590 #define PRC_ALARM_ACTION_RW_R4_STOP s2BIT(39)
0591 #define PRC_ALARM_ACTION_RR_R5_STOP s2BIT(43)
0592 #define PRC_ALARM_ACTION_RW_R5_STOP s2BIT(47)
0593 #define PRC_ALARM_ACTION_RR_R6_STOP s2BIT(51)
0594 #define PRC_ALARM_ACTION_RW_R6_STOP s2BIT(55)
0595 #define PRC_ALARM_ACTION_RR_R7_STOP s2BIT(59)
0596 #define PRC_ALARM_ACTION_RW_R7_STOP s2BIT(63)
0597
0598
0599 u64 rti_command_mem;
0600 #define RTI_CMD_MEM_WE s2BIT(7)
0601 #define RTI_CMD_MEM_STROBE s2BIT(15)
0602 #define RTI_CMD_MEM_STROBE_NEW_CMD s2BIT(15)
0603 #define RTI_CMD_MEM_STROBE_CMD_BEING_EXECUTED s2BIT(15)
0604 #define RTI_CMD_MEM_OFFSET(n) vBIT(n,29,3)
0605
0606 u64 rti_data1_mem;
0607 #define RTI_DATA1_MEM_RX_TIMER_VAL(n) vBIT(n,3,29)
0608 #define RTI_DATA1_MEM_RX_TIMER_AC_EN s2BIT(38)
0609 #define RTI_DATA1_MEM_RX_TIMER_CI_EN s2BIT(39)
0610 #define RTI_DATA1_MEM_RX_URNG_A(n) vBIT(n,41,7)
0611 #define RTI_DATA1_MEM_RX_URNG_B(n) vBIT(n,49,7)
0612 #define RTI_DATA1_MEM_RX_URNG_C(n) vBIT(n,57,7)
0613
0614 u64 rti_data2_mem;
0615 #define RTI_DATA2_MEM_RX_UFC_A(n) vBIT(n,0,16)
0616 #define RTI_DATA2_MEM_RX_UFC_B(n) vBIT(n,16,16)
0617 #define RTI_DATA2_MEM_RX_UFC_C(n) vBIT(n,32,16)
0618 #define RTI_DATA2_MEM_RX_UFC_D(n) vBIT(n,48,16)
0619
0620 u64 rx_pa_cfg;
0621 #define RX_PA_CFG_IGNORE_FRM_ERR s2BIT(1)
0622 #define RX_PA_CFG_IGNORE_SNAP_OUI s2BIT(2)
0623 #define RX_PA_CFG_IGNORE_LLC_CTRL s2BIT(3)
0624 #define RX_PA_CFG_IGNORE_L2_ERR s2BIT(6)
0625
0626 u64 unused_11_1;
0627
0628 u64 ring_bump_counter1;
0629 u64 ring_bump_counter2;
0630
0631 u8 unused12[0x700 - 0x1F0];
0632
0633 u64 rxdma_debug_ctrl;
0634
0635 u8 unused13[0x2000 - 0x1f08];
0636
0637
0638 u64 mac_int_status;
0639 u64 mac_int_mask;
0640 #define MAC_INT_STATUS_TMAC_INT s2BIT(0)
0641 #define MAC_INT_STATUS_RMAC_INT s2BIT(1)
0642
0643 u64 mac_tmac_err_reg;
0644 #define TMAC_ECC_SG_ERR s2BIT(7)
0645 #define TMAC_ECC_DB_ERR s2BIT(15)
0646 #define TMAC_TX_BUF_OVRN s2BIT(23)
0647 #define TMAC_TX_CRI_ERR s2BIT(31)
0648 #define TMAC_TX_SM_ERR s2BIT(39)
0649 #define TMAC_DESC_ECC_SG_ERR s2BIT(47)
0650 #define TMAC_DESC_ECC_DB_ERR s2BIT(55)
0651
0652 u64 mac_tmac_err_mask;
0653 u64 mac_tmac_err_alarm;
0654
0655 u64 mac_rmac_err_reg;
0656 #define RMAC_RX_BUFF_OVRN s2BIT(0)
0657 #define RMAC_FRM_RCVD_INT s2BIT(1)
0658 #define RMAC_UNUSED_INT s2BIT(2)
0659 #define RMAC_RTS_PNUM_ECC_SG_ERR s2BIT(5)
0660 #define RMAC_RTS_DS_ECC_SG_ERR s2BIT(6)
0661 #define RMAC_RD_BUF_ECC_SG_ERR s2BIT(7)
0662 #define RMAC_RTH_MAP_ECC_SG_ERR s2BIT(8)
0663 #define RMAC_RTH_SPDM_ECC_SG_ERR s2BIT(9)
0664 #define RMAC_RTS_VID_ECC_SG_ERR s2BIT(10)
0665 #define RMAC_DA_SHADOW_ECC_SG_ERR s2BIT(11)
0666 #define RMAC_RTS_PNUM_ECC_DB_ERR s2BIT(13)
0667 #define RMAC_RTS_DS_ECC_DB_ERR s2BIT(14)
0668 #define RMAC_RD_BUF_ECC_DB_ERR s2BIT(15)
0669 #define RMAC_RTH_MAP_ECC_DB_ERR s2BIT(16)
0670 #define RMAC_RTH_SPDM_ECC_DB_ERR s2BIT(17)
0671 #define RMAC_RTS_VID_ECC_DB_ERR s2BIT(18)
0672 #define RMAC_DA_SHADOW_ECC_DB_ERR s2BIT(19)
0673 #define RMAC_LINK_STATE_CHANGE_INT s2BIT(31)
0674 #define RMAC_RX_SM_ERR s2BIT(39)
0675 #define RMAC_SINGLE_ECC_ERR (s2BIT(5) | s2BIT(6) | s2BIT(7) |\
0676 s2BIT(8) | s2BIT(9) | s2BIT(10)|\
0677 s2BIT(11))
0678 #define RMAC_DOUBLE_ECC_ERR (s2BIT(13) | s2BIT(14) | s2BIT(15) |\
0679 s2BIT(16) | s2BIT(17) | s2BIT(18)|\
0680 s2BIT(19))
0681 u64 mac_rmac_err_mask;
0682 u64 mac_rmac_err_alarm;
0683
0684 u8 unused14[0x100 - 0x40];
0685
0686 u64 mac_cfg;
0687 #define MAC_CFG_TMAC_ENABLE s2BIT(0)
0688 #define MAC_CFG_RMAC_ENABLE s2BIT(1)
0689 #define MAC_CFG_LAN_NOT_WAN s2BIT(2)
0690 #define MAC_CFG_TMAC_LOOPBACK s2BIT(3)
0691 #define MAC_CFG_TMAC_APPEND_PAD s2BIT(4)
0692 #define MAC_CFG_RMAC_STRIP_FCS s2BIT(5)
0693 #define MAC_CFG_RMAC_STRIP_PAD s2BIT(6)
0694 #define MAC_CFG_RMAC_PROM_ENABLE s2BIT(7)
0695 #define MAC_RMAC_DISCARD_PFRM s2BIT(8)
0696 #define MAC_RMAC_BCAST_ENABLE s2BIT(9)
0697 #define MAC_RMAC_ALL_ADDR_ENABLE s2BIT(10)
0698 #define MAC_RMAC_INVLD_IPG_THR(val) vBIT(val,16,8)
0699
0700 u64 tmac_avg_ipg;
0701 #define TMAC_AVG_IPG(val) vBIT(val,0,8)
0702
0703 u64 rmac_max_pyld_len;
0704 #define RMAC_MAX_PYLD_LEN(val) vBIT(val,2,14)
0705 #define RMAC_MAX_PYLD_LEN_DEF vBIT(1500,2,14)
0706 #define RMAC_MAX_PYLD_LEN_JUMBO_DEF vBIT(9600,2,14)
0707
0708 u64 rmac_err_cfg;
0709 #define RMAC_ERR_FCS s2BIT(0)
0710 #define RMAC_ERR_FCS_ACCEPT s2BIT(1)
0711 #define RMAC_ERR_TOO_LONG s2BIT(1)
0712 #define RMAC_ERR_TOO_LONG_ACCEPT s2BIT(1)
0713 #define RMAC_ERR_RUNT s2BIT(2)
0714 #define RMAC_ERR_RUNT_ACCEPT s2BIT(2)
0715 #define RMAC_ERR_LEN_MISMATCH s2BIT(3)
0716 #define RMAC_ERR_LEN_MISMATCH_ACCEPT s2BIT(3)
0717
0718 u64 rmac_cfg_key;
0719 #define RMAC_CFG_KEY(val) vBIT(val,0,16)
0720
0721 #define S2IO_MAC_ADDR_START_OFFSET 0
0722
0723 #define S2IO_XENA_MAX_MC_ADDRESSES 64
0724 #define S2IO_HERC_MAX_MC_ADDRESSES 256
0725
0726 #define S2IO_XENA_MAX_MAC_ADDRESSES 16
0727 #define S2IO_HERC_MAX_MAC_ADDRESSES 64
0728
0729 #define S2IO_XENA_MC_ADDR_START_OFFSET 16
0730 #define S2IO_HERC_MC_ADDR_START_OFFSET 64
0731
0732 u64 rmac_addr_cmd_mem;
0733 #define RMAC_ADDR_CMD_MEM_WE s2BIT(7)
0734 #define RMAC_ADDR_CMD_MEM_RD 0
0735 #define RMAC_ADDR_CMD_MEM_STROBE_NEW_CMD s2BIT(15)
0736 #define RMAC_ADDR_CMD_MEM_STROBE_CMD_EXECUTING s2BIT(15)
0737 #define RMAC_ADDR_CMD_MEM_OFFSET(n) vBIT(n,26,6)
0738
0739 u64 rmac_addr_data0_mem;
0740 #define RMAC_ADDR_DATA0_MEM_ADDR(n) vBIT(n,0,48)
0741 #define RMAC_ADDR_DATA0_MEM_USER s2BIT(48)
0742
0743 u64 rmac_addr_data1_mem;
0744 #define RMAC_ADDR_DATA1_MEM_MASK(n) vBIT(n,0,48)
0745
0746 u8 unused15[0x8];
0747
0748
0749
0750
0751
0752
0753
0754
0755 u64 tmac_ipg_cfg;
0756
0757 u64 rmac_pause_cfg;
0758 #define RMAC_PAUSE_GEN s2BIT(0)
0759 #define RMAC_PAUSE_GEN_ENABLE s2BIT(0)
0760 #define RMAC_PAUSE_RX s2BIT(1)
0761 #define RMAC_PAUSE_RX_ENABLE s2BIT(1)
0762 #define RMAC_PAUSE_HG_PTIME_DEF vBIT(0xFFFF,16,16)
0763 #define RMAC_PAUSE_HG_PTIME(val) vBIT(val,16,16)
0764
0765 u64 rmac_red_cfg;
0766
0767 u64 rmac_red_rate_q0q3;
0768 u64 rmac_red_rate_q4q7;
0769
0770 u64 mac_link_util;
0771 #define MAC_TX_LINK_UTIL vBIT(0xFE,1,7)
0772 #define MAC_TX_LINK_UTIL_DISABLE vBIT(0xF, 8,4)
0773 #define MAC_TX_LINK_UTIL_VAL( n ) vBIT(n,8,4)
0774 #define MAC_RX_LINK_UTIL vBIT(0xFE,33,7)
0775 #define MAC_RX_LINK_UTIL_DISABLE vBIT(0xF,40,4)
0776 #define MAC_RX_LINK_UTIL_VAL( n ) vBIT(n,40,4)
0777
0778 #define MAC_LINK_UTIL_DISABLE MAC_TX_LINK_UTIL_DISABLE | \
0779 MAC_RX_LINK_UTIL_DISABLE
0780
0781 u64 rmac_invalid_ipg;
0782
0783
0784 #define MAC_RTS_FRM_LEN_SET(len) vBIT(len,2,14)
0785 u64 rts_frm_len_n[8];
0786
0787 u64 rts_qos_steering;
0788
0789 #define MAX_DIX_MAP 4
0790 u64 rts_dix_map_n[MAX_DIX_MAP];
0791 #define RTS_DIX_MAP_ETYPE(val) vBIT(val,0,16)
0792 #define RTS_DIX_MAP_SCW(val) s2BIT(val,21)
0793
0794 u64 rts_q_alternates;
0795 u64 rts_default_q;
0796
0797 u64 rts_ctrl;
0798 #define RTS_CTRL_IGNORE_SNAP_OUI s2BIT(2)
0799 #define RTS_CTRL_IGNORE_LLC_CTRL s2BIT(3)
0800
0801 u64 rts_pn_cam_ctrl;
0802 #define RTS_PN_CAM_CTRL_WE s2BIT(7)
0803 #define RTS_PN_CAM_CTRL_STROBE_NEW_CMD s2BIT(15)
0804 #define RTS_PN_CAM_CTRL_STROBE_BEING_EXECUTED s2BIT(15)
0805 #define RTS_PN_CAM_CTRL_OFFSET(n) vBIT(n,24,8)
0806 u64 rts_pn_cam_data;
0807 #define RTS_PN_CAM_DATA_TCP_SELECT s2BIT(7)
0808 #define RTS_PN_CAM_DATA_PORT(val) vBIT(val,8,16)
0809 #define RTS_PN_CAM_DATA_SCW(val) vBIT(val,24,8)
0810
0811 u64 rts_ds_mem_ctrl;
0812 #define RTS_DS_MEM_CTRL_WE s2BIT(7)
0813 #define RTS_DS_MEM_CTRL_STROBE_NEW_CMD s2BIT(15)
0814 #define RTS_DS_MEM_CTRL_STROBE_CMD_BEING_EXECUTED s2BIT(15)
0815 #define RTS_DS_MEM_CTRL_OFFSET(n) vBIT(n,26,6)
0816 u64 rts_ds_mem_data;
0817 #define RTS_DS_MEM_DATA(n) vBIT(n,0,8)
0818
0819 u8 unused16[0x700 - 0x220];
0820
0821 u64 mac_debug_ctrl;
0822 #define MAC_DBG_ACTIVITY_VALUE 0x411040400000000ULL
0823
0824 u8 unused17[0x2800 - 0x2708];
0825
0826
0827 u64 mc_int_status;
0828 #define MC_INT_STATUS_MC_INT s2BIT(0)
0829 u64 mc_int_mask;
0830 #define MC_INT_MASK_MC_INT s2BIT(0)
0831
0832 u64 mc_err_reg;
0833 #define MC_ERR_REG_ECC_DB_ERR_L s2BIT(14)
0834 #define MC_ERR_REG_ECC_DB_ERR_U s2BIT(15)
0835 #define MC_ERR_REG_MIRI_ECC_DB_ERR_0 s2BIT(18)
0836 #define MC_ERR_REG_MIRI_ECC_DB_ERR_1 s2BIT(20)
0837 #define MC_ERR_REG_MIRI_CRI_ERR_0 s2BIT(22)
0838 #define MC_ERR_REG_MIRI_CRI_ERR_1 s2BIT(23)
0839 #define MC_ERR_REG_SM_ERR s2BIT(31)
0840 #define MC_ERR_REG_ECC_ALL_SNG (s2BIT(2) | s2BIT(3) | s2BIT(4) | s2BIT(5) |\
0841 s2BIT(17) | s2BIT(19))
0842 #define MC_ERR_REG_ECC_ALL_DBL (s2BIT(10) | s2BIT(11) | s2BIT(12) |\
0843 s2BIT(13) | s2BIT(18) | s2BIT(20))
0844 #define PLL_LOCK_N s2BIT(39)
0845 u64 mc_err_mask;
0846 u64 mc_err_alarm;
0847
0848 u8 unused18[0x100 - 0x28];
0849
0850
0851 u64 rx_queue_cfg;
0852 #define RX_QUEUE_CFG_Q0_SZ(n) vBIT(n,0,8)
0853 #define RX_QUEUE_CFG_Q1_SZ(n) vBIT(n,8,8)
0854 #define RX_QUEUE_CFG_Q2_SZ(n) vBIT(n,16,8)
0855 #define RX_QUEUE_CFG_Q3_SZ(n) vBIT(n,24,8)
0856 #define RX_QUEUE_CFG_Q4_SZ(n) vBIT(n,32,8)
0857 #define RX_QUEUE_CFG_Q5_SZ(n) vBIT(n,40,8)
0858 #define RX_QUEUE_CFG_Q6_SZ(n) vBIT(n,48,8)
0859 #define RX_QUEUE_CFG_Q7_SZ(n) vBIT(n,56,8)
0860
0861 u64 mc_rldram_mrs;
0862 #define MC_RLDRAM_QUEUE_SIZE_ENABLE s2BIT(39)
0863 #define MC_RLDRAM_MRS_ENABLE s2BIT(47)
0864
0865 u64 mc_rldram_interleave;
0866
0867 u64 mc_pause_thresh_q0q3;
0868 u64 mc_pause_thresh_q4q7;
0869
0870 u64 mc_red_thresh_q[8];
0871
0872 u8 unused19[0x200 - 0x168];
0873 u64 mc_rldram_ref_per;
0874 u8 unused20[0x220 - 0x208];
0875 u64 mc_rldram_test_ctrl;
0876 #define MC_RLDRAM_TEST_MODE s2BIT(47)
0877 #define MC_RLDRAM_TEST_WRITE s2BIT(7)
0878 #define MC_RLDRAM_TEST_GO s2BIT(15)
0879 #define MC_RLDRAM_TEST_DONE s2BIT(23)
0880 #define MC_RLDRAM_TEST_PASS s2BIT(31)
0881
0882 u8 unused21[0x240 - 0x228];
0883 u64 mc_rldram_test_add;
0884 u8 unused22[0x260 - 0x248];
0885 u64 mc_rldram_test_d0;
0886 u8 unused23[0x280 - 0x268];
0887 u64 mc_rldram_test_d1;
0888 u8 unused24[0x300 - 0x288];
0889 u64 mc_rldram_test_d2;
0890
0891 u8 unused24_1[0x360 - 0x308];
0892 u64 mc_rldram_ctrl;
0893 #define MC_RLDRAM_ENABLE_ODT s2BIT(7)
0894
0895 u8 unused24_2[0x640 - 0x368];
0896 u64 mc_rldram_ref_per_herc;
0897 #define MC_RLDRAM_SET_REF_PERIOD(val) vBIT(val, 0, 16)
0898
0899 u8 unused24_3[0x660 - 0x648];
0900 u64 mc_rldram_mrs_herc;
0901
0902 u8 unused25[0x700 - 0x668];
0903 u64 mc_debug_ctrl;
0904
0905 u8 unused26[0x3000 - 0x2f08];
0906
0907
0908
0909
0910 u64 xgxs_int_status;
0911 #define XGXS_INT_STATUS_TXGXS s2BIT(0)
0912 #define XGXS_INT_STATUS_RXGXS s2BIT(1)
0913 u64 xgxs_int_mask;
0914 #define XGXS_INT_MASK_TXGXS s2BIT(0)
0915 #define XGXS_INT_MASK_RXGXS s2BIT(1)
0916
0917 u64 xgxs_txgxs_err_reg;
0918 #define TXGXS_ECC_SG_ERR s2BIT(7)
0919 #define TXGXS_ECC_DB_ERR s2BIT(15)
0920 #define TXGXS_ESTORE_UFLOW s2BIT(31)
0921 #define TXGXS_TX_SM_ERR s2BIT(39)
0922
0923 u64 xgxs_txgxs_err_mask;
0924 u64 xgxs_txgxs_err_alarm;
0925
0926 u64 xgxs_rxgxs_err_reg;
0927 #define RXGXS_ESTORE_OFLOW s2BIT(7)
0928 #define RXGXS_RX_SM_ERR s2BIT(39)
0929 u64 xgxs_rxgxs_err_mask;
0930 u64 xgxs_rxgxs_err_alarm;
0931
0932 u8 unused27[0x100 - 0x40];
0933
0934 u64 xgxs_cfg;
0935 u64 xgxs_status;
0936
0937 u64 xgxs_cfg_key;
0938 u64 xgxs_efifo_cfg;
0939 u64 rxgxs_ber_0;
0940 u64 rxgxs_ber_1;
0941
0942 u64 spi_control;
0943 #define SPI_CONTROL_KEY(key) vBIT(key,0,4)
0944 #define SPI_CONTROL_BYTECNT(cnt) vBIT(cnt,29,3)
0945 #define SPI_CONTROL_CMD(cmd) vBIT(cmd,32,8)
0946 #define SPI_CONTROL_ADDR(addr) vBIT(addr,40,24)
0947 #define SPI_CONTROL_SEL1 s2BIT(4)
0948 #define SPI_CONTROL_REQ s2BIT(7)
0949 #define SPI_CONTROL_NACK s2BIT(5)
0950 #define SPI_CONTROL_DONE s2BIT(6)
0951 u64 spi_data;
0952 #define SPI_DATA_WRITE(data,len) vBIT(data,0,len)
0953 };
0954
0955 #define XENA_REG_SPACE sizeof(struct XENA_dev_config)
0956 #define XENA_EEPROM_SPACE (0x01 << 11)
0957
0958 #endif