imxpciereg.h revision 1.2
1/* $NetBSD: imxpciereg.h,v 1.2 2019/09/02 01:28:41 hkenken Exp $ */ 2 3/* 4 * Copyright (c) 2015 Ryo Shimizu <ryo@nerv.org> 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(3) 224#define REF_USB2_EN __BIT(2) 225#define REF_CLKDIV2 __BIT(1) 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