0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023 #ifndef __CN23XX_PF_REGS_H__
0024 #define __CN23XX_PF_REGS_H__
0025
0026 #define CN23XX_CONFIG_VENDOR_ID 0x00
0027 #define CN23XX_CONFIG_DEVICE_ID 0x02
0028
0029 #define CN23XX_CONFIG_XPANSION_BAR 0x38
0030
0031 #define CN23XX_CONFIG_MSIX_CAP 0x50
0032 #define CN23XX_CONFIG_MSIX_LMSI 0x54
0033 #define CN23XX_CONFIG_MSIX_UMSI 0x58
0034 #define CN23XX_CONFIG_MSIX_MSIMD 0x5C
0035 #define CN23XX_CONFIG_MSIX_MSIMM 0x60
0036 #define CN23XX_CONFIG_MSIX_MSIMP 0x64
0037
0038 #define CN23XX_CONFIG_PCIE_CAP 0x70
0039 #define CN23XX_CONFIG_PCIE_DEVCAP 0x74
0040 #define CN23XX_CONFIG_PCIE_DEVCTL 0x78
0041 #define CN23XX_CONFIG_PCIE_LINKCAP 0x7C
0042 #define CN23XX_CONFIG_PCIE_LINKCTL 0x80
0043 #define CN23XX_CONFIG_PCIE_SLOTCAP 0x84
0044 #define CN23XX_CONFIG_PCIE_SLOTCTL 0x88
0045 #define CN23XX_CONFIG_PCIE_DEVCTL2 0x98
0046 #define CN23XX_CONFIG_PCIE_LINKCTL2 0xA0
0047 #define CN23XX_CONFIG_PCIE_UNCORRECT_ERR_MASK 0x108
0048 #define CN23XX_CONFIG_PCIE_CORRECT_ERR_STATUS 0x110
0049 #define CN23XX_CONFIG_PCIE_DEVCTL_MASK 0x00040000
0050
0051 #define CN23XX_PCIE_SRIOV_FDL 0x188
0052 #define CN23XX_PCIE_SRIOV_FDL_BIT_POS 0x10
0053 #define CN23XX_PCIE_SRIOV_FDL_MASK 0xFF
0054
0055 #define CN23XX_CONFIG_PCIE_FLTMSK 0x720
0056
0057 #define CN23XX_CONFIG_SRIOV_VFDEVID 0x190
0058
0059 #define CN23XX_CONFIG_SRIOV_BAR_START 0x19C
0060 #define CN23XX_CONFIG_SRIOV_BARX(i) \
0061 (CN23XX_CONFIG_SRIOV_BAR_START + ((i) * 4))
0062 #define CN23XX_CONFIG_SRIOV_BAR_PF 0x08
0063 #define CN23XX_CONFIG_SRIOV_BAR_64BIT 0x04
0064 #define CN23XX_CONFIG_SRIOV_BAR_IO 0x01
0065
0066
0067
0068 #define CN23XX_SLI_CTL_PORT_START 0x286E0
0069 #define CN23XX_PORT_OFFSET 0x10
0070
0071 #define CN23XX_SLI_CTL_PORT(p) \
0072 (CN23XX_SLI_CTL_PORT_START + ((p) * CN23XX_PORT_OFFSET))
0073
0074
0075 #define CN23XX_SLI_WINDOW_CTL 0x282E0
0076 #define CN23XX_SLI_SCRATCH1 0x283C0
0077 #define CN23XX_SLI_SCRATCH2 0x283D0
0078 #define CN23XX_SLI_WINDOW_CTL_DEFAULT 0x200000ULL
0079
0080
0081 #define CN23XX_SLI_CTL_STATUS 0x28570
0082
0083
0084
0085
0086
0087
0088 #define CN23XX_SLI_PKT_IN_JABBER 0x29170
0089
0090
0091
0092
0093
0094 #define CN23XX_DEFAULT_INPUT_JABBER 0xEA60
0095
0096 #define CN23XX_WIN_WR_ADDR_LO 0x20000
0097 #define CN23XX_WIN_WR_ADDR_HI 0x20004
0098 #define CN23XX_WIN_WR_ADDR64 CN23XX_WIN_WR_ADDR_LO
0099
0100 #define CN23XX_WIN_RD_ADDR_LO 0x20010
0101 #define CN23XX_WIN_RD_ADDR_HI 0x20014
0102 #define CN23XX_WIN_RD_ADDR64 CN23XX_WIN_RD_ADDR_LO
0103
0104 #define CN23XX_WIN_WR_DATA_LO 0x20020
0105 #define CN23XX_WIN_WR_DATA_HI 0x20024
0106 #define CN23XX_WIN_WR_DATA64 CN23XX_WIN_WR_DATA_LO
0107
0108 #define CN23XX_WIN_RD_DATA_LO 0x20040
0109 #define CN23XX_WIN_RD_DATA_HI 0x20044
0110 #define CN23XX_WIN_RD_DATA64 CN23XX_WIN_RD_DATA_LO
0111
0112 #define CN23XX_WIN_WR_MASK_LO 0x20030
0113 #define CN23XX_WIN_WR_MASK_HI 0x20034
0114 #define CN23XX_WIN_WR_MASK_REG CN23XX_WIN_WR_MASK_LO
0115 #define CN23XX_SLI_MAC_CREDIT_CNT 0x23D70
0116
0117
0118
0119
0120 #define CN23XX_SLI_PKT_MAC_RINFO_START64 0x29030
0121
0122
0123 #define CN23XX_SLI_PKT_IOQ_RING_RST 0x291E0
0124
0125
0126 #define CN23XX_IQ_OFFSET 0x20000
0127
0128 #define CN23XX_MAC_RINFO_OFFSET 0x20
0129 #define CN23XX_PF_RINFO_OFFSET 0x10
0130
0131 #define CN23XX_SLI_PKT_MAC_RINFO64(mac, pf) \
0132 (CN23XX_SLI_PKT_MAC_RINFO_START64 + \
0133 ((mac) * CN23XX_MAC_RINFO_OFFSET) + \
0134 ((pf) * CN23XX_PF_RINFO_OFFSET))
0135
0136
0137 #define CN23XX_PKT_MAC_CTL_RINFO_TRS BIT_ULL(16)
0138
0139 #define CN23XX_PKT_MAC_CTL_RINFO_SRN (0x7F)
0140
0141
0142 #define CN23XX_PKT_MAC_CTL_RINFO_TRS_BIT_POS 16
0143
0144 #define CN23XX_PKT_MAC_CTL_RINFO_SRN_BIT_POS 0
0145
0146 #define CN23XX_PKT_MAC_CTL_RINFO_RPVF_BIT_POS 32
0147
0148 #define CN23XX_PKT_MAC_CTL_RINFO_NVFS_BIT_POS 48
0149
0150
0151
0152
0153 #define CN23XX_SLI_IQ_INSTR_COUNT_START64 0x10040
0154
0155
0156 #define CN23XX_SLI_IQ_BASE_ADDR_START64 0x10010
0157
0158
0159 #define CN23XX_SLI_IQ_DOORBELL_START 0x10020
0160
0161
0162 #define CN23XX_SLI_IQ_SIZE_START 0x10030
0163
0164
0165
0166
0167 #define CN23XX_SLI_IQ_PKT_CONTROL_START64 0x10000
0168
0169
0170 #define CN23XX_SLI_IQ_PKT_CONTROL64(iq) \
0171 (CN23XX_SLI_IQ_PKT_CONTROL_START64 + ((iq) * CN23XX_IQ_OFFSET))
0172
0173 #define CN23XX_SLI_IQ_BASE_ADDR64(iq) \
0174 (CN23XX_SLI_IQ_BASE_ADDR_START64 + ((iq) * CN23XX_IQ_OFFSET))
0175
0176 #define CN23XX_SLI_IQ_SIZE(iq) \
0177 (CN23XX_SLI_IQ_SIZE_START + ((iq) * CN23XX_IQ_OFFSET))
0178
0179 #define CN23XX_SLI_IQ_DOORBELL(iq) \
0180 (CN23XX_SLI_IQ_DOORBELL_START + ((iq) * CN23XX_IQ_OFFSET))
0181
0182 #define CN23XX_SLI_IQ_INSTR_COUNT64(iq) \
0183 (CN23XX_SLI_IQ_INSTR_COUNT_START64 + ((iq) * CN23XX_IQ_OFFSET))
0184
0185
0186 #define CN23XX_PKT_INPUT_CTL_VF_NUM BIT_ULL(32)
0187 #define CN23XX_PKT_INPUT_CTL_MAC_NUM BIT(29)
0188
0189
0190
0191 #define CN23XX_PKT_INPUT_CTL_RDSIZE (3 << 25)
0192 #define CN23XX_PKT_INPUT_CTL_IS_64B BIT(24)
0193 #define CN23XX_PKT_INPUT_CTL_RST BIT(23)
0194 #define CN23XX_PKT_INPUT_CTL_QUIET BIT(28)
0195 #define CN23XX_PKT_INPUT_CTL_RING_ENB BIT(22)
0196 #define CN23XX_PKT_INPUT_CTL_DATA_NS BIT(8)
0197 #define CN23XX_PKT_INPUT_CTL_DATA_ES_64B_SWAP BIT(6)
0198 #define CN23XX_PKT_INPUT_CTL_DATA_RO BIT(5)
0199 #define CN23XX_PKT_INPUT_CTL_USE_CSR BIT(4)
0200 #define CN23XX_PKT_INPUT_CTL_GATHER_NS BIT(3)
0201 #define CN23XX_PKT_INPUT_CTL_GATHER_ES_64B_SWAP (2)
0202 #define CN23XX_PKT_INPUT_CTL_GATHER_RO (1)
0203
0204
0205 #define CN23XX_PKT_INPUT_CTL_RPVF_MASK (0x3F)
0206 #define CN23XX_PKT_INPUT_CTL_RPVF_POS (48)
0207
0208 #define CN23XX_PKT_INPUT_CTL_PF_NUM_MASK (0x7)
0209 #define CN23XX_PKT_INPUT_CTL_PF_NUM_POS (45)
0210
0211 #define CN23XX_PKT_INPUT_CTL_VF_NUM_MASK (0x1FFF)
0212 #define CN23XX_PKT_INPUT_CTL_VF_NUM_POS (32)
0213 #define CN23XX_PKT_INPUT_CTL_MAC_NUM_MASK (0x3)
0214 #define CN23XX_PKT_INPUT_CTL_MAC_NUM_POS (29)
0215 #define CN23XX_PKT_IN_DONE_WMARK_MASK (0xFFFFULL)
0216 #define CN23XX_PKT_IN_DONE_WMARK_BIT_POS (32)
0217 #define CN23XX_PKT_IN_DONE_CNT_MASK (0x00000000FFFFFFFFULL)
0218
0219 #ifdef __LITTLE_ENDIAN_BITFIELD
0220 #define CN23XX_PKT_INPUT_CTL_MASK \
0221 (CN23XX_PKT_INPUT_CTL_RDSIZE | \
0222 CN23XX_PKT_INPUT_CTL_DATA_ES_64B_SWAP | \
0223 CN23XX_PKT_INPUT_CTL_USE_CSR)
0224 #else
0225 #define CN23XX_PKT_INPUT_CTL_MASK \
0226 (CN23XX_PKT_INPUT_CTL_RDSIZE | \
0227 CN23XX_PKT_INPUT_CTL_DATA_ES_64B_SWAP | \
0228 CN23XX_PKT_INPUT_CTL_USE_CSR | \
0229 CN23XX_PKT_INPUT_CTL_GATHER_ES_64B_SWAP)
0230 #endif
0231
0232
0233 #define CN23XX_IN_DONE_CNTS_PI_INT BIT_ULL(62)
0234 #define CN23XX_IN_DONE_CNTS_CINT_ENB BIT_ULL(48)
0235
0236
0237
0238
0239 #define CN23XX_SLI_OQ_PKT_CONTROL_START 0x10050
0240
0241
0242 #define CN23XX_SLI_OQ0_BUFF_INFO_SIZE 0x10060
0243
0244
0245 #define CN23XX_SLI_OQ_BASE_ADDR_START64 0x10070
0246
0247
0248 #define CN23XX_SLI_OQ_PKT_CREDITS_START 0x10080
0249
0250
0251 #define CN23XX_SLI_OQ_SIZE_START 0x10090
0252
0253
0254 #define CN23XX_SLI_OQ_PKT_SENT_START 0x100B0
0255
0256
0257 #define CN23XX_SLI_OQ_PKT_INT_LEVELS_START64 0x100A0
0258
0259
0260 #define CN23XX_OQ_OFFSET 0x20000
0261
0262
0263 #define CN23XX_SLI_OQ_WMARK 0x29180
0264
0265
0266 #define CN23XX_SLI_GBL_CONTROL 0x29210
0267
0268
0269 #define CN23XX_SLI_OUT_BP_EN_W1S 0x29260
0270
0271
0272 #define CN23XX_SLI_OUT_BP_EN2_W1S 0x29270
0273
0274
0275 #define CN23XX_SLI_OUT_BP_EN_W1C 0x29280
0276
0277
0278 #define CN23XX_SLI_OUT_BP_EN2_W1C 0x29290
0279
0280
0281
0282 #define CN23XX_SLI_OQ_PKT_CONTROL(oq) \
0283 (CN23XX_SLI_OQ_PKT_CONTROL_START + ((oq) * CN23XX_OQ_OFFSET))
0284
0285 #define CN23XX_SLI_OQ_BASE_ADDR64(oq) \
0286 (CN23XX_SLI_OQ_BASE_ADDR_START64 + ((oq) * CN23XX_OQ_OFFSET))
0287
0288 #define CN23XX_SLI_OQ_SIZE(oq) \
0289 (CN23XX_SLI_OQ_SIZE_START + ((oq) * CN23XX_OQ_OFFSET))
0290
0291 #define CN23XX_SLI_OQ_BUFF_INFO_SIZE(oq) \
0292 (CN23XX_SLI_OQ0_BUFF_INFO_SIZE + ((oq) * CN23XX_OQ_OFFSET))
0293
0294 #define CN23XX_SLI_OQ_PKTS_SENT(oq) \
0295 (CN23XX_SLI_OQ_PKT_SENT_START + ((oq) * CN23XX_OQ_OFFSET))
0296
0297 #define CN23XX_SLI_OQ_PKTS_CREDIT(oq) \
0298 (CN23XX_SLI_OQ_PKT_CREDITS_START + ((oq) * CN23XX_OQ_OFFSET))
0299
0300 #define CN23XX_SLI_OQ_PKT_INT_LEVELS(oq) \
0301 (CN23XX_SLI_OQ_PKT_INT_LEVELS_START64 + \
0302 ((oq) * CN23XX_OQ_OFFSET))
0303
0304
0305 #define CN23XX_SLI_OQ_PKT_INT_LEVELS_CNT(oq) \
0306 (CN23XX_SLI_OQ_PKT_INT_LEVELS_START64 + \
0307 ((oq) * CN23XX_OQ_OFFSET))
0308
0309 #define CN23XX_SLI_OQ_PKT_INT_LEVELS_TIME(oq) \
0310 (CN23XX_SLI_OQ_PKT_INT_LEVELS_START64 + \
0311 ((oq) * CN23XX_OQ_OFFSET) + 4)
0312
0313
0314 #define CN23XX_PKT_OUTPUT_CTL_TENB BIT(13)
0315 #define CN23XX_PKT_OUTPUT_CTL_CENB BIT(12)
0316 #define CN23XX_PKT_OUTPUT_CTL_IPTR BIT(11)
0317 #define CN23XX_PKT_OUTPUT_CTL_ES BIT(9)
0318 #define CN23XX_PKT_OUTPUT_CTL_NSR BIT(8)
0319 #define CN23XX_PKT_OUTPUT_CTL_ROR BIT(7)
0320 #define CN23XX_PKT_OUTPUT_CTL_DPTR BIT(6)
0321 #define CN23XX_PKT_OUTPUT_CTL_BMODE BIT(5)
0322 #define CN23XX_PKT_OUTPUT_CTL_ES_P BIT(3)
0323 #define CN23XX_PKT_OUTPUT_CTL_NSR_P BIT(2)
0324 #define CN23XX_PKT_OUTPUT_CTL_ROR_P BIT(1)
0325 #define CN23XX_PKT_OUTPUT_CTL_RING_ENB BIT(0)
0326
0327
0328 #define CN23XX_SLI_PKT_MBOX_INT_START 0x10210
0329 #define CN23XX_SLI_PKT_PF_VF_MBOX_SIG_START 0x10200
0330 #define CN23XX_SLI_MAC_PF_MBOX_INT_START 0x27380
0331
0332 #define CN23XX_SLI_MBOX_OFFSET 0x20000
0333 #define CN23XX_SLI_MBOX_SIG_IDX_OFFSET 0x8
0334
0335 #define CN23XX_SLI_PKT_MBOX_INT(q) \
0336 (CN23XX_SLI_PKT_MBOX_INT_START + ((q) * CN23XX_SLI_MBOX_OFFSET))
0337
0338 #define CN23XX_SLI_PKT_PF_VF_MBOX_SIG(q, idx) \
0339 (CN23XX_SLI_PKT_PF_VF_MBOX_SIG_START + \
0340 ((q) * CN23XX_SLI_MBOX_OFFSET + \
0341 (idx) * CN23XX_SLI_MBOX_SIG_IDX_OFFSET))
0342
0343 #define CN23XX_SLI_MAC_PF_MBOX_INT(mac, pf) \
0344 (CN23XX_SLI_MAC_PF_MBOX_INT_START + \
0345 ((mac) * CN23XX_MAC_INT_OFFSET + \
0346 (pf) * CN23XX_PF_INT_OFFSET))
0347
0348
0349
0350
0351 #define CN23XX_DMA_CNT_START 0x28400
0352
0353
0354
0355 #define CN23XX_DMA_TIM_START 0x28420
0356
0357
0358
0359
0360 #define CN23XX_DMA_INT_LEVEL_START 0x283E0
0361
0362
0363 #define CN23XX_DMA_OFFSET 0x10
0364
0365
0366 #define CN23XX_DMA_CNT(dq) \
0367 (CN23XX_DMA_CNT_START + ((dq) * CN23XX_DMA_OFFSET))
0368
0369 #define CN23XX_DMA_INT_LEVEL(dq) \
0370 (CN23XX_DMA_INT_LEVEL_START + ((dq) * CN23XX_DMA_OFFSET))
0371
0372 #define CN23XX_DMA_PKT_INT_LEVEL(dq) \
0373 (CN23XX_DMA_INT_LEVEL_START + ((dq) * CN23XX_DMA_OFFSET))
0374
0375 #define CN23XX_DMA_TIME_INT_LEVEL(dq) \
0376 (CN23XX_DMA_INT_LEVEL_START + 4 + ((dq) * CN23XX_DMA_OFFSET))
0377
0378 #define CN23XX_DMA_TIM(dq) \
0379 (CN23XX_DMA_TIM_START + ((dq) * CN23XX_DMA_OFFSET))
0380
0381
0382
0383 #define CN23XX_MSIX_TABLE_ADDR_START 0x0
0384 #define CN23XX_MSIX_TABLE_DATA_START 0x8
0385
0386 #define CN23XX_MSIX_TABLE_SIZE 0x10
0387 #define CN23XX_MSIX_TABLE_ENTRIES 0x41
0388
0389 #define CN23XX_MSIX_ENTRY_VECTOR_CTL BIT_ULL(32)
0390
0391 #define CN23XX_MSIX_TABLE_ADDR(idx) \
0392 (CN23XX_MSIX_TABLE_ADDR_START + ((idx) * CN23XX_MSIX_TABLE_SIZE))
0393
0394 #define CN23XX_MSIX_TABLE_DATA(idx) \
0395 (CN23XX_MSIX_TABLE_DATA_START + ((idx) * CN23XX_MSIX_TABLE_SIZE))
0396
0397
0398 #define CN23XX_MAC_INT_OFFSET 0x20
0399 #define CN23XX_PF_INT_OFFSET 0x10
0400
0401
0402 #define CN23XX_SLI_INT_SUM64 0x27000
0403
0404
0405 #define CN23XX_SLI_INT_ENB64 0x27080
0406
0407 #define CN23XX_SLI_MAC_PF_INT_SUM64(mac, pf) \
0408 (CN23XX_SLI_INT_SUM64 + \
0409 ((mac) * CN23XX_MAC_INT_OFFSET) + \
0410 ((pf) * CN23XX_PF_INT_OFFSET))
0411
0412 #define CN23XX_SLI_MAC_PF_INT_ENB64(mac, pf) \
0413 (CN23XX_SLI_INT_ENB64 + \
0414 ((mac) * CN23XX_MAC_INT_OFFSET) + \
0415 ((pf) * CN23XX_PF_INT_OFFSET))
0416
0417
0418 #define CN23XX_SLI_PKT_CNT_INT 0x29130
0419
0420
0421 #define CN23XX_SLI_PKT_TIME_INT 0x29140
0422
0423
0424
0425 #define CN23XX_INTR_PO_INT BIT_ULL(63)
0426 #define CN23XX_INTR_PI_INT BIT_ULL(62)
0427 #define CN23XX_INTR_MBOX_INT BIT_ULL(61)
0428 #define CN23XX_INTR_RESEND BIT_ULL(60)
0429
0430 #define CN23XX_INTR_CINT_ENB BIT_ULL(48)
0431 #define CN23XX_INTR_MBOX_ENB BIT(0)
0432
0433 #define CN23XX_INTR_RML_TIMEOUT_ERR (1)
0434
0435 #define CN23XX_INTR_MIO_INT BIT(1)
0436
0437 #define CN23XX_INTR_RESERVED1 (3 << 2)
0438
0439 #define CN23XX_INTR_PKT_COUNT BIT(4)
0440 #define CN23XX_INTR_PKT_TIME BIT(5)
0441
0442 #define CN23XX_INTR_RESERVED2 (3 << 6)
0443
0444 #define CN23XX_INTR_M0UPB0_ERR BIT(8)
0445 #define CN23XX_INTR_M0UPWI_ERR BIT(9)
0446 #define CN23XX_INTR_M0UNB0_ERR BIT(10)
0447 #define CN23XX_INTR_M0UNWI_ERR BIT(11)
0448
0449 #define CN23XX_INTR_RESERVED3 (0xFFFFFULL << 12)
0450
0451 #define CN23XX_INTR_DMA0_FORCE BIT_ULL(32)
0452 #define CN23XX_INTR_DMA1_FORCE BIT_ULL(33)
0453
0454 #define CN23XX_INTR_DMA0_COUNT BIT_ULL(34)
0455 #define CN23XX_INTR_DMA1_COUNT BIT_ULL(35)
0456
0457 #define CN23XX_INTR_DMA0_TIME BIT_ULL(36)
0458 #define CN23XX_INTR_DMA1_TIME BIT_ULL(37)
0459
0460 #define CN23XX_INTR_RESERVED4 (0x7FFFFULL << 38)
0461
0462 #define CN23XX_INTR_VF_MBOX BIT_ULL(57)
0463 #define CN23XX_INTR_DMAVF_ERR BIT_ULL(58)
0464 #define CN23XX_INTR_DMAPF_ERR BIT_ULL(59)
0465
0466 #define CN23XX_INTR_PKTVF_ERR BIT_ULL(60)
0467 #define CN23XX_INTR_PKTPF_ERR BIT_ULL(61)
0468 #define CN23XX_INTR_PPVF_ERR BIT_ULL(62)
0469 #define CN23XX_INTR_PPPF_ERR BIT_ULL(63)
0470
0471 #define CN23XX_INTR_DMA0_DATA (CN23XX_INTR_DMA0_TIME)
0472 #define CN23XX_INTR_DMA1_DATA (CN23XX_INTR_DMA1_TIME)
0473
0474 #define CN23XX_INTR_DMA_DATA \
0475 (CN23XX_INTR_DMA0_DATA | CN23XX_INTR_DMA1_DATA)
0476
0477
0478 #define CN23XX_INTR_PKT_DATA (CN23XX_INTR_PKT_TIME)
0479
0480
0481
0482
0483
0484
0485 #define CN23XX_INTR_PCIE_DATA \
0486 (CN23XX_INTR_DMA_DATA | CN23XX_INTR_PKT_DAT)
0487
0488
0489 #define CN23XX_INTR_ERR \
0490 (CN23XX_INTR_M0UPB0_ERR | \
0491 CN23XX_INTR_M0UPWI_ERR | \
0492 CN23XX_INTR_M0UNB0_ERR | \
0493 CN23XX_INTR_M0UNWI_ERR | \
0494 CN23XX_INTR_DMAVF_ERR | \
0495 CN23XX_INTR_DMAPF_ERR | \
0496 CN23XX_INTR_PKTPF_ERR | \
0497 CN23XX_INTR_PPPF_ERR | \
0498 CN23XX_INTR_PPVF_ERR)
0499
0500
0501 #define CN23XX_INTR_MASK \
0502 (CN23XX_INTR_DMA_DATA | \
0503 CN23XX_INTR_DMA0_FORCE | \
0504 CN23XX_INTR_DMA1_FORCE | \
0505 CN23XX_INTR_MIO_INT | \
0506 CN23XX_INTR_ERR)
0507
0508
0509 #define CN23XX_SLI_S2M_PORT_CTL_START 0x23D80
0510 #define CN23XX_SLI_S2M_PORTX_CTL(port) \
0511 (CN23XX_SLI_S2M_PORT_CTL_START + ((port) * 0x10))
0512
0513 #define CN23XX_SLI_MAC_NUMBER 0x20050
0514
0515
0516
0517
0518
0519 #define CN23XX_PEM_BAR1_INDEX_START 0x00011800C0000100ULL
0520 #define CN23XX_PEM_OFFSET 24
0521 #define CN23XX_BAR1_INDEX_OFFSET 3
0522
0523 #define CN23XX_PEM_BAR1_INDEX_REG(port, idx) \
0524 (CN23XX_PEM_BAR1_INDEX_START + (((u64)port) << CN23XX_PEM_OFFSET) + \
0525 ((idx) << CN23XX_BAR1_INDEX_OFFSET))
0526
0527
0528
0529
0530 #define CN23XX_DPI_CTL 0x0001df0000000040ULL
0531
0532
0533 #define CN23XX_DPI_DMA_CONTROL 0x0001df0000000048ULL
0534
0535
0536 #define CN23XX_DPI_REQ_GBL_ENB 0x0001df0000000050ULL
0537
0538
0539
0540
0541 #define CN23XX_DPI_REQ_ERR_RSP 0x0001df0000000058ULL
0542
0543
0544
0545
0546 #define CN23XX_DPI_REQ_ERR_RST 0x0001df0000000060ULL
0547
0548
0549
0550
0551 #define CN23XX_DPI_DMA_ENG0_ENB 0x0001df0000000080ULL
0552 #define CN23XX_DPI_DMA_ENG_ENB(eng) (CN23XX_DPI_DMA_ENG0_ENB + ((eng) * 8))
0553
0554
0555
0556
0557 #define CN23XX_DPI_DMA_REQQ0_CTL 0x0001df0000000180ULL
0558 #define CN23XX_DPI_DMA_REQQ_CTL(q_no) \
0559 (CN23XX_DPI_DMA_REQQ0_CTL + ((q_no) * 8))
0560
0561
0562
0563
0564 #define CN23XX_DPI_DMA_ENG0_BUF 0x0001df0000000880ULL
0565 #define CN23XX_DPI_DMA_ENG_BUF(eng) \
0566 (CN23XX_DPI_DMA_ENG0_BUF + ((eng) * 8))
0567
0568
0569 #define CN23XX_DPI_SLI_PRT_CFG_START 0x0001df0000000900ULL
0570 #define CN23XX_DPI_SLI_PRTX_CFG(port) \
0571 (CN23XX_DPI_SLI_PRT_CFG_START + ((port) * 0x8))
0572
0573
0574 #define CN23XX_DPI_DMA_COMMIT_MODE BIT_ULL(58)
0575 #define CN23XX_DPI_DMA_PKT_EN BIT_ULL(56)
0576 #define CN23XX_DPI_DMA_ENB (0x0FULL << 48)
0577
0578
0579
0580 #define CN23XX_DPI_DMA_O_ADD1 BIT(19)
0581
0582 #define CN23XX_DPI_DMA_O_ES BIT(15)
0583 #define CN23XX_DPI_DMA_O_MODE BIT(14)
0584
0585 #define CN23XX_DPI_DMA_CTL_MASK \
0586 (CN23XX_DPI_DMA_COMMIT_MODE | \
0587 CN23XX_DPI_DMA_PKT_EN | \
0588 CN23XX_DPI_DMA_O_ES | \
0589 CN23XX_DPI_DMA_O_MODE)
0590
0591
0592
0593 #define CN23XX_RST_BOOT 0x0001180006001600ULL
0594 #define CN23XX_RST_SOFT_RST 0x0001180006001680ULL
0595
0596 #define CN23XX_LMC0_RESET_CTL 0x0001180088000180ULL
0597 #define CN23XX_LMC0_RESET_CTL_DDR3RST_MASK 0x0000000000000001ULL
0598
0599 #endif