1 1.5 martin /* $NetBSD: cpc700reg.h,v 1.5 2008/04/28 20:23:49 martin Exp $ */ 2 1.1 augustss 3 1.1 augustss /* 4 1.1 augustss * Copyright (c) 2002 The NetBSD Foundation, Inc. 5 1.1 augustss * All rights reserved. 6 1.1 augustss * 7 1.1 augustss * This code is derived from software contributed to The NetBSD Foundation 8 1.1 augustss * by Lennart Augustsson (lennart (at) augustsson.net) at Sandburst Corp. 9 1.1 augustss * 10 1.1 augustss * Redistribution and use in source and binary forms, with or without 11 1.1 augustss * modification, are permitted provided that the following conditions 12 1.1 augustss * are met: 13 1.1 augustss * 1. Redistributions of source code must retain the above copyright 14 1.1 augustss * notice, this list of conditions and the following disclaimer. 15 1.1 augustss * 2. Redistributions in binary form must reproduce the above copyright 16 1.1 augustss * notice, this list of conditions and the following disclaimer in the 17 1.1 augustss * documentation and/or other materials provided with the distribution. 18 1.1 augustss * 19 1.1 augustss * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 20 1.1 augustss * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 21 1.1 augustss * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 22 1.1 augustss * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 23 1.1 augustss * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 24 1.1 augustss * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 25 1.1 augustss * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 26 1.1 augustss * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 27 1.1 augustss * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28 1.1 augustss * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29 1.1 augustss * POSSIBILITY OF SUCH DAMAGE. 30 1.1 augustss */ 31 1.1 augustss 32 1.1 augustss /* PCI memory space */ 33 1.1 augustss #define CPC_PCI_MEM_BASE 0x80000000 34 1.1 augustss #define CPC_PCI_MEM_END 0xf7ffffff 35 1.1 augustss 36 1.1 augustss /* PCI IO space */ 37 1.1 augustss #define CPC_PCI_IO_BASE 0xf8000000 38 1.1 augustss #define CPC_PCI_IO_START 0xf8800000 /* for allocation */ 39 1.1 augustss #define CPC_PCI_IO_END 0xfbffffff 40 1.1 augustss 41 1.1 augustss /* PCI config space */ 42 1.1 augustss #define CPC_PCICFGADR 0xfec00000 43 1.1 augustss #define CPC_PCI_CONFIG_ENABLE 0x80000000 44 1.1 augustss #define CPC_PCICFGDATA 0xfec00004 45 1.1 augustss 46 1.1 augustss /* Config space regs */ 47 1.1 augustss #define CPC_PCI_BRDGERR 0x48 48 1.1 augustss #define CPC_PCI_CLEARERR 0x0000ff00 49 1.3 augustss 50 1.3 augustss #define CPC_BRIDGE_OPTIONS2 0x60 51 1.3 augustss #define CPC_BRIDGE_O2_ILAT_MASK 0x00f8 52 1.3 augustss #define CPC_BRIDGE_O2_ILAT_SHIFT 3 53 1.3 augustss #define CPC_BRIDGE_O2_ILAT_PRIM_ASYNC 18 54 1.3 augustss #define CPC_BRIDGE_O2_SLAT_MASK 0x0f00 55 1.3 augustss #define CPC_BRIDGE_O2_SLAT_SHIFT 8 56 1.3 augustss #define CPC_BRIDGE_O2_2LAT_PRIM_ASYNC 2 57 1.1 augustss 58 1.1 augustss /* PCI interrupt acknowledge & special cycle */ 59 1.1 augustss #define CPC_INTR_ACK 0xfed00000 60 1.1 augustss 61 1.1 augustss #define CPC_PMM0_LOCAL 0xff400000 62 1.1 augustss #define CPC_PMM0_MASK_ATTR 0xff400004 63 1.1 augustss #define CPC_PMM0_PCI_LOW 0xff400008 64 1.1 augustss #define CPC_PMM0_PCI_HIGH 0xff40000c 65 1.1 augustss #define CPC_PMM1_LOCAL 0xff400010 66 1.1 augustss #define CPC_PMM1_MASK_ATTR 0xff400014 67 1.1 augustss #define CPC_PMM1_PCI_LOW 0xff400018 68 1.1 augustss #define CPC_PMM1_PCI_HIGH 0xff40001c 69 1.1 augustss #define CPC_PMM2_LOCAL 0xff400020 70 1.1 augustss #define CPC_PMM2_MASK_ATTR 0xff400024 71 1.1 augustss #define CPC_PMM2_PCI_LOW 0xff400028 72 1.1 augustss #define CPC_PMM2_PCI_HIGH 0xff40002c 73 1.1 augustss #define CPC_PTM1_LOCAL 0xff400030 74 1.1 augustss #define CPC_PTM1_MEMSIZE 0xff400034 75 1.1 augustss #define CPC_PTM2_LOCAL 0xff400038 76 1.1 augustss #define CPC_PTM2_MEMSIZE 0xff40003c 77 1.1 augustss 78 1.1 augustss /* serial ports */ 79 1.1 augustss #define CPC_COM0 0xff600300 80 1.1 augustss #define CPC_COM1 0xff600400 81 1.1 augustss #define CPC_COM_SPEED(bus) ((bus) / (2 * 4)) 82 1.1 augustss 83 1.2 augustss /* processor interface registers */ 84 1.2 augustss #define CPC_PIF_CFGADR 0xff500000 85 1.2 augustss #define CPC_PIF_CFG_PRIFOPT1 0x00 86 1.2 augustss #define CPC_PIF_CFG_ERRDET1 0x04 87 1.2 augustss #define CPC_PIF_CFG_ERREN1 0x08 88 1.2 augustss #define CPC_PIF_CFG_CPUERAD 0x0c 89 1.2 augustss #define CPC_PIF_CFG_CPUERAT 0x10 90 1.2 augustss #define CPC_PIF_CFG_PLBMIFOPT 0x18 91 1.2 augustss #define CPC_PIF_CFG_PLBMTLSA1 0x20 92 1.2 augustss #define CPC_PIF_CFG_PLBMTLEA1 0x24 93 1.2 augustss #define CPC_PIF_CFG_PLBMTLSA2 0x28 94 1.2 augustss #define CPC_PIF_CFG_PLBMTLEA2 0x2c 95 1.2 augustss #define CPC_PIF_CFG_PLBMTLSA3 0x30 96 1.2 augustss #define CPC_PIF_CFG_PLBMTLEA3 0x34 97 1.2 augustss #define CPC_PIF_CFG_PLBSNSSA0 0x38 98 1.2 augustss #define CPC_PIF_CFG_PLBSNSEA0 0x3c 99 1.2 augustss #define CPC_PIF_CFG_BESR 0x40 100 1.2 augustss #define CPC_PIF_CFG_BESRSET 0x44 101 1.2 augustss #define CPC_PIF_CFG_BEAR 0x4c 102 1.2 augustss #define CPC_PIF_CFG_PLBSWRINT 0x80 103 1.2 augustss #define CPC_PIF_CFGDATA 0xff500004 104 1.2 augustss 105 1.2 augustss /* interrupt controller */ 106 1.1 augustss #define CPC_UIC_BASE 0xff500880 107 1.1 augustss #define CPC_UIC_SIZE 0x00000024 108 1.1 augustss #define CPC_UIC_SR 0x00000000 /* UIC status (read/clear) */ 109 1.1 augustss #define CPC_UIC_SRS 0x00000004 /* UIC status (set) */ 110 1.1 augustss #define CPC_UIC_ER 0x00000008 /* UIC enable */ 111 1.1 augustss #define CPC_UIC_CR 0x0000000c /* UIC critical */ 112 1.1 augustss #define CPC_UIC_PR 0x00000010 /* UIC polarity 0=low, 1=high*/ 113 1.1 augustss #define CPC_UIC_TR 0x00000014 /* UIC trigger 0=level; 1=edge */ 114 1.1 augustss #define CPC_UIC_MSR 0x00000018 /* UIC masked status */ 115 1.1 augustss #define CPC_UIC_VR 0x0000001c /* UIC vector */ 116 1.1 augustss #define CPC_UIC_VCR 0x00000020 /* UIC vector configuration */ 117 1.1 augustss #define CPC_UIC_CVR_PRI 0x00000001 /* 0=intr31 high, 1=intr0 high */ 118 1.1 augustss /* 119 1.1 augustss * if intr0 high then interrupt vector at (vcr&~3) + N*512 120 1.1 augustss * if intr31 high then interrupt vector at (vcr&~3) + (31-N)*512 121 1.1 augustss */ 122 1.1 augustss 123 1.1 augustss /* UIC interrupt bits. Note, MSB is bit 0 */ 124 1.1 augustss /* Internal */ 125 1.1 augustss #define CPC_IB_ECC 0 126 1.1 augustss #define CPC_IB_PCI_WR_RANGE 1 127 1.1 augustss #define CPC_IB_PCI_WR_CMD 2 128 1.1 augustss #define CPC_IB_UART_0 3 129 1.1 augustss #define CPC_IB_UART_1 4 130 1.1 augustss #define CPC_IB_IIC_0 5 131 1.1 augustss #define CPC_IB_IIC_1 6 132 1.1 augustss /* 6-16 GPT compare&capture */ 133 1.1 augustss /* 20-31 external */ 134 1.1 augustss #define CPC_IB_EXT0 20 135 1.1 augustss #define CPC_IB_EXT1 21 136 1.1 augustss #define CPC_IB_EXT2 22 137 1.1 augustss #define CPC_IB_EXT3 23 138 1.1 augustss #define CPC_IB_EXT4 24 139 1.1 augustss #define CPC_IB_EXT5 25 140 1.1 augustss #define CPC_IB_EXT6 26 141 1.1 augustss #define CPC_IB_EXT7 27 142 1.1 augustss #define CPC_IB_EXT8 28 143 1.1 augustss #define CPC_IB_EXT9 29 144 1.1 augustss #define CPC_IB_EXT10 30 145 1.1 augustss #define CPC_IB_EXT11 31 146 1.1 augustss 147 1.1 augustss #define CPC_INTR_MASK(irq) (0x80000000 >> (irq)) 148 1.1 augustss 149 1.1 augustss 150 1.1 augustss /* IIC */ 151 1.1 augustss #define CPC_IIC0 0xff620000 152 1.1 augustss #define CPC_IIC1 0xff630000 153 1.1 augustss #define CPC_IIC_SIZE 0x00000014 154 1.1 augustss /* offsets from base */ 155 1.1 augustss #define CPC_IIC_MDBUF 0x00000000 156 1.1 augustss #define CPC_IIC_SDBUF 0x00000002 157 1.1 augustss #define CPC_IIC_LMADR 0x00000004 158 1.1 augustss #define CPC_IIC_HNADR 0x00000005 159 1.1 augustss #define CPC_IIC_CNTL 0x00000006 160 1.1 augustss #define CPC_IIC_MDCNTL 0x00000007 161 1.1 augustss #define CPC_IIC_STS 0x00000008 162 1.1 augustss #define CPC_IIC_EXTSTS 0x00000009 163 1.1 augustss #define CPC_IIC_LSADR 0x0000000a 164 1.1 augustss #define CPC_IIC_HSADR 0x0000000b 165 1.1 augustss #define CPC_IIC_CLKDIV 0x0000000c 166 1.1 augustss #define CPC_IIC_INTRMSK 0x0000000d 167 1.1 augustss #define CPC_IIC_FRCNT 0x0000000e 168 1.1 augustss #define CPC_IIC_TCNTLSS 0x0000000f 169 1.1 augustss #define CPC_IIC_DIRECTCNTL 0x00000010 170 1.1 augustss 171 1.1 augustss /* timer */ 172 1.1 augustss #define CPC_TIMER 0xff650000 173 1.1 augustss #define CPC_GPTTBC 0x00000000 174