0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019 #ifndef __T7XX_REG_H__
0020 #define __T7XX_REG_H__
0021
0022 #include <linux/bits.h>
0023
0024
0025 #define MHCCIF_RC_DEV_BASE 0x10024000
0026
0027 #define REG_RC2EP_SW_BSY 0x04
0028 #define REG_RC2EP_SW_INT_START 0x08
0029
0030 #define REG_RC2EP_SW_TCHNUM 0x0c
0031 #define H2D_CH_EXCEPTION_ACK 1
0032 #define H2D_CH_EXCEPTION_CLEARQ_ACK 2
0033 #define H2D_CH_DS_LOCK 3
0034
0035 #define H2D_CH_SUSPEND_REQ 9
0036 #define H2D_CH_RESUME_REQ 10
0037 #define H2D_CH_SUSPEND_REQ_AP 11
0038 #define H2D_CH_RESUME_REQ_AP 12
0039 #define H2D_CH_DEVICE_RESET 13
0040 #define H2D_CH_DRM_DISABLE_AP 14
0041
0042 #define REG_EP2RC_SW_INT_STS 0x10
0043 #define REG_EP2RC_SW_INT_ACK 0x14
0044 #define REG_EP2RC_SW_INT_EAP_MASK 0x20
0045 #define REG_EP2RC_SW_INT_EAP_MASK_SET 0x30
0046 #define REG_EP2RC_SW_INT_EAP_MASK_CLR 0x40
0047
0048 #define D2H_INT_DS_LOCK_ACK BIT(0)
0049 #define D2H_INT_EXCEPTION_INIT BIT(1)
0050 #define D2H_INT_EXCEPTION_INIT_DONE BIT(2)
0051 #define D2H_INT_EXCEPTION_CLEARQ_DONE BIT(3)
0052 #define D2H_INT_EXCEPTION_ALLQ_RESET BIT(4)
0053 #define D2H_INT_PORT_ENUM BIT(5)
0054
0055 #define D2H_INT_SUSPEND_ACK BIT(11)
0056 #define D2H_INT_RESUME_ACK BIT(12)
0057 #define D2H_INT_SUSPEND_ACK_AP BIT(13)
0058 #define D2H_INT_RESUME_ACK_AP BIT(14)
0059 #define D2H_INT_ASYNC_SAP_HK BIT(15)
0060 #define D2H_INT_ASYNC_MD_HK BIT(16)
0061
0062
0063 #define INFRACFG_AO_DEV_CHIP 0x10001000
0064
0065
0066 #define T7XX_PCIE_REG_TRSL_ADDR_CHIP 0x10000000
0067 #define T7XX_PCIE_REG_SIZE_CHIP 0x00400000
0068
0069
0070 #define TOPRGU_CH_PCIE_IRQ_STA 0x1000790c
0071
0072 #define ATR_PORT_OFFSET 0x100
0073 #define ATR_TABLE_OFFSET 0x20
0074 #define ATR_TABLE_NUM_PER_ATR 8
0075 #define ATR_TRANSPARENT_SIZE 0x3f
0076
0077
0078
0079 #define ISTAT_HST_CTRL 0x01ac
0080 #define ISTAT_HST_CTRL_DIS BIT(0)
0081
0082 #define T7XX_PCIE_MISC_CTRL 0x0348
0083 #define T7XX_PCIE_MISC_MAC_SLEEP_DIS BIT(7)
0084
0085 #define T7XX_PCIE_CFG_MSIX 0x03ec
0086 #define ATR_PCIE_WIN0_T0_ATR_PARAM_SRC_ADDR 0x0600
0087 #define ATR_PCIE_WIN0_T0_TRSL_ADDR 0x0608
0088 #define ATR_PCIE_WIN0_T0_TRSL_PARAM 0x0610
0089 #define ATR_PCIE_WIN0_ADDR_ALGMT GENMASK_ULL(63, 12)
0090
0091 #define ATR_SRC_ADDR_INVALID 0x007f
0092
0093 #define T7XX_PCIE_PM_RESUME_STATE 0x0d0c
0094
0095 enum t7xx_pm_resume_state {
0096 PM_RESUME_REG_STATE_L3,
0097 PM_RESUME_REG_STATE_L1,
0098 PM_RESUME_REG_STATE_INIT,
0099 PM_RESUME_REG_STATE_EXP,
0100 PM_RESUME_REG_STATE_L2,
0101 PM_RESUME_REG_STATE_L2_EXP,
0102 };
0103
0104 #define T7XX_PCIE_MISC_DEV_STATUS 0x0d1c
0105 #define MISC_STAGE_MASK GENMASK(2, 0)
0106 #define MISC_RESET_TYPE_PLDR BIT(26)
0107 #define MISC_RESET_TYPE_FLDR BIT(27)
0108 #define LINUX_STAGE 4
0109
0110 #define T7XX_PCIE_RESOURCE_STATUS 0x0d28
0111 #define T7XX_PCIE_RESOURCE_STS_MSK GENMASK(4, 0)
0112
0113 #define DISABLE_ASPM_LOWPWR 0x0e50
0114 #define ENABLE_ASPM_LOWPWR 0x0e54
0115 #define T7XX_L1_BIT(i) BIT((i) * 4 + 1)
0116 #define T7XX_L1_1_BIT(i) BIT((i) * 4 + 2)
0117 #define T7XX_L1_2_BIT(i) BIT((i) * 4 + 3)
0118
0119 #define MSIX_ISTAT_HST_GRP0_0 0x0f00
0120 #define IMASK_HOST_MSIX_SET_GRP0_0 0x3000
0121 #define IMASK_HOST_MSIX_CLR_GRP0_0 0x3080
0122 #define EXT_INT_START 24
0123 #define EXT_INT_NUM 8
0124 #define MSIX_MSK_SET_ALL GENMASK(31, 24)
0125
0126 enum t7xx_int {
0127 DPMAIF_INT,
0128 CLDMA0_INT,
0129 CLDMA1_INT,
0130 CLDMA2_INT,
0131 MHCCIF_INT,
0132 DPMAIF2_INT,
0133 SAP_RGU_INT,
0134 CLDMA3_INT,
0135 };
0136
0137
0138
0139 #define DPMAIF_PD_BASE 0x1022d000
0140 #define BASE_DPMAIF_UL DPMAIF_PD_BASE
0141 #define BASE_DPMAIF_DL (DPMAIF_PD_BASE + 0x100)
0142 #define BASE_DPMAIF_AP_MISC (DPMAIF_PD_BASE + 0x400)
0143 #define BASE_DPMAIF_MMW_HPC (DPMAIF_PD_BASE + 0x600)
0144 #define BASE_DPMAIF_DL_DLQ_REMOVEAO_IDX (DPMAIF_PD_BASE + 0x900)
0145 #define BASE_DPMAIF_PD_SRAM_DL (DPMAIF_PD_BASE + 0xc00)
0146 #define BASE_DPMAIF_PD_SRAM_UL (DPMAIF_PD_BASE + 0xd00)
0147
0148 #define DPMAIF_AO_BASE 0x10014000
0149 #define BASE_DPMAIF_AO_UL DPMAIF_AO_BASE
0150 #define BASE_DPMAIF_AO_DL (DPMAIF_AO_BASE + 0x400)
0151
0152 #define DPMAIF_UL_ADD_DESC (BASE_DPMAIF_UL + 0x00)
0153 #define DPMAIF_UL_CHK_BUSY (BASE_DPMAIF_UL + 0x88)
0154 #define DPMAIF_UL_RESERVE_AO_RW (BASE_DPMAIF_UL + 0xac)
0155 #define DPMAIF_UL_ADD_DESC_CH0 (BASE_DPMAIF_UL + 0xb0)
0156
0157 #define DPMAIF_DL_BAT_INIT (BASE_DPMAIF_DL + 0x00)
0158 #define DPMAIF_DL_BAT_ADD (BASE_DPMAIF_DL + 0x04)
0159 #define DPMAIF_DL_BAT_INIT_CON0 (BASE_DPMAIF_DL + 0x08)
0160 #define DPMAIF_DL_BAT_INIT_CON1 (BASE_DPMAIF_DL + 0x0c)
0161 #define DPMAIF_DL_BAT_INIT_CON2 (BASE_DPMAIF_DL + 0x10)
0162 #define DPMAIF_DL_BAT_INIT_CON3 (BASE_DPMAIF_DL + 0x50)
0163 #define DPMAIF_DL_CHK_BUSY (BASE_DPMAIF_DL + 0xb4)
0164
0165 #define DPMAIF_AP_L2TISAR0 (BASE_DPMAIF_AP_MISC + 0x00)
0166 #define DPMAIF_AP_APDL_L2TISAR0 (BASE_DPMAIF_AP_MISC + 0x50)
0167 #define DPMAIF_AP_IP_BUSY (BASE_DPMAIF_AP_MISC + 0x60)
0168 #define DPMAIF_AP_CG_EN (BASE_DPMAIF_AP_MISC + 0x68)
0169 #define DPMAIF_AP_OVERWRITE_CFG (BASE_DPMAIF_AP_MISC + 0x90)
0170 #define DPMAIF_AP_MEM_CLR (BASE_DPMAIF_AP_MISC + 0x94)
0171 #define DPMAIF_AP_ALL_L2TISAR0_MASK GENMASK(31, 0)
0172 #define DPMAIF_AP_APDL_ALL_L2TISAR0_MASK GENMASK(31, 0)
0173 #define DPMAIF_AP_IP_BUSY_MASK GENMASK(31, 0)
0174
0175 #define DPMAIF_AO_UL_INIT_SET (BASE_DPMAIF_AO_UL + 0x0)
0176 #define DPMAIF_AO_UL_CHNL_ARB0 (BASE_DPMAIF_AO_UL + 0x1c)
0177 #define DPMAIF_AO_UL_AP_L2TIMR0 (BASE_DPMAIF_AO_UL + 0x80)
0178 #define DPMAIF_AO_UL_AP_L2TIMCR0 (BASE_DPMAIF_AO_UL + 0x84)
0179 #define DPMAIF_AO_UL_AP_L2TIMSR0 (BASE_DPMAIF_AO_UL + 0x88)
0180 #define DPMAIF_AO_UL_AP_L1TIMR0 (BASE_DPMAIF_AO_UL + 0x8c)
0181 #define DPMAIF_AO_UL_APDL_L2TIMR0 (BASE_DPMAIF_AO_UL + 0x90)
0182 #define DPMAIF_AO_UL_APDL_L2TIMCR0 (BASE_DPMAIF_AO_UL + 0x94)
0183 #define DPMAIF_AO_UL_APDL_L2TIMSR0 (BASE_DPMAIF_AO_UL + 0x98)
0184 #define DPMAIF_AO_AP_DLUL_IP_BUSY_MASK (BASE_DPMAIF_AO_UL + 0x9c)
0185
0186 #define DPMAIF_AO_UL_CHNL0_CON0 (BASE_DPMAIF_PD_SRAM_UL + 0x10)
0187 #define DPMAIF_AO_UL_CHNL0_CON1 (BASE_DPMAIF_PD_SRAM_UL + 0x14)
0188 #define DPMAIF_AO_UL_CHNL0_CON2 (BASE_DPMAIF_PD_SRAM_UL + 0x18)
0189 #define DPMAIF_AO_UL_CH0_STA (BASE_DPMAIF_PD_SRAM_UL + 0x70)
0190
0191 #define DPMAIF_AO_DL_INIT_SET (BASE_DPMAIF_AO_DL + 0x00)
0192 #define DPMAIF_AO_DL_IRQ_MASK (BASE_DPMAIF_AO_DL + 0x0c)
0193 #define DPMAIF_AO_DL_DLQPIT_INIT_CON5 (BASE_DPMAIF_AO_DL + 0x28)
0194 #define DPMAIF_AO_DL_DLQPIT_TRIG_THRES (BASE_DPMAIF_AO_DL + 0x34)
0195
0196 #define DPMAIF_AO_DL_PKTINFO_CON0 (BASE_DPMAIF_PD_SRAM_DL + 0x00)
0197 #define DPMAIF_AO_DL_PKTINFO_CON1 (BASE_DPMAIF_PD_SRAM_DL + 0x04)
0198 #define DPMAIF_AO_DL_PKTINFO_CON2 (BASE_DPMAIF_PD_SRAM_DL + 0x08)
0199 #define DPMAIF_AO_DL_RDY_CHK_THRES (BASE_DPMAIF_PD_SRAM_DL + 0x0c)
0200 #define DPMAIF_AO_DL_RDY_CHK_FRG_THRES (BASE_DPMAIF_PD_SRAM_DL + 0x10)
0201
0202 #define DPMAIF_AO_DL_DLQ_AGG_CFG (BASE_DPMAIF_PD_SRAM_DL + 0x20)
0203 #define DPMAIF_AO_DL_DLQPIT_TIMEOUT0 (BASE_DPMAIF_PD_SRAM_DL + 0x24)
0204 #define DPMAIF_AO_DL_DLQPIT_TIMEOUT1 (BASE_DPMAIF_PD_SRAM_DL + 0x28)
0205 #define DPMAIF_AO_DL_HPC_CNTL (BASE_DPMAIF_PD_SRAM_DL + 0x38)
0206 #define DPMAIF_AO_DL_PIT_SEQ_END (BASE_DPMAIF_PD_SRAM_DL + 0x40)
0207
0208 #define DPMAIF_AO_DL_BAT_RD_IDX (BASE_DPMAIF_PD_SRAM_DL + 0xd8)
0209 #define DPMAIF_AO_DL_BAT_WR_IDX (BASE_DPMAIF_PD_SRAM_DL + 0xdc)
0210 #define DPMAIF_AO_DL_PIT_RD_IDX (BASE_DPMAIF_PD_SRAM_DL + 0xec)
0211 #define DPMAIF_AO_DL_PIT_WR_IDX (BASE_DPMAIF_PD_SRAM_DL + 0x60)
0212 #define DPMAIF_AO_DL_FRGBAT_RD_IDX (BASE_DPMAIF_PD_SRAM_DL + 0x78)
0213 #define DPMAIF_AO_DL_DLQ_WR_IDX (BASE_DPMAIF_PD_SRAM_DL + 0xa4)
0214
0215 #define DPMAIF_HPC_INTR_MASK (BASE_DPMAIF_MMW_HPC + 0x0f4)
0216 #define DPMA_HPC_ALL_INT_MASK GENMASK(15, 0)
0217
0218 #define DPMAIF_HPC_DLQ_PATH_MODE 3
0219 #define DPMAIF_HPC_ADD_MODE_DF 0
0220 #define DPMAIF_HPC_TOTAL_NUM 8
0221 #define DPMAIF_HPC_MAX_TOTAL_NUM 8
0222
0223 #define DPMAIF_DL_DLQPIT_INIT (BASE_DPMAIF_DL_DLQ_REMOVEAO_IDX + 0x00)
0224 #define DPMAIF_DL_DLQPIT_ADD (BASE_DPMAIF_DL_DLQ_REMOVEAO_IDX + 0x10)
0225 #define DPMAIF_DL_DLQPIT_INIT_CON0 (BASE_DPMAIF_DL_DLQ_REMOVEAO_IDX + 0x14)
0226 #define DPMAIF_DL_DLQPIT_INIT_CON1 (BASE_DPMAIF_DL_DLQ_REMOVEAO_IDX + 0x18)
0227 #define DPMAIF_DL_DLQPIT_INIT_CON2 (BASE_DPMAIF_DL_DLQ_REMOVEAO_IDX + 0x1c)
0228 #define DPMAIF_DL_DLQPIT_INIT_CON3 (BASE_DPMAIF_DL_DLQ_REMOVEAO_IDX + 0x20)
0229 #define DPMAIF_DL_DLQPIT_INIT_CON4 (BASE_DPMAIF_DL_DLQ_REMOVEAO_IDX + 0x24)
0230 #define DPMAIF_DL_DLQPIT_INIT_CON5 (BASE_DPMAIF_DL_DLQ_REMOVEAO_IDX + 0x28)
0231 #define DPMAIF_DL_DLQPIT_INIT_CON6 (BASE_DPMAIF_DL_DLQ_REMOVEAO_IDX + 0x2c)
0232
0233 #define DPMAIF_ULQSAR_n(q) (DPMAIF_AO_UL_CHNL0_CON0 + 0x10 * (q))
0234 #define DPMAIF_UL_DRBSIZE_ADDRH_n(q) (DPMAIF_AO_UL_CHNL0_CON1 + 0x10 * (q))
0235 #define DPMAIF_UL_DRB_ADDRH_n(q) (DPMAIF_AO_UL_CHNL0_CON2 + 0x10 * (q))
0236 #define DPMAIF_ULQ_STA0_n(q) (DPMAIF_AO_UL_CH0_STA + 0x04 * (q))
0237 #define DPMAIF_ULQ_ADD_DESC_CH_n(q) (DPMAIF_UL_ADD_DESC_CH0 + 0x04 * (q))
0238
0239 #define DPMAIF_UL_DRB_RIDX_MSK GENMASK(31, 16)
0240
0241 #define DPMAIF_AP_RGU_ASSERT 0x10001150
0242 #define DPMAIF_AP_RGU_DEASSERT 0x10001154
0243 #define DPMAIF_AP_RST_BIT BIT(2)
0244
0245 #define DPMAIF_AP_AO_RGU_ASSERT 0x10001140
0246 #define DPMAIF_AP_AO_RGU_DEASSERT 0x10001144
0247 #define DPMAIF_AP_AO_RST_BIT BIT(6)
0248
0249
0250 #define DPMAIF_UL_ADD_NOT_READY BIT(31)
0251 #define DPMAIF_UL_ADD_UPDATE BIT(31)
0252 #define DPMAIF_UL_ADD_COUNT_MASK GENMASK(15, 0)
0253 #define DPMAIF_UL_ALL_QUE_ARB_EN GENMASK(11, 8)
0254
0255 #define DPMAIF_DL_ADD_UPDATE BIT(31)
0256 #define DPMAIF_DL_ADD_NOT_READY BIT(31)
0257 #define DPMAIF_DL_FRG_ADD_UPDATE BIT(16)
0258 #define DPMAIF_DL_ADD_COUNT_MASK GENMASK(15, 0)
0259
0260 #define DPMAIF_DL_BAT_INIT_ALLSET BIT(0)
0261 #define DPMAIF_DL_BAT_FRG_INIT BIT(16)
0262 #define DPMAIF_DL_BAT_INIT_EN BIT(31)
0263 #define DPMAIF_DL_BAT_INIT_NOT_READY BIT(31)
0264 #define DPMAIF_DL_BAT_INIT_ONLY_ENABLE_BIT 0
0265
0266 #define DPMAIF_DL_PIT_INIT_ALLSET BIT(0)
0267 #define DPMAIF_DL_PIT_INIT_EN BIT(31)
0268 #define DPMAIF_DL_PIT_INIT_NOT_READY BIT(31)
0269
0270 #define DPMAIF_BAT_REMAIN_SZ_BASE 16
0271 #define DPMAIF_BAT_BUFFER_SZ_BASE 128
0272 #define DPMAIF_FRG_BUFFER_SZ_BASE 128
0273
0274 #define DLQ_PIT_IDX_SIZE 0x20
0275
0276 #define DPMAIF_PIT_SIZE_MSK GENMASK(17, 0)
0277
0278 #define DPMAIF_PIT_REM_CNT_MSK GENMASK(17, 0)
0279
0280 #define DPMAIF_BAT_EN_MSK BIT(16)
0281 #define DPMAIF_FRG_EN_MSK BIT(28)
0282 #define DPMAIF_BAT_SIZE_MSK GENMASK(15, 0)
0283
0284 #define DPMAIF_BAT_BID_MAXCNT_MSK GENMASK(31, 16)
0285 #define DPMAIF_BAT_REMAIN_MINSZ_MSK GENMASK(15, 8)
0286 #define DPMAIF_PIT_CHK_NUM_MSK GENMASK(31, 24)
0287 #define DPMAIF_BAT_BUF_SZ_MSK GENMASK(16, 8)
0288 #define DPMAIF_FRG_BUF_SZ_MSK GENMASK(16, 8)
0289 #define DPMAIF_BAT_RSV_LEN_MSK GENMASK(7, 0)
0290 #define DPMAIF_PKT_ALIGN_MSK GENMASK(23, 22)
0291
0292 #define DPMAIF_BAT_CHECK_THRES_MSK GENMASK(21, 16)
0293 #define DPMAIF_FRG_CHECK_THRES_MSK GENMASK(7, 0)
0294
0295 #define DPMAIF_PKT_ALIGN_EN BIT(23)
0296
0297 #define DPMAIF_DRB_SIZE_MSK GENMASK(15, 0)
0298
0299 #define DPMAIF_DL_RD_WR_IDX_MSK GENMASK(17, 0)
0300
0301
0302 #define DPMAIF_UL_IDLE_STS BIT(11)
0303
0304 #define DPMAIF_DL_IDLE_STS BIT(23)
0305
0306 #define DPMAIF_DL_PKT_CHECKSUM_EN BIT(31)
0307 #define DPMAIF_PORT_MODE_PCIE BIT(30)
0308 #define DPMAIF_DL_BURST_PIT_EN BIT(13)
0309
0310 #define DPMAIF_DL_BAT_CACHE_PRI BIT(22)
0311
0312 #define DPMAIF_MEM_CLR BIT(0)
0313
0314 #define DPMAIF_SRAM_SYNC BIT(0)
0315
0316 #define DPMAIF_UL_INIT_DONE BIT(0)
0317
0318 #define DPMAIF_DL_INIT_DONE BIT(0)
0319
0320 #define DPMAIF_DL_PIT_SEQ_MSK GENMASK(7, 0)
0321
0322 #define DPMAIF_PCIE_MODE_SET_VALUE 0x55
0323
0324 #define DPMAIF_CG_EN 0x7f
0325
0326 #define DPMAIF_UDL_IP_BUSY BIT(0)
0327 #define DPMAIF_DL_INT_DLQ0_QDONE BIT(8)
0328 #define DPMAIF_DL_INT_DLQ1_QDONE BIT(9)
0329 #define DPMAIF_DL_INT_DLQ0_PITCNT_LEN BIT(10)
0330 #define DPMAIF_DL_INT_DLQ1_PITCNT_LEN BIT(11)
0331 #define DPMAIF_DL_INT_Q2TOQ1 BIT(24)
0332 #define DPMAIF_DL_INT_Q2APTOP BIT(25)
0333
0334 #define DPMAIF_DLQ_LOW_TIMEOUT_THRES_MKS GENMASK(15, 0)
0335 #define DPMAIF_DLQ_HIGH_TIMEOUT_THRES_MSK GENMASK(31, 16)
0336
0337
0338 #define DPMAIF_AGG_MAX_LEN_DF 65535
0339 #define DPMAIF_AGG_TBL_ENT_NUM_DF 50
0340 #define DPMAIF_HASH_PRIME_DF 13
0341 #define DPMAIF_MID_TIMEOUT_THRES_DF 100
0342 #define DPMAIF_DLQ_TIMEOUT_THRES_DF 100
0343 #define DPMAIF_DLQ_PRS_THRES_DF 10
0344 #define DPMAIF_DLQ_HASH_BIT_CHOOSE_DF 0
0345
0346 #define DPMAIF_DLQPIT_EN_MSK BIT(20)
0347 #define DPMAIF_DLQPIT_CHAN_OFS 16
0348 #define DPMAIF_ADD_DLQ_PIT_CHAN_OFS 20
0349
0350 #endif