1*a47a12beSStefan Roese #ifndef _PPC_KERNEL_MPC8349_PCI_H 2*a47a12beSStefan Roese #define _PPC_KERNEL_MPC8349_PCI_H 3*a47a12beSStefan Roese 4*a47a12beSStefan Roese 5*a47a12beSStefan Roese #define M8265_PCIBR0 0x101ac 6*a47a12beSStefan Roese #define M8265_PCIBR1 0x101b0 7*a47a12beSStefan Roese #define M8265_PCIMSK0 0x101c4 8*a47a12beSStefan Roese #define M8265_PCIMSK1 0x101c8 9*a47a12beSStefan Roese 10*a47a12beSStefan Roese /* Bit definitions for PCIBR registers */ 11*a47a12beSStefan Roese 12*a47a12beSStefan Roese #define PCIBR_ENABLE 0x00000001 13*a47a12beSStefan Roese 14*a47a12beSStefan Roese /* Bit definitions for PCIMSK registers */ 15*a47a12beSStefan Roese 16*a47a12beSStefan Roese #define PCIMSK_32KB 0xFFFF8000 /* Size of window, smallest */ 17*a47a12beSStefan Roese #define PCIMSK_64KB 0xFFFF0000 18*a47a12beSStefan Roese #define PCIMSK_128KB 0xFFFE0000 19*a47a12beSStefan Roese #define PCIMSK_256KB 0xFFFC0000 20*a47a12beSStefan Roese #define PCIMSK_512KB 0xFFF80000 21*a47a12beSStefan Roese #define PCIMSK_1MB 0xFFF00000 22*a47a12beSStefan Roese #define PCIMSK_2MB 0xFFE00000 23*a47a12beSStefan Roese #define PCIMSK_4MB 0xFFC00000 24*a47a12beSStefan Roese #define PCIMSK_8MB 0xFF800000 25*a47a12beSStefan Roese #define PCIMSK_16MB 0xFF000000 26*a47a12beSStefan Roese #define PCIMSK_32MB 0xFE000000 27*a47a12beSStefan Roese #define PCIMSK_64MB 0xFC000000 28*a47a12beSStefan Roese #define PCIMSK_128MB 0xF8000000 29*a47a12beSStefan Roese #define PCIMSK_256MB 0xF0000000 30*a47a12beSStefan Roese #define PCIMSK_512MB 0xE0000000 31*a47a12beSStefan Roese #define PCIMSK_1GB 0xC0000000 /* Size of window, largest */ 32*a47a12beSStefan Roese 33*a47a12beSStefan Roese 34*a47a12beSStefan Roese #define M826X_SCCR_PCI_MODE_EN 0x100 35*a47a12beSStefan Roese 36*a47a12beSStefan Roese 37*a47a12beSStefan Roese /* 38*a47a12beSStefan Roese * Outbound ATU registers (3 sets). These registers control how 60x bus 39*a47a12beSStefan Roese * (local) addresses are translated to PCI addresses when the MPC826x is 40*a47a12beSStefan Roese * a PCI bus master (initiator). 41*a47a12beSStefan Roese */ 42*a47a12beSStefan Roese 43*a47a12beSStefan Roese #define POTAR_REG0 0x10800 /* PCI Outbound Translation Addr registers */ 44*a47a12beSStefan Roese #define POTAR_REG1 0x10818 45*a47a12beSStefan Roese #define POTAR_REG2 0x10830 46*a47a12beSStefan Roese 47*a47a12beSStefan Roese #define POBAR_REG0 0x10808 /* PCI Outbound Base Addr registers */ 48*a47a12beSStefan Roese #define POBAR_REG1 0x10820 49*a47a12beSStefan Roese #define POBAR_REG2 0x10838 50*a47a12beSStefan Roese 51*a47a12beSStefan Roese #define POCMR_REG0 0x10810 /* PCI Outbound Comparison Mask registers */ 52*a47a12beSStefan Roese #define POCMR_REG1 0x10828 53*a47a12beSStefan Roese #define POCMR_REG2 0x10840 54*a47a12beSStefan Roese 55*a47a12beSStefan Roese /* Bit definitions for POMCR registers */ 56*a47a12beSStefan Roese 57*a47a12beSStefan Roese #define POCMR_MASK_4KB 0x000FFFFF 58*a47a12beSStefan Roese #define POCMR_MASK_8KB 0x000FFFFE 59*a47a12beSStefan Roese #define POCMR_MASK_16KB 0x000FFFFC 60*a47a12beSStefan Roese #define POCMR_MASK_32KB 0x000FFFF8 61*a47a12beSStefan Roese #define POCMR_MASK_64KB 0x000FFFF0 62*a47a12beSStefan Roese #define POCMR_MASK_128KB 0x000FFFE0 63*a47a12beSStefan Roese #define POCMR_MASK_256KB 0x000FFFC0 64*a47a12beSStefan Roese #define POCMR_MASK_512KB 0x000FFF80 65*a47a12beSStefan Roese #define POCMR_MASK_1MB 0x000FFF00 66*a47a12beSStefan Roese #define POCMR_MASK_2MB 0x000FFE00 67*a47a12beSStefan Roese #define POCMR_MASK_4MB 0x000FFC00 68*a47a12beSStefan Roese #define POCMR_MASK_8MB 0x000FF800 69*a47a12beSStefan Roese #define POCMR_MASK_16MB 0x000FF000 70*a47a12beSStefan Roese #define POCMR_MASK_32MB 0x000FE000 71*a47a12beSStefan Roese #define POCMR_MASK_64MB 0x000FC000 72*a47a12beSStefan Roese #define POCMR_MASK_128MB 0x000F8000 73*a47a12beSStefan Roese #define POCMR_MASK_256MB 0x000F0000 74*a47a12beSStefan Roese #define POCMR_MASK_512MB 0x000E0000 75*a47a12beSStefan Roese #define POCMR_MASK_1GB 0x000C0000 76*a47a12beSStefan Roese 77*a47a12beSStefan Roese #define POCMR_ENABLE 0x80000000 78*a47a12beSStefan Roese #define POCMR_PCI_IO 0x40000000 79*a47a12beSStefan Roese #define POCMR_PREFETCH_EN 0x20000000 80*a47a12beSStefan Roese #define POCMR_PCI2 0x10000000 81*a47a12beSStefan Roese 82*a47a12beSStefan Roese /* Soft PCI reset */ 83*a47a12beSStefan Roese 84*a47a12beSStefan Roese #define PCI_GCR_REG 0x10880 85*a47a12beSStefan Roese 86*a47a12beSStefan Roese /* Bit definitions for PCI_GCR registers */ 87*a47a12beSStefan Roese 88*a47a12beSStefan Roese #define PCIGCR_PCI_BUS_EN 0x1 89*a47a12beSStefan Roese 90*a47a12beSStefan Roese /* 91*a47a12beSStefan Roese * Inbound ATU registers (2 sets). These registers control how PCI 92*a47a12beSStefan Roese * addresses are translated to 60x bus (local) addresses when the 93*a47a12beSStefan Roese * MPC826x is a PCI bus target. 94*a47a12beSStefan Roese */ 95*a47a12beSStefan Roese 96*a47a12beSStefan Roese #define PITAR_REG1 0x108D0 97*a47a12beSStefan Roese #define PIBAR_REG1 0x108D8 98*a47a12beSStefan Roese #define PICMR_REG1 0x108E0 99*a47a12beSStefan Roese #define PITAR_REG0 0x108E8 100*a47a12beSStefan Roese #define PIBAR_REG0 0x108F0 101*a47a12beSStefan Roese #define PICMR_REG0 0x108F8 102*a47a12beSStefan Roese 103*a47a12beSStefan Roese /* Bit definitions for PCI Inbound Comparison Mask registers */ 104*a47a12beSStefan Roese 105*a47a12beSStefan Roese #define PICMR_MASK_4KB 0x000FFFFF 106*a47a12beSStefan Roese #define PICMR_MASK_8KB 0x000FFFFE 107*a47a12beSStefan Roese #define PICMR_MASK_16KB 0x000FFFFC 108*a47a12beSStefan Roese #define PICMR_MASK_32KB 0x000FFFF8 109*a47a12beSStefan Roese #define PICMR_MASK_64KB 0x000FFFF0 110*a47a12beSStefan Roese #define PICMR_MASK_128KB 0x000FFFE0 111*a47a12beSStefan Roese #define PICMR_MASK_256KB 0x000FFFC0 112*a47a12beSStefan Roese #define PICMR_MASK_512KB 0x000FFF80 113*a47a12beSStefan Roese #define PICMR_MASK_1MB 0x000FFF00 114*a47a12beSStefan Roese #define PICMR_MASK_2MB 0x000FFE00 115*a47a12beSStefan Roese #define PICMR_MASK_4MB 0x000FFC00 116*a47a12beSStefan Roese #define PICMR_MASK_8MB 0x000FF800 117*a47a12beSStefan Roese #define PICMR_MASK_16MB 0x000FF000 118*a47a12beSStefan Roese #define PICMR_MASK_32MB 0x000FE000 119*a47a12beSStefan Roese #define PICMR_MASK_64MB 0x000FC000 120*a47a12beSStefan Roese #define PICMR_MASK_128MB 0x000F8000 121*a47a12beSStefan Roese #define PICMR_MASK_256MB 0x000F0000 122*a47a12beSStefan Roese #define PICMR_MASK_512MB 0x000E0000 123*a47a12beSStefan Roese #define PICMR_MASK_1GB 0x000C0000 124*a47a12beSStefan Roese 125*a47a12beSStefan Roese #define PICMR_ENABLE 0x80000000 126*a47a12beSStefan Roese #define PICMR_NO_SNOOP_EN 0x40000000 127*a47a12beSStefan Roese #define PICMR_PREFETCH_EN 0x20000000 128*a47a12beSStefan Roese 129*a47a12beSStefan Roese /* PCI error Registers */ 130*a47a12beSStefan Roese 131*a47a12beSStefan Roese #define PCI_ERROR_STATUS_REG 0x10884 132*a47a12beSStefan Roese #define PCI_ERROR_MASK_REG 0x10888 133*a47a12beSStefan Roese #define PCI_ERROR_CONTROL_REG 0x1088C 134*a47a12beSStefan Roese #define PCI_ERROR_ADRS_CAPTURE_REG 0x10890 135*a47a12beSStefan Roese #define PCI_ERROR_DATA_CAPTURE_REG 0x10898 136*a47a12beSStefan Roese #define PCI_ERROR_CTRL_CAPTURE_REG 0x108A0 137*a47a12beSStefan Roese 138*a47a12beSStefan Roese /* PCI error Register bit defines */ 139*a47a12beSStefan Roese 140*a47a12beSStefan Roese #define PCI_ERROR_PCI_ADDR_PAR 0x00000001 141*a47a12beSStefan Roese #define PCI_ERROR_PCI_DATA_PAR_WR 0x00000002 142*a47a12beSStefan Roese #define PCI_ERROR_PCI_DATA_PAR_RD 0x00000004 143*a47a12beSStefan Roese #define PCI_ERROR_PCI_NO_RSP 0x00000008 144*a47a12beSStefan Roese #define PCI_ERROR_PCI_TAR_ABT 0x00000010 145*a47a12beSStefan Roese #define PCI_ERROR_PCI_SERR 0x00000020 146*a47a12beSStefan Roese #define PCI_ERROR_PCI_PERR_RD 0x00000040 147*a47a12beSStefan Roese #define PCI_ERROR_PCI_PERR_WR 0x00000080 148*a47a12beSStefan Roese #define PCI_ERROR_I2O_OFQO 0x00000100 149*a47a12beSStefan Roese #define PCI_ERROR_I2O_IPQO 0x00000200 150*a47a12beSStefan Roese #define PCI_ERROR_IRA 0x00000400 151*a47a12beSStefan Roese #define PCI_ERROR_NMI 0x00000800 152*a47a12beSStefan Roese #define PCI_ERROR_I2O_DBMC 0x00001000 153*a47a12beSStefan Roese 154*a47a12beSStefan Roese /* 155*a47a12beSStefan Roese * Register pair used to generate configuration cycles on the PCI bus 156*a47a12beSStefan Roese * and access the MPC826x's own PCI configuration registers. 157*a47a12beSStefan Roese */ 158*a47a12beSStefan Roese 159*a47a12beSStefan Roese #define PCI_CFG_ADDR_REG 0x10900 160*a47a12beSStefan Roese #define PCI_CFG_DATA_REG 0x10904 161*a47a12beSStefan Roese 162*a47a12beSStefan Roese /* Bus parking decides where the bus control sits when idle */ 163*a47a12beSStefan Roese /* If modifying memory controllers for PCI park on the core */ 164*a47a12beSStefan Roese 165*a47a12beSStefan Roese #define PPC_ACR_BUS_PARK_CORE 0x6 166*a47a12beSStefan Roese #define PPC_ACR_BUS_PARK_PCI 0x3 167*a47a12beSStefan Roese 168*a47a12beSStefan Roese #endif /* _PPC_KERNEL_M8260_PCI_H */ 169