1 1.8 igy /* $NetBSD: vripreg.h,v 1.8 2003/04/01 02:33:52 igy Exp $ */ 2 1.1 takemura 3 1.1 takemura /*- 4 1.1 takemura * Copyright (c) 1999 5 1.1 takemura * Shin Takemura and PocketBSD Project. All rights reserved. 6 1.2 sato * Copyright (c) 2001 SATO Kazumi, All rights reserved. 7 1.1 takemura * 8 1.1 takemura * Redistribution and use in source and binary forms, with or without 9 1.1 takemura * modification, are permitted provided that the following conditions 10 1.1 takemura * are met: 11 1.1 takemura * 1. Redistributions of source code must retain the above copyright 12 1.1 takemura * notice, this list of conditions and the following disclaimer. 13 1.1 takemura * 2. Redistributions in binary form must reproduce the above copyright 14 1.1 takemura * notice, this list of conditions and the following disclaimer in the 15 1.1 takemura * documentation and/or other materials provided with the distribution. 16 1.1 takemura * 3. All advertising materials mentioning features or use of this software 17 1.1 takemura * must display the following acknowledgement: 18 1.1 takemura * This product includes software developed by the PocketBSD project 19 1.1 takemura * and its contributors. 20 1.1 takemura * 4. Neither the name of the project nor the names of its contributors 21 1.1 takemura * may be used to endorse or promote products derived from this software 22 1.1 takemura * without specific prior written permission. 23 1.1 takemura * 24 1.1 takemura * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 25 1.1 takemura * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 26 1.1 takemura * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 1.1 takemura * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 28 1.1 takemura * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 29 1.1 takemura * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 30 1.1 takemura * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 31 1.1 takemura * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 1.1 takemura * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 33 1.1 takemura * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34 1.1 takemura * SUCH DAMAGE. 35 1.1 takemura * 36 1.1 takemura */ 37 1.1 takemura 38 1.2 sato #define VRIP_NO_ADDR 0x00000000 39 1.2 sato /* 40 1.3 sato * VR4181 registers 41 1.3 sato */ 42 1.3 sato #define VR4181_BCU_ADDR 0x0a000000 43 1.3 sato #define VR4181_DMAAU_ADDR VRIP_NO_ADDR 44 1.3 sato #define VR4181_DCU_ADDR VRIP_NO_ADDR 45 1.3 sato #define VR4181_CMU_ADDR 0x0a000004 46 1.3 sato #define VR4181_ICU_ADDR 0x0a000080 47 1.3 sato #define VR4181_PMU_ADDR 0x0a0000a0 48 1.3 sato #define VR4181_RTC_ADDR 0x0a0000c0 49 1.3 sato #define VR4181_DSU_ADDR 0x0a0000e0 50 1.3 sato #define VR4181_GIU_ADDR VRIP_NO_ADDR /* XXX: no register */ 51 1.3 sato #define VR4181_PIU_ADDR 0x0a000122 52 1.3 sato #define VR4181_AIU_ADDR 0x0a000160 53 1.3 sato #define VR4181_KIU_ADDR 0x0a000180 54 1.3 sato #define VR4181_DSIU_ADDR 0x0a0001a0 55 1.3 sato #define VR4181_LED_ADDR 0x0a000240 56 1.6 sato #define VR4181_SIU_ADDR 0x0c000010 57 1.3 sato #define VR4181_HSP_ADDR 0x0a000020 58 1.3 sato #define VR4181_FIR_ADDR 0x0a000000 /* XXX */ 59 1.3 sato #define VR4181_MEMCON_ADDR 0x0a000300 60 1.3 sato #define VR4181_ISABRG_ADDR 0x0b0002c0 61 1.8 igy #define VR4181_ECU_ADDR 0x0b0008e0 62 1.3 sato #define VR4181_DCU81_ADDR 0x0a000020 63 1.3 sato #define VR4181_CSI81_ADDR 0x0b000900 64 1.3 sato #define VR4181_GIU81_ADDR 0x0b000300 65 1.3 sato #define VR4181_LCD_ADDR 0x0a000400 66 1.6 sato #define VR4181_SIU1_ADDR 0x0c000000 67 1.3 sato #define VR4181_SCU_ARR VRIP_NO_ADDR /* XXX: no register */ 68 1.3 sato #define VR4181_SDRAMU_ADDR VRIP_NO_ADDR /* XXX: no register */ 69 1.3 sato #define VR4181_PCI_ADDR VRIP_NO_ADDR /* XXX: no register */ 70 1.3 sato #define VR4181_PCICONF_ADDR VRIP_NO_ADDR /* XXX: no register */ 71 1.3 sato #define VR4181_CSI_ADDR VRIP_NO_ADDR /* XXX: no register */ 72 1.3 sato 73 1.3 sato /* 74 1.2 sato * VR4101-4121 registers 75 1.2 sato */ 76 1.2 sato #define VR4102_BCU_ADDR 0x0b000000 77 1.2 sato #define VR4102_DMAAU_ADDR 0x0b000020 78 1.2 sato #define VR4102_DCU_ADDR 0x0b000040 79 1.2 sato #define VR4102_CMU_ADDR 0x0b000060 80 1.2 sato #define VR4102_ICU_ADDR 0x0b000080 81 1.2 sato #define VR4102_PMU_ADDR 0x0b0000a0 82 1.2 sato #define VR4102_RTC_ADDR 0x0b0000c0 83 1.2 sato #define VR4102_DSU_ADDR 0x0b0000e0 84 1.2 sato #define VR4102_GIU_ADDR 0x0b000100 85 1.2 sato #define VR4102_PIU_ADDR 0x0b000120 86 1.3 sato #define VR4102_AIU_ADDR 0x0b000160 87 1.2 sato #define VR4102_KIU_ADDR 0x0b000180 88 1.2 sato #define VR4102_DSIU_ADDR 0x0b0001a0 89 1.2 sato #define VR4102_LED_ADDR 0x0b000240 90 1.2 sato #define VR4102_SIU_ADDR 0x0c000000 91 1.2 sato #define VR4102_HSP_ADDR 0x0c000020 92 1.2 sato #define VR4102_FIR_ADDR 0x0b000000 /* XXX */ 93 1.3 sato #define VR4102_MEMCON_ADDR VRIP_NO_ADDR /* XXX: no register */ 94 1.3 sato #define VR4102_ISABRG_ADDR VRIP_NO_ADDR /* XXX: no register */ 95 1.3 sato #define VR4102_ECU_ADDR VRIP_NO_ADDR /* XXX: no register */ 96 1.3 sato #define VR4102_DCU81_ADDR VRIP_NO_ADDR /* XXX: no register */ 97 1.3 sato #define VR4102_CSI81_ADDR VRIP_NO_ADDR /* XXX: no register */ 98 1.3 sato #define VR4102_GIU81_ADDR VRIP_NO_ADDR /* XXX: no register */ 99 1.3 sato #define VR4102_SIU1_ADDR VRIP_NO_ADDR /* XXX: no register */ 100 1.2 sato #define VR4102_SCU_ARR VRIP_NO_ADDR /* XXX: no register */ 101 1.2 sato #define VR4102_SDRAMU_ADDR VRIP_NO_ADDR /* XXX: no register */ 102 1.2 sato #define VR4102_PCI_ADDR VRIP_NO_ADDR /* XXX: no register */ 103 1.2 sato #define VR4102_PCICONF_ADDR VRIP_NO_ADDR /* XXX: no register */ 104 1.2 sato #define VR4102_CSI_ADDR VRIP_NO_ADDR /* XXX: no register */ 105 1.2 sato /* 106 1.2 sato * VR4122 registers 107 1.2 sato */ 108 1.2 sato #define VR4122_BCU_ADDR 0x0f000000 109 1.2 sato #define VR4122_DMAAU_ADDR 0x0f000020 110 1.2 sato #define VR4122_DCU_ADDR 0x0f000040 111 1.2 sato #define VR4122_CMU_ADDR 0x0f000060 112 1.2 sato #define VR4122_ICU_ADDR 0x0f000080 113 1.4 sato #define VR4122_PMU_ADDR 0x0f0000c0 114 1.4 sato #define VR4122_RTC_ADDR 0x0f000100 115 1.2 sato #define VR4122_DSU_ADDR VRIP_NO_ADDR /* XXX: no register */ 116 1.2 sato #define VR4122_GIU_ADDR 0x0f000140 117 1.2 sato #define VR4122_PIU_ADDR VRIP_NO_ADDR /* XXX: no register */ 118 1.2 sato #define VR4122_AIU_ADDR VRIP_NO_ADDR /* XXX: no register */ 119 1.2 sato #define VR4122_KIU_ADDR VRIP_NO_ADDR /* XXX: no register */ 120 1.2 sato #define VR4122_DSIU_ADDR 0x0f000820 121 1.2 sato #define VR4122_LED_ADDR 0x0f000180 122 1.2 sato #define VR4122_SIU_ADDR 0x0f000800 123 1.2 sato #define VR4122_HSP_ADDR VRIP_NO_ADDR /* XXX: no register */ 124 1.2 sato #define VR4122_FIR_ADDR 0x0f000840 /* XXX */ 125 1.3 sato #define VR4122_MEMCON_ADDR VRIP_NO_ADDR /* XXX: no register */ 126 1.3 sato #define VR4122_ISABRG_ADDR VRIP_NO_ADDR /* XXX: no register */ 127 1.3 sato #define VR4122_ECU_ADDR VRIP_NO_ADDR /* XXX: no register */ 128 1.3 sato #define VR4122_DCU81_ADDR VRIP_NO_ADDR /* XXX: no register */ 129 1.3 sato #define VR4122_CSI81_ADDR VRIP_NO_ADDR /* XXX: no register */ 130 1.3 sato #define VR4122_GIU81_ADDR VRIP_NO_ADDR /* XXX: no register */ 131 1.3 sato #define VR4122_SIU1_ADDR VRIP_NO_ADDR /* XXX: no register */ 132 1.2 sato #define VR4122_SCU_ARR 0x0f001000 133 1.4 sato #define VR4122_SDRAMU_ADDR 0x0f000400 134 1.4 sato #define VR4122_PCI_ADDR 0x0f000c00 135 1.4 sato #define VR4122_PCICONF_ADDR 0x0f000d00 136 1.4 sato #define VR4122_CSI_ADDR 0x0f0001a0 137 1.1 takemura 138 1.2 sato /* 139 1.2 sato * VRIP base address 140 1.2 sato * 141 1.2 sato * REQUIRE: opt_vr41xx.h, vrcpudef.h 142 1.2 sato */ 143 1.2 sato #include "opt_vr41xx.h" 144 1.2 sato #include <hpcmips/vr/vrcpudef.h> 145 1.1 takemura 146 1.7 takemura #if defined SINGLE_VRIP_BASE 147 1.2 sato 148 1.2 sato #if defined VRGROUP_4181 149 1.2 sato #define VRIP_BASE_ADDR 0x0a000000 150 1.3 sato 151 1.3 sato #define VRIP_BCU_ADDR VR4181_BCU_ADDR 152 1.3 sato #define VRIP_DMAAU_ADDR VR4181_DMAAU_ADDR 153 1.3 sato #define VRIP_DCU_ADDR VR4181_DCU_ADDR 154 1.3 sato #define VRIP_CMU_ADDR VR4181_CMU_ADDR 155 1.3 sato #define VRIP_ICU_ADDR VR4181_ICU_ADDR 156 1.3 sato #define VRIP_PMU_ADDR VR4181_PMU_ADDR 157 1.3 sato #define VRIP_RTC_ADDR VR4181_RTC_ADDR 158 1.3 sato #define VRIP_DSU_ADDR VR4181_DSU_ADDR 159 1.3 sato #define VRIP_GIU_ADDR VR4181_GIU_ADDR 160 1.3 sato #define VRIP_PIU_ADDR VR4181_PIU_ADDR 161 1.3 sato #define VRIP_AIU_ADDR VR4181_AIU_ADDR 162 1.3 sato #define VRIP_KIU_ADDR VR4181_KIU_ADDR 163 1.3 sato #define VRIP_DSIU_ADDR VR4181_DSIU_ADDR 164 1.3 sato #define VRIP_LED_ADDR VR4181_LED_ADDR 165 1.3 sato #define VRIP_SIU_ADDR VR4181_SIU_ADDR 166 1.3 sato #define VRIP_HSP_ADDR VR4181_HSP_ADDR 167 1.3 sato #define VRIP_FIR_ADDR VR4181_FIR_ADDR 168 1.3 sato #define VRIP_MEMCON_ADDR VR4181_MEMCON_ADDR 169 1.3 sato #define VRIP_ISABRG_ADDR VR4181_ISABRG_ADDR 170 1.3 sato #define VRIP_ECU_ADDR VR4181_ECU_ADDR 171 1.3 sato #define VRIP_DCU81_ADDR VR4181_DCU81_ADDR 172 1.3 sato #define VRIP_CSI81_ADDR VR4181_CSI81_ADDR 173 1.3 sato #define VRIP_GIU81_ADDR VR4181_GIU81_ADDR 174 1.3 sato #define VRIP_LCD_ADDR VR4181_LCD_ADDR 175 1.3 sato #define VRIP_SIU1_ADDR VR4181_SIU1_ADDR 176 1.3 sato #define VRIP_SCU_ARR VR4181_SCU_ARR /* XXX: no register */ 177 1.3 sato #define VRIP_SDRAMU_ADDR VR4181_SDRAMU_ADDR /* XXX: no register */ 178 1.3 sato #define VRIP_PCI_ADDR VR4181_PCI_ADDR /* XXX: no register */ 179 1.3 sato #define VRIP_PCICONF_ADDR VR4181_PCICONF_ADDR /* XXX: no register */ 180 1.3 sato #define VRIP_CSI_ADDR VR4181_CSI_ADDR /* XXX: no register */ 181 1.3 sato 182 1.2 sato #endif /* VRGROUP_4181 */ 183 1.2 sato 184 1.5 sato #if defined VRGROUP_4122_4131 185 1.2 sato #define VRIP_BASE_ADDR 0x0f000000 186 1.2 sato 187 1.2 sato #define VRIP_BCU_ADDR VR4122_BCU_ADDR 188 1.2 sato #define VRIP_DMAAU_ADDR VR4122_DMAAU_ADDR 189 1.2 sato #define VRIP_DCU_ADDR VR4122_DCU_ADDR 190 1.2 sato #define VRIP_CMU_ADDR VR4122_CMU_ADDR 191 1.2 sato #define VRIP_ICU_ADDR VR4122_ICU_ADDR 192 1.2 sato #define VRIP_PMU_ADDR VR4122_PMU_ADDR 193 1.2 sato #define VRIP_RTC_ADDR VR4122_RTC_ADDR 194 1.2 sato #define VRIP_DSU_ADDR VR4122_DSU_ADDR 195 1.2 sato #define VRIP_GIU_ADDR VR4122_GIU_ADDR 196 1.2 sato #define VRIP_PIU_ADDR VR4122_PIU_ADDR 197 1.2 sato #define VRIP_AIU_ADDR VR4122_AIU_ADDR 198 1.2 sato #define VRIP_KIU_ADDR VR4122_KIU_ADDR 199 1.2 sato #define VRIP_DSIU_ADDR VR4122_DSIU_ADDR 200 1.2 sato #define VRIP_LED_ADDR VR4122_LED_ADDR 201 1.2 sato #define VRIP_SIU_ADDR VR4122_SIU_ADDR 202 1.2 sato #define VRIP_HSP_ADDR VR4122_HSP_ADDR 203 1.2 sato #define VRIP_FIR_ADDR VR4122_FIR_ADDR 204 1.3 sato #define VRIP_MEMCON_ADDR VR4122_MEMCON_ADDR /* XXX: no register */ 205 1.3 sato #define VRIP_ISABRG_ADDR VR4122_ISABRG_ADDR /* XXX: no register */ 206 1.3 sato #define VRIP_ECU_ADDR VR4122_ECU_ADDR /* XXX: no register */ 207 1.3 sato #define VRIP_DCU81_ADDR VR4122_DCU81_ADDR /* XXX: no register */ 208 1.3 sato #define VRIP_CSI81_ADDR VR4122_CSI81_ADDR /* XXX: no register */ 209 1.3 sato #define VRIP_GIU81_ADDR VR4122_CSI81_ADDR /* XXX: no register */ 210 1.3 sato #define VRIP_SIU1_ADDR VR4122_SIU1_ADDR /* XXX: no register */ 211 1.2 sato #define VRIP_SCU_ARR VR4122_SCU_ARR /* XXX: no register */ 212 1.2 sato #define VRIP_SDRAMU_ADDR VR4122_SDRAMU_ADDR /* XXX: no register */ 213 1.2 sato #define VRIP_PCI_ADDR VR4122_PCI_ADDR /* XXX: no register */ 214 1.2 sato #define VRIP_PCICONF_ADDR VR4122_PCICONF_ADDR /* XXX: no register */ 215 1.2 sato #define VRIP_CSI_ADDR VR4122_CSI_ADDR /* XXX: no register */ 216 1.2 sato 217 1.5 sato #endif /* VRGROUP_4122_4131 */ 218 1.2 sato 219 1.2 sato #if defined VRGROUP_4102_4121 220 1.2 sato #define VRIP_BASE_ADDR 0x0b000000 221 1.2 sato 222 1.2 sato #define VRIP_BCU_ADDR VR4102_BCU_ADDR 223 1.2 sato #define VRIP_DMAAU_ADDR VR4102_DMAAU_ADDR 224 1.2 sato #define VRIP_DCU_ADDR VR4102_DCU_ADDR 225 1.2 sato #define VRIP_CMU_ADDR VR4102_CMU_ADDR 226 1.2 sato #define VRIP_ICU_ADDR VR4102_ICU_ADDR 227 1.2 sato #define VRIP_PMU_ADDR VR4102_PMU_ADDR 228 1.2 sato #define VRIP_RTC_ADDR VR4102_RTC_ADDR 229 1.2 sato #define VRIP_DSU_ADDR VR4102_DSU_ADDR 230 1.2 sato #define VRIP_GIU_ADDR VR4102_GIU_ADDR 231 1.2 sato #define VRIP_PIU_ADDR VR4102_PIU_ADDR 232 1.2 sato #define VRIP_AIU_ADDR VR4102_AIU_ADDR 233 1.2 sato #define VRIP_KIU_ADDR VR4102_KIU_ADDR 234 1.2 sato #define VRIP_DSIU_ADDR VR4102_DSIU_ADDR 235 1.2 sato #define VRIP_LED_ADDR VR4102_LED_ADDR 236 1.2 sato #define VRIP_SIU_ADDR VR4102_SIU_ADDR 237 1.2 sato #define VRIP_HSP_ADDR VR4102_HSP_ADDR 238 1.2 sato #define VRIP_FIR_ADDR VR4102_FIR_ADDR 239 1.3 sato #define VRIP_MEMCON_ADDR VR4102_MEMCON_ADDR /* XXX: no register */ 240 1.3 sato #define VRIP_ISABRG_ADDR VR4102_ISABRG_ADDR /* XXX: no register */ 241 1.3 sato #define VRIP_ECU_ADDR VR4102_ECU_ADDR /* XXX: no register */ 242 1.3 sato #define VRIP_DCU81_ADDR VR4102_DCU81_ADDR /* XXX: no register */ 243 1.3 sato #define VRIP_CSI81_ADDR VR4102_CSI81_ADDR /* XXX: no register */ 244 1.6 sato #define VRIP_GIU81_ADDR VR4102_GIU81_ADDR /* XXX: no register */ 245 1.3 sato #define VRIP_SIU1_ADDR VR4102_SIU1_ADDR /* XXX: no register */ 246 1.2 sato #define VRIP_SCU_ARR VR4102_SCU_ARR /* XXX: no register */ 247 1.2 sato #define VRIP_SDRAMU_ADDR VR4102_SDRAMU_ADDR /* XXX: no register */ 248 1.2 sato #define VRIP_PCI_ADDR VR4102_PCI_ADDR /* XXX: no register */ 249 1.2 sato #define VRIP_PCICONF_ADDR VR4102_PCICONF_ADDR /* XXX: no register */ 250 1.2 sato #define VRIP_CSI_ADDR VR4102_CSI_ADDR /* XXX: no register */ 251 1.1 takemura 252 1.2 sato #endif /* VRGROUP_4102_4121 */ 253 1.1 takemura 254 1.2 sato #endif /* SINGLE_VRIP_BASE */ 255 1.1 takemura 256 1.2 sato /* 257 1.2 sato * ICU interrupt level 258 1.2 sato */ 259 1.2 sato /* reserved 62-31 */ 260 1.2 sato #define VRIP_INTR_BCU 25 261 1.2 sato #define VRIP_INTR_CSI 24 262 1.2 sato #define VRIP_INTR_SCU 23 263 1.2 sato #define VRIP_INTR_PCI 22 264 1.3 sato #define VRIP_INTR_LCD 22 /* 4181 */ 265 1.1 takemura #define VRIP_INTR_DSIU 21 266 1.3 sato #define VRIP_INTR_DCU81 21 /* 4181 */ 267 1.1 takemura #define VRIP_INTR_FIR 20 268 1.1 takemura #define VRIP_INTR_TCLK 19 269 1.3 sato #define VRIP_INTR_CSI81 19 /* 4181 */ 270 1.1 takemura #define VRIP_INTR_HSP 18 271 1.3 sato #define VRIP_INTR_ECU 18 /* 4181 */ 272 1.1 takemura #define VRIP_INTR_LED 17 273 1.1 takemura #define VRIP_INTR_RTCL2 16 274 1.1 takemura /* reserved 15,14 */ 275 1.1 takemura #define VRIP_INTR_DOZEPIU 13 276 1.2 sato #define VRIP_INTR_CLKRUN 12 277 1.1 takemura #define VRIP_INTR_SOFT 11 278 1.1 takemura #define VRIP_INTR_WRBERR 10 279 1.1 takemura #define VRIP_INTR_SIU 9 280 1.1 takemura #define VRIP_INTR_GIU 8 281 1.1 takemura #define VRIP_INTR_KIU 7 282 1.1 takemura #define VRIP_INTR_AIU 6 283 1.1 takemura #define VRIP_INTR_PIU 5 284 1.1 takemura /* reserved 4 VRC4171 use this ??? */ 285 1.1 takemura #define VRIP_INTR_ETIMER 3 286 1.1 takemura #define VRIP_INTR_RTCL1 2 287 1.1 takemura #define VRIP_INTR_POWER 1 288 1.1 takemura #define VRIP_INTR_BAT 0 289