1 1.3 rmind /* $NetBSD: ixp12x0_pcireg.h,v 1.3 2009/10/21 14:15:50 rmind Exp $ */ 2 1.1 ichiro 3 1.1 ichiro /* 4 1.2 ichiro * Copyright (c) 2002, 2003 5 1.1 ichiro * Ichiro FUKUHARA <ichiro (at) ichiro.org>. All rights reserved. 6 1.1 ichiro * 7 1.1 ichiro * Redistribution and use in source and binary forms, with or without 8 1.1 ichiro * modification, are permitted provided that the following conditions 9 1.1 ichiro * are met: 10 1.1 ichiro * 1. Redistributions of source code must retain the above copyright 11 1.1 ichiro * notice, this list of conditions and the following disclaimer. 12 1.1 ichiro * 2. Redistributions in binary form must reproduce the above copyright 13 1.1 ichiro * notice, this list of conditions and the following disclaimer in the 14 1.1 ichiro * documentation and/or other materials provided with the distribution. 15 1.1 ichiro * 16 1.1 ichiro * THIS SOFTWARE IS PROVIDED BY ICHIRO FUKUHARA AND CONTRIBUTORS ``AS IS'' 17 1.1 ichiro * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 1.1 ichiro * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19 1.1 ichiro * ARE DISCLAIMED. IN NO EVENT SHALL ICHIRO FUKUHARA OR THE VOICES IN HIS 20 1.1 ichiro * HEAD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, 21 1.1 ichiro * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22 1.1 ichiro * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 23 1.1 ichiro * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 24 1.1 ichiro * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 25 1.1 ichiro * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 26 1.1 ichiro * THE POSSIBILITY OF SUCH DAMAGE. 27 1.1 ichiro */ 28 1.1 ichiro 29 1.1 ichiro #ifndef _IXP12X0_PCIREG_H_ 30 1.1 ichiro #define _IXP12X0_PCIREG_H_ 31 1.1 ichiro 32 1.1 ichiro #include <arm/ixp12x0/ixp12x0reg.h> 33 1.1 ichiro 34 1.1 ichiro /* PCI Configuration Space Registers */ 35 1.1 ichiro 36 1.1 ichiro /* base address */ 37 1.1 ichiro #define IXP_PCI_MEM_BAR 0x10 38 1.1 ichiro # define IXP1200_PCI_MEM_BAR 0x40000000UL 39 1.2 ichiro # define IXP_PCI_MEM_BAR_MASK 0xffffff80 40 1.2 ichiro 41 1.1 ichiro #define IXP_PCI_IO_BAR 0x14 42 1.1 ichiro # define IXP1200_PCI_IO_BAR 0x0000f000UL 43 1.2 ichiro # define IXP_PCI_IO_BAR_MASK 0xffffff80 44 1.2 ichiro 45 1.1 ichiro #define IXP_PCI_DRAM_BAR 0x18 46 1.1 ichiro # define IXP1200_PCI_DRAM_BAR 0x00000000UL 47 1.2 ichiro # define IXP_PCI_DRAM_BAR_MASK 0xfffc0000 48 1.1 ichiro 49 1.1 ichiro #define PCI_CAP_PTR 0x34 50 1.1 ichiro #define PCI_INT_LINE 0x3C 51 1.1 ichiro #define MAILBOX_0 0x50 52 1.1 ichiro #define MAILBOX_1 0x54 53 1.1 ichiro #define MAILBOX_2 0x58 54 1.1 ichiro #define MAILBOX_3 0x5C 55 1.1 ichiro #define DOORBELL 0x60 56 1.1 ichiro #define DOORBELL_SETUP 0x64 57 1.1 ichiro #define ROM_BYTE_WRITE 0x68 58 1.1 ichiro #define CAP_PTR_EXT 0x70 59 1.1 ichiro #define PWR_MGMT 0x74 60 1.1 ichiro 61 1.1 ichiro /* Reset Registers*/ 62 1.1 ichiro #define IXPPCI_IXP1200_RESET 0x7C 63 1.1 ichiro # define RESET_UE0 (1U << 0) 64 1.1 ichiro # define RESET_UE1 (1U << 1) 65 1.1 ichiro # define RESET_UE2 (1U << 2) 66 1.1 ichiro # define RESET_UE3 (1U << 3) 67 1.1 ichiro # define RESET_UE4 (1U << 4) 68 1.1 ichiro # define RESET_UE5 (1U << 5) 69 1.1 ichiro # define RESET_PCIRST (1U << 14) 70 1.1 ichiro # define RESET_EXRST (1U << 15) 71 1.1 ichiro # define RESET_FBI (1U << 16) 72 1.1 ichiro # define RESET_CMDARB (1U << 17) 73 1.1 ichiro # define RESET_SDRAM (1U << 18) 74 1.1 ichiro # define RESET_SRAM (1U << 29) 75 1.1 ichiro # define RESET_PCI (1U << 30) 76 1.1 ichiro # define RESET_SACORE (1U << 31) 77 1.1 ichiro 78 1.1 ichiro # define RESET_FULL (RESET_UE0 | RESET_UE1 | RESET_UE2 | \ 79 1.1 ichiro RESET_UE3 | RESET_UE4 | RESET_UE5 | \ 80 1.1 ichiro RESET_EXRST | RESET_FBI | \ 81 1.1 ichiro RESET_CMDARB | RESET_SDRAM | RESET_SRAM | \ 82 1.1 ichiro RESET_PCI | RESET_SACORE) 83 1.1 ichiro 84 1.1 ichiro #define CHAN_1_BYTE_COUNT 0x80 85 1.1 ichiro #define CHAN_1_PCI_ADDR 0x84 86 1.1 ichiro #define CHAN_1_DRAM_ADDR 0x88 87 1.1 ichiro #define CHAN_1_DESC_PTR 0x8C 88 1.1 ichiro #define CHAN_1_CONTROL 0x90 89 1.1 ichiro #define DMA_INF_MODE 0x9C 90 1.1 ichiro #define CHAN_2_BYTE_COUNT 0xA0 91 1.1 ichiro #define CHAN_2_PCI_ADDR 0xA4 92 1.1 ichiro #define CHAN_2_DRAM_ADDR 0xA8 93 1.1 ichiro #define CHAN_2_DESC_PTR 0xAC 94 1.1 ichiro #define CHAN_2_CONTROL 0xB0 95 1.1 ichiro 96 1.1 ichiro #define CSR_BASE_ADDR_MASK 0x0F8 97 1.1 ichiro #define CSR_BASE_ADDR_OFF 0xFC 98 1.1 ichiro # define CSR_BASE_ADDR_MASK_1M 0x000c0000UL 99 1.1 ichiro 100 1.1 ichiro #define DRAM_BASE_ADDR_MASK 0x100 101 1.1 ichiro #define DRAM_BASE_ADDR_OFF 0x104 102 1.1 ichiro # define DRAM_BASE_ADDR_MASK_256MB 0x0ffc0000UL 103 1.1 ichiro 104 1.1 ichiro #define ROM_BASE_ADDR_MASK 0x108 105 1.1 ichiro #define DRAM_TIMING 0x10C 106 1.1 ichiro #define DRAM_ADDR_SIZE_0 0x110 107 1.1 ichiro #define DRAM_ADDR_SIZE_1 0x114 108 1.1 ichiro #define DRAM_ADDR_SIZE_2 0x118 109 1.1 ichiro #define DRAM_ADDR_SIZE_3 0x11C 110 1.1 ichiro #define I2O_IFH 0x120 111 1.1 ichiro #define I2O_IPT 0x124 112 1.1 ichiro #define I2O_OPH 0x128 113 1.1 ichiro #define I2O_OFT 0x12C 114 1.1 ichiro #define I2O_IFC 0x130 115 1.1 ichiro #define I2O_OPC 0x134 116 1.1 ichiro #define I2O_IPC 0x138 117 1.1 ichiro #define SA_CONTROL 0x13C 118 1.1 ichiro # define SA_CONTROL_PNR (1 << 9) 119 1.1 ichiro # define SA_CONTROL_COMPLETE (1 << 0) 120 1.1 ichiro #define PCI_ADDR_EXT 0x140 121 1.2 ichiro # define PCI_ADDR_EXT_PIOADD(x) ((x) & 0xffff0000) 122 1.2 ichiro # define PCI_ADDR_EXT_PMSA(x) (((x) & 0xe0000000) >> 16) 123 1.1 ichiro #define PREFETCH_RANGE 0x144 124 1.1 ichiro #define PCI_ABITOR_STATUS 0x148 125 1.1 ichiro #define DBELL_PCI_MASK 0x150 126 1.1 ichiro #define DBELL_SA_MASK 0x154 127 1.1 ichiro 128 1.1 ichiro /* 129 1.1 ichiro * Interrupt index assignment 130 1.1 ichiro * 131 1.1 ichiro * FIQ/IRQ bitmap in "PCI Registers Accessible Through StrongARM Core" 132 1.1 ichiro * 133 1.1 ichiro * 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 134 1.1 ichiro * bit 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 135 1.1 ichiro * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-------------+-+-+-+-+---+-+-+ 136 1.1 ichiro * |D|R|R|D|D|P|I|S|R|S|D|D| |P|D|D|D| |T|T|T|T| |S| | 137 1.1 ichiro * |P|T|M|P|T|W|I|D|S|B|M|M|R|I|M|M|F| |4|3|2|1| |I| | 138 1.1 ichiro * |E|A|A|E|E|R|P|P|E| |A|A|E|L|A|A|H| RES | | | | |RES| | | 139 1.1 ichiro * | | | |D| |M| |A|R| |2|1|S| |2|1| | | | | | | | | | 140 1.1 ichiro * | | | | | | | |R|R| |N|N| | | | | | | | | | | | | | 141 1.1 ichiro * | | | | | | | | | | |B|B| | | | | | | | | | | | | | 142 1.1 ichiro * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-------------+-+-+-+-+---+-+-+ 143 1.1 ichiro * 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 144 1.1 ichiro * index 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 7 6 5 4 1 0 145 1.1 ichiro * 146 1.1 ichiro */ 147 1.1 ichiro 148 1.1 ichiro /* PCI_IRQ_STATUS */ 149 1.1 ichiro #define IXPPCI_IRQ_STATUS (IXP12X0_PCI_VBASE + 0x180) 150 1.1 ichiro #define IXPPCI_FIQ_STATUS (IXP12X0_PCI_VBASE + 0x280) 151 1.1 ichiro #define IXPPCI_IRQ_RAW_STATUS (IXP12X0_PCI_VBASE + 0x184) 152 1.1 ichiro #define IXPPCI_FIQ_RAW_STATUS (IXP12X0_PCI_VBASE + 0x284) 153 1.1 ichiro #define IXPPCI_IRQ_ENABLE (IXP12X0_PCI_VBASE + 0x188) 154 1.1 ichiro #define IXPPCI_FIQ_ENABLE (IXP12X0_PCI_VBASE + 0x288) 155 1.1 ichiro #define IXPPCI_IRQ_ENABLE_SET (IXP12X0_PCI_VBASE + 0x188) 156 1.1 ichiro #define IXPPCI_FIQ_ENABLE_SET (IXP12X0_PCI_VBASE + 0x288) 157 1.1 ichiro #define IXPPCI_IRQ_ENABLE_CLEAR (IXP12X0_PCI_VBASE + 0x18c) 158 1.1 ichiro #define IXPPCI_FIQ_ENABLE_CLEAR (IXP12X0_PCI_VBASE + 0x28c) 159 1.1 ichiro #define IXPPCI_IRQ_SOFT (IXP12X0_PCI_VBASE + 0x190) 160 1.1 ichiro #define IXPPCI_FIQ_SOFT (IXP12X0_PCI_VBASE + 0x290) 161 1.1 ichiro #define IXPPCI_IRQST_TIMER (IXP12X0_PCI_VBASE + 0x010) 162 1.1 ichiro 163 1.1 ichiro #define IXPPCI_INTR_DPE 63 164 1.1 ichiro #define IXPPCI_INTR_RTA 62 165 1.1 ichiro #define IXPPCI_INTR_RMA 61 166 1.1 ichiro #define IXPPCI_INTR_DPED 60 167 1.1 ichiro #define IXPPCI_INTR_DTE 59 168 1.1 ichiro #define IXPPCI_INTR_PWRM 58 169 1.1 ichiro #define IXPPCI_INTR_IIP 57 170 1.1 ichiro #define IXPPCI_INTR_SDPAR 56 171 1.1 ichiro #define IXPPCI_INTR_RSERR 55 172 1.1 ichiro #define IXPPCI_INTR_SB 54 173 1.1 ichiro #define IXPPCI_INTR_DMA2NB 53 174 1.1 ichiro #define IXPPCI_INTR_DMA1NB 52 175 1.1 ichiro #define IXPPCI_INTR_bit19 51 176 1.1 ichiro #define IXPPCI_INTR_PIL 50 177 1.1 ichiro #define IXPPCI_INTR_DMA2 49 178 1.1 ichiro #define IXPPCI_INTR_DMA1 48 179 1.1 ichiro #define IXPPCI_INTR_DFH 47 180 1.1 ichiro #define IXPPCI_INTR_bit14 46 181 1.1 ichiro #define IXPPCI_INTR_bit13 45 182 1.1 ichiro #define IXPPCI_INTR_bit12 44 183 1.1 ichiro #define IXPPCI_INTR_bit11 43 184 1.1 ichiro #define IXPPCI_INTR_bit10 42 185 1.1 ichiro #define IXPPCI_INTR_bit9 41 186 1.1 ichiro #define IXPPCI_INTR_bit8 40 187 1.1 ichiro #define IXPPCI_INTR_T4 39 188 1.1 ichiro #define IXPPCI_INTR_T3 38 189 1.1 ichiro #define IXPPCI_INTR_T2 37 190 1.1 ichiro #define IXPPCI_INTR_T1 36 191 1.1 ichiro #define IXPPCI_INTR_bit3 35 192 1.1 ichiro #define IXPPCI_INTR_bit2 34 193 1.1 ichiro #define IXPPCI_INTR_SI 33 194 1.1 ichiro #define IXPPCI_INTR_bit0 32 195 1.1 ichiro 196 1.1 ichiro #endif /* _IXP12X0_PCIREG_H_ */ 197