1 /* $NetBSD: imxpciereg.h,v 1.4 2024/02/07 04:20:26 msaitoh Exp $ */ 2 3 /* 4 * Copyright (c) 2015 Ryo Shimizu 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions 9 * are met: 10 * 1. Redistributions of source code must retain the above copyright 11 * notice, this list of conditions and the following disclaimer. 12 * 2. Redistributions in binary form must reproduce the above copyright 13 * notice, this list of conditions and the following disclaimer in the 14 * documentation and/or other materials provided with the distribution. 15 * 16 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 17 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, 20 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 22 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 24 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 25 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26 * POSSIBILITY OF SUCH DAMAGE. 27 */ 28 29 #ifndef _ARM_IMX_IMX6_PCIEREG_H_ 30 #define _ARM_IMX_IMX6_PCIEREG_H_ 31 32 /* PCIe EP Mode Registers */ 33 #define PCIE_EP_DEVICEID 0x00000000 34 #define PCIE_EP_COMMAND 0x00000004 35 #define PCIE_EP_BIST 0x0000000c 36 #define PCIE_EP_BAR0 0x00000010 37 #define PCIE_EP_MASK0 0x00000010 38 #define PCIE_EP_MASK1 0x00000014 39 #define PCIE_EP_MASK2 0x00000018 40 #define PCIE_EP_MASK3 0x0000001c 41 #define PCIE_EP_CISP 0x00000028 42 #define PCIE_EP_SSID 0x0000002c 43 #define PCIE_EP_EROMBAR 0x00000030 44 #define PCIE_EP_EROMMASK 0x00000030 45 #define PCIE_EP_CAPPR 0x00000034 46 #define PCIE_EP_ILR 0x0000003c 47 #define PCIE_EP_AER 0x00000100 48 #define PCIE_EP_UESR 0x00000104 49 #define PCIE_EP_UEMR 0x00000108 50 #define PCIE_EP_UESEVR 0x0000010c 51 #define PCIE_EP_CESR 0x00000110 52 #define PCIE_EP_CEMR 0x00000114 53 #define PCIE_EP_ACCR 0x00000118 54 #define PCIE_EP_HLR 0x0000011c 55 #define PCIE_EP_VCECHR 0x00000140 56 #define PCIE_EP_PVCCR1 0x00000144 57 #define PCIE_EP_PVCCR2 0x00000148 58 #define PCIE_EP_PVCCSR 0x0000014c 59 #define PCIE_EP_VCRCR 0x00000150 60 #define PCIE_EP_VCRCONR 0x00000154 61 #define PCIE_EP_VCRSR 0x00000158 62 63 /* PCIe RC Mode Registers */ 64 #define PCIE_RC_DEVICEID 0x00000000 65 #define PCIE_RC_COMMAND 0x00000004 66 #define PCIE_RC_REVID 0x00000008 67 #define PCIE_RC_BIST 0x0000000c 68 #define PCIE_RC_BAR0 0x00000010 69 #define PCIE_RC_BAR1 0x00000014 70 #define PCIE_RC_BNR 0x00000018 71 #define PCIE_RC_IOBLSSR 0x0000001c 72 #define PCIE_RC_MEM_BLR 0x00000020 73 #define PCIE_RC_PREF_MEM_BLR 0x00000024 74 #define PCIE_RC_PREF_BASE_U32 0x00000028 75 #define PCIE_RC_PREF_LIM_U32 0x0000002c 76 #define PCIE_RC_IO_BASE_LIM_U16 0x00000030 77 #define PCIE_RC_CAPPR 0x00000034 78 #define PCIE_RC_EROMBAR 0x00000038 79 #define PCIE_RC_EROMMASK 0x00000038 80 #define PCIE_RC_PMCR 0x00000040 81 #define PCIE_RC_PMCSR 0x00000044 82 #define PCIE_RC_CIDR 0x00000070 83 #define PCIE_RC_DCR 0x00000074 84 #define PCIE_RC_DCONR 0x00000078 85 #define PCIE_RC_LCR 0x0000007c 86 #define PCIE_RC_LCR_MAX_LINK_SPEEDS __BITS(3, 0) 87 #define PCIE_RC_LCR_MAX_LINK_SPEEDS_GEN1 __SHIFTIN(0x1, PCIE_RC_LCR_MAX_LINK_SPEEDS) 88 #define PCIE_RC_LCR_MAX_LINK_SPEEDS_GEN2 __SHIFTIN(0x2, PCIE_RC_LCR_MAX_LINK_SPEEDS) 89 #define PCIE_RC_LCSR 0x00000080 90 #define PCIE_RC_LCSR_LINK_SPEED __BITS(19, 16) 91 #define PCIE_RC_SCR 0x00000084 92 #define PCIE_RC_SCSR 0x00000088 93 #define PCIE_RC_RCCR 0x0000008c 94 #define PCIE_RC_RSR 0x00000090 95 #define PCIE_RC_DCR2 0x00000094 96 #define PCIE_RC_DCSR2 0x00000098 97 #define PCIE_RC_LCR2 0x0000009c 98 #define PCIE_RC_LCSR2 0x000000a0 99 #define PCIE_RC_AER 0x00000100 100 #define PCIE_RC_UESR 0x00000104 101 #define PCIE_RC_UEMR 0x00000108 102 #define PCIE_RC_UESEVR 0x0000010c 103 #define PCIE_RC_CESR 0x00000110 104 #define PCIE_RC_CEMR 0x00000114 105 #define PCIE_RC_ACCR 0x00000118 106 #define PCIE_RC_HLR 0x0000011c 107 #define PCIE_RC_RECR 0x0000012c 108 #define PCIE_RC_RESR 0x00000130 109 #define PCIE_RC_ESIR 0x00000134 110 #define PCIE_RC_VCECHR 0x00000140 111 #define PCIE_RC_PVCCR1 0x00000144 112 #define PCIE_RC_PVCCR2 0x00000148 113 #define PCIE_RC_PVCCSR 0x0000014c 114 #define PCIE_RC_VCRCR 0x00000150 115 #define PCIE_RC_VCRCONR 0x00000154 116 #define PCIE_RC_VCRSR 0x00000158 117 118 /* PCIe Port Logic Registers */ 119 #define PCIE_PL_ALTRTR 0x00000700 120 #define PCIE_PL_VSDR 0x00000704 121 #define PCIE_PL_PFLR 0x00000708 122 #define PCIE_PL_PFLR_LOW_POWER_ENTRANCE_COUNT __BITS(31, 24) 123 #define PCIE_PL_PFLR_LINK_STATE __BITS(21, 16) 124 #define PCIE_PL_PFLR_FORCE_LINK __BIT(15) 125 #define PCIE_PL_PFLR_LINK_NUMBER __BITS(7, 0) 126 #define PCIE_PL_AFLACR 0x0000070c 127 #define PCIE_PL_PLCR 0x00000710 128 #define PCIE_PL_PLCR_LINK_MODE_ENABLE __BITS(21, 16) 129 #define PCIE_PL_LSR 0x00000714 130 #define PCIE_PL_SNR 0x00000718 131 #define PCIE_PL_STRFM1 0x0000071c 132 #define PCIE_PL_STRFM2 0x00000720 133 #define PCIE_PL_AMODNPSR 0x00000724 134 #define PCIE_PL_DEBUG0 0x00000728 135 #define PCIE_PL_DEBUG0_XMLH_LTSSM_STATE __BITS(0, 5) 136 #define PCIE_PL_DEBUG1 0x0000072c 137 #define PCIE_PL_DEBUG1_XMLH_LINK_UP __BIT(4) 138 #define PCIE_PL_DEBUG1_XMLH_LINK_IN_TRAINING __BIT(29) 139 #define PCIE_PL_TPFCSR 0x00000730 140 #define PCIE_PL_TNFCSR 0x00000734 141 #define PCIE_PL_TCFCSR 0x00000738 142 #define PCIE_PL_QSR 0x0000073c 143 #define PCIE_PL_VCTAR1 0x00000740 144 #define PCIE_PL_VCTAR2 0x00000744 145 #define PCIE_PL_VC0PRQC 0x00000748 146 #define PCIE_PL_VC0NRQC 0x0000074c 147 #define PCIE_PL_VC0CRQC 0x00000750 148 #define PCIE_PL_VCNPRQC 0x00000754 149 #define PCIE_PL_VCNNRQC 0x00000758 150 #define PCIE_PL_VCNCRQC 0x0000075c 151 #define PCIE_PL_VC0PBD 0x000007a8 152 #define PCIE_PL_VC0NPBD 0x000007ac 153 #define PCIE_PL_VC0CBD 0x000007b0 154 #define PCIE_PL_VC1PBD 0x000007b4 155 #define PCIE_PL_VC1NPBD 0x000007b8 156 #define PCIE_PL_VC1CBD 0x000007bc 157 #define PCIE_PL_G2CR 0x0000080c 158 #define PCIE_PL_G2CR_DIRECTED_SPEED_CHANGE __BIT(17) 159 #define PCIE_PL_G2CR_PREDETERMINED_NUMBER_OF_LANES __BITS(16, 8) 160 #define PCIE_PL_PHY_STATUS 0x00000810 161 #define PCIE_PL_PHY_STATUS_ACK __BIT(16) 162 #define PCIE_PL_PHY_STATUS_DATA __BITS(0, 15) 163 #define PCIE_PL_PHY_CTRL 0x00000814 164 #define PCIE_PL_PHY_CTRL_RD __BIT(19) 165 #define PCIE_PL_PHY_CTRL_WR __BIT(18) 166 #define PCIE_PL_PHY_CTRL_CAP_DAT __BIT(17) 167 #define PCIE_PL_PHY_CTRL_CAP_ADR __BIT(16) 168 #define PCIE_PL_PHY_CTRL_DATA __BITS(0, 15) 169 #define PCIE_PL_MRCCR0 0x00000818 170 #define PCIE_PL_MRCCR1 0x0000081c 171 #define PCIE_PL_MSICA 0x00000820 172 #define PCIE_PL_MSICUA 0x00000824 173 #define PCIE_PL_MSICIN_ENB 0x00000828 174 #define PCIE_PL_MSICIN_MASK 0x0000082c 175 #define PCIE_PL_MSICIN_STATUS 0x00000830 176 #define PCIE_PL_MSICGPIO 0x00000888 177 178 // ATU_R_BaseAddress 0x900 179 #define PCIE_PL_IATUVR 0x00000900 180 // ATU_VIEWPORT_R (ATU_R_BaseAddress + 0x0) 181 182 #define PCIE_PL_IATURC1 0x00000904 183 // ATU_REGION_CTRL1_R (ATU_R_BaseAddress + 0x4) 184 #define PCIE_PL_IATURC1_FUNC __BITS(22, 20) 185 #define PCIE_PL_IATURC1_AT __BITS(17, 16) 186 #define PCIE_PL_IATURC1_ATTR __BITS(10, 9) 187 #define PCIE_PL_IATURC1_TD __BIT(8) 188 #define PCIE_PL_IATURC1_TC __BITS(7, 5) 189 #define PCIE_PL_IATURC1_TYPE __BITS(4, 0) 190 #define PCIE_PL_IATURC1_TYPE_IO __SHIFTIN(0, PCIE_PL_IATURC1_TYPE) 191 #define PCIE_PL_IATURC1_TYPE_MEM __SHIFTIN(2, PCIE_PL_IATURC1_TYPE) 192 #define PCIE_PL_IATURC1_TYPE_CFG0 __SHIFTIN(4, PCIE_PL_IATURC1_TYPE) 193 #define PCIE_PL_IATURC1_TYPE_CFG1 __SHIFTIN(5, PCIE_PL_IATURC1_TYPE) 194 195 #define PCIE_PL_IATURC2 0x00000908 196 // ATU_REGION_CTRL2_R (ATU_R_BaseAddress + 0x8) 197 #define PCIE_PL_IATURC2_REGION_ENABLE __BIT(31) 198 199 #define PCIE_PL_IATURLBA 0x0000090c 200 // ATU_REGION_LOWBASE_R (ATU_R_BaseAddress + 0xC) 201 202 #define PCIE_PL_IATURUBA 0x00000910 203 // ATU_REGION_UPBASE_R (ATU_R_BaseAddress + 0x10) 204 205 #define PCIE_PL_IATURLA 0x00000914 206 // ATU_REGION_LIMIT_ADDR_R (ATU_R_BaseAddress + 0x14) 207 208 #define PCIE_PL_IATURLTA 0x00000918 209 // ATU_REGION_LOW_TRGT_ADDR_R (ATU_R_BaseAddress + 0x18) 210 211 #define PCIE_PL_IATURUTA 0x0000091c 212 // ATU_REGION_UP_TRGT_ADDR_R (ATU_R_BaseAddress + 0x1C) 213 214 /* PCIe PHY registers */ 215 #define PCIE_PHY_IDCODE_LO 0x0000 216 #define PCIE_PHY_IDCODE_HI 0x0001 217 #define PCIE_PHY_DEBUG 0x0002 218 #define PCIE_PHY_RTUNE_DEBUG 0x0003 219 #define PCIE_PHY_RTUNE_STAT 0x0004 220 #define PCIE_PHY_SS_PHASE 0x0005 221 #define PCIE_PHY_SS_FREQ 0x0006 222 #define PCIE_PHY_ATEOVRD 0x0010 223 #define ATEOVRD_EN __BIT(2) 224 #define REF_USB2_EN __BIT(1) 225 #define REF_CLKDIV2 __BIT(0) 226 #define PCIE_PHY_MPLL_OVRD_IN_LO 0x0011 227 #define PCIE_PHY_MPLL_OVRD_IN_HI 0x0011 228 #define RES_ACK_IN_OVRD __BIT(15) 229 #define RES_ACK_IN __BIT(14) 230 #define RES_REQ_IN_OVRD __BIT(13) 231 #define RES_REQ_IN __BIT(12) 232 #define RTUNE_REQ_OVRD __BIT(11) 233 #define RTUNE_REQ __BIT(10) 234 #define MPLL_MULTIPLIER_OVRD __BIT(9) 235 #define MPLL_MULTIPLIER __BITS(8, 2) 236 #define MPLL_EN_OVRD __BIT(1) 237 #define MPLL_EN __BIT(0) 238 #define PCIE_PHY_SSC_OVRD_IN 0x0013 239 #define PCIE_PHY_BS_OVRD_IN 0x0014 240 #define PCIE_PHY_LEVEL_OVRD_IN 0x0015 241 #define PCIE_PHY_SUP_OVRD_OUT 0x0016 242 #define PCIE_PHY_MPLL_ASIC_IN 0x0017 243 #define PCIE_PHY_BS_ASIC_IN 0x0018 244 #define PCIE_PHY_LEVEL_ASIC_IN 0x0019 245 #define PCIE_PHY_SSC_ASIC_IN 0x001a 246 #define PCIE_PHY_SUP_ASIC_OUT 0x001b 247 #define PCIE_PHY_ATEOVRD_STATUS 0x001c 248 #define PCIE_PHY_SCOPE_ENABLES 0x0020 249 #define PCIE_PHY_SCOPE_SAMPLES 0x0021 250 #define PCIE_PHY_SCOPE_COUNT 0x0022 251 #define PCIE_PHY_SCOPE_CTL 0x0023 252 #define PCIE_PHY_SCOPE_MASK_000 0x0024 253 #define PCIE_PHY_SCOPE_MASK_001 0x0025 254 #define PCIE_PHY_SCOPE_MASK_010 0x0026 255 #define PCIE_PHY_SCOPE_MASK_011 0x0027 256 #define PCIE_PHY_SCOPE_MASK_100 0x0028 257 #define PCIE_PHY_SCOPE_MASK_101 0x0029 258 #define PCIE_PHY_SCOPE_MASK_110 0x002a 259 #define PCIE_PHY_SCOPE_MASK_111 0x002b 260 #define PCIE_PHY_MPLL_LOOP_CTL 0x0030 261 #define PCIE_PHY_MPLL_ATB_MEAS2 0x0032 262 #define PCIE_PHY_MPLL_OVR 0x0033 263 #define PCIE_PHY_RTUNE_RTUNE_CTRL 0x0034 264 #define PCIE_PHY_TX_OVRD_IN_LO 0x1000 265 #define PCIE_PHY_TX_OVRD_IN_HI 0x1001 266 #define PCIE_PHY_TX_OVRD_DRV_LO 0x1003 267 #define PCIE_PHY_TX_OVRD_OUT 0x1004 268 #define PCIE_PHY_RX_OVRD_IN_LO 0x1005 269 #define PCIE_PHY_RX_OVRD_IN_LO_RX_PLL_EN_OVRD __BIT(3) 270 #define PCIE_PHY_RX_OVRD_IN_LO_RX_DATA_EN_OVRD __BIT(5) 271 #define PCIE_PHY_RX_OVRD_IN_HI 0x1006 272 #define PCIE_PHY_RX_OVRD_OUT 0x1007 273 #define PCIE_PHY_TX_ASIC_IN 0x1008 274 #define PCIE_PHY_TX_ASIC_DRV_LO 0x1009 275 #define PCIE_PHY_TX_ASIC_DRV_HI 0x100a 276 #define PCIE_PHY_TX_ASIC_OUT 0x100b 277 #define PCIE_PHY_RX_ASIC_IN 0x100c 278 #define PCIE_PHY_RX_ASIC_OUT 0x100d 279 #define PCIE_PHY_RX_ASIC_OUT_LOS __BIT(2) 280 #define PCIE_PHY_RX_ASIC_OUT_PLL_STATE __BIT(1) 281 #define PCIE_PHY_RX_ASIC_OUT_VALID __BIT(0) 282 #define PCIE_PHY_TX_VMD_FSM_TX_VCM_0 0x1011 283 #define PCIE_PHY_TX_VMD_FSM_TX_VCM_1 0x1012 284 #define PCIE_PHY_TX_VMD_FSM_TX_VCM_DEBUG_IN 0x1013 285 #define PCIE_PHY_TX_VMD_FSM_TX_VCM_DEBUG_OUT 0x1014 286 #define PCIE_PHY_TX_LBERT_CTL 0x1015 287 #define PCIE_PHY_RX_LBERT_CTL 0x1016 288 #define PCIE_PHY_RX_LBERT_ERR 0x1017 289 #define PCIE_PHY_RX_SCOPE_CTL 0x1018 290 #define PCIE_PHY_RX_SCOPE_PHASE 0x1019 291 #define PCIE_PHY_RX_DPLL_FREQ 0x101a 292 #define PCIE_PHY_RX_CDR_CTL 0x101b 293 #define PCIE_PHY_RX_CDR_CDR_FSM_DEBUG 0x101c 294 #define PCIE_PHY_RX_CDR_LOCK_VEC_OVRD 0x101d 295 #define PCIE_PHY_RX_CDR_LOCK_VEC 0x101e 296 #define PCIE_PHY_RX_CDR_ADAP_FSM 0x101f 297 #define PCIE_PHY_RX_ATB0 0x1020 298 #define PCIE_PHY_RX_ATB1 0x1021 299 #define PCIE_PHY_RX_ENPWR0 0x1022 300 #define PCIE_PHY_RX_PMIX_PHASE 0x1023 301 #define PCIE_PHY_RX_ENPWR1 0x1024 302 #define PCIE_PHY_RX_ENPWR2 0x1025 303 #define PCIE_PHY_RX_SCOPE 0x1026 304 #define PCIE_PHY_TX_TXDRV_CNTRL 0x102b 305 #define PCIE_PHY_TX_POWER_CTL 0x102c 306 #define PCIE_PHY_TX_ALT_BLOCK 0x102d 307 #define PCIE_PHY_TX_ALT_AND_LOOPBACK 0x102e 308 #define PCIE_PHY_TX_TX_ATB_REG 0x102f 309 310 #endif /* _ARM_IMX_IMX6_PCIEREG_H_ */ 311