1 1.9 skrll /* $NetBSD: ep93xxreg.h,v 1.9 2021/11/21 08:25:26 skrll Exp $ */ 2 1.1 joff 3 1.1 joff /* 4 1.1 joff * Copyright (c) 2004 Jesse Off 5 1.1 joff * All rights reserved. 6 1.1 joff * 7 1.1 joff * Redistribution and use in source and binary forms, with or without 8 1.1 joff * modification, are permitted provided that the following conditions 9 1.1 joff * are met: 10 1.1 joff * 1. Redistributions of source code must retain the above copyright 11 1.1 joff * notice, this list of conditions and the following disclaimer. 12 1.1 joff * 2. Redistributions in binary form must reproduce the above copyright 13 1.1 joff * notice, this list of conditions and the following disclaimer in the 14 1.1 joff * documentation and/or other materials provided with the distribution. 15 1.1 joff * 16 1.1 joff * THIS SOFTWARE IS PROVIDED BY ICHIRO FUKUHARA ``AS IS'' AND ANY EXPRESS OR 17 1.1 joff * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 18 1.1 joff * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 19 1.1 joff * IN NO EVENT SHALL ICHIRO FUKUHARA OR THE VOICES IN HIS HEAD BE LIABLE FOR 20 1.1 joff * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21 1.1 joff * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22 1.1 joff * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23 1.1 joff * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24 1.1 joff * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25 1.1 joff * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26 1.1 joff * SUCH DAMAGE. 27 1.1 joff */ 28 1.1 joff 29 1.1 joff #ifndef _EP93XXREG_H_ 30 1.1 joff #define _EP93XXREG_H_ 31 1.1 joff 32 1.1 joff /* 33 1.9 skrll * Physical memory map for the Cirrus Logic EP93XX 34 1.1 joff */ 35 1.1 joff 36 1.1 joff /* 37 1.1 joff * FFFF FFFF --------------------------- 38 1.1 joff * Device 12 39 1.1 joff * External SMC CS#0 ROM/SRAM 40 1.1 joff * F000 0000 --------------------------- 41 1.1 joff * Device 11 42 1.1 joff * SDRAM CS#2 43 1.1 joff * E000 0000 --------------------------- 44 1.1 joff * Device 10 45 1.1 joff * SDRAM CS#1 46 1.1 joff * D000 0000 --------------------------- 47 1.1 joff * Device 9 48 1.1 joff * SDRAM CS#0 49 1.1 joff * C000 0000 --------------------------- 50 1.1 joff * Device 8 51 1.1 joff * Not used 52 1.1 joff * 9000 0000 --------------------------- 53 1.1 joff * Device 7 54 1.1 joff * EP93XX System Registers 55 1.1 joff * 8080 0000 - 8094 FFFF 56 1.1 joff * APB Mapped Registers 57 1.1 joff * 8010 0000 - 807F FFFF 58 1.1 joff * Reserved 59 1.1 joff * 8000 0000 - 800F FFFF 60 1.1 joff * AHB Mapped Registers 61 1.1 joff * 8000 0000 --------------------------- 62 1.1 joff * Device 6 63 1.1 joff * External SMC CS#7 ROM/SRAM 64 1.1 joff * 7000 0000 --------------------------- 65 1.1 joff * Device 5 66 1.1 joff * External SMC CS#6 ROM/SRAM 67 1.1 joff * 6000 0000 --------------------------- 68 1.1 joff * Device 4 69 1.5 hamajima * PCMCIA/CompactFlash 70 1.5 hamajima * 5000 0000 - 5fff ffff 71 1.5 hamajima * Reserved 72 1.5 hamajima * 4c00 0000 - 4fff ffff 73 1.5 hamajima * Slot0 Memory space 74 1.5 hamajima * 4800 0000 - 4bff ffff 75 1.5 hamajima * Slot0 Attribute space 76 1.5 hamajima * 4400 0000 - 47ff ffff 77 1.5 hamajima * Reserved 78 1.5 hamajima * 4000 0000 - 43ff ffff 79 1.5 hamajima * Slot0 I/O space 80 1.1 joff * 4000 0000 --------------------------- 81 1.1 joff * Device 3 82 1.1 joff * External SMC CS#3 ROM/SRAM 83 1.1 joff * 3000 0000 --------------------------- 84 1.1 joff * Device 2 85 1.1 joff * External SMC CS#2 ROM/SRAM 86 1.1 joff * 2000 0000 --------------------------- 87 1.1 joff * Device 1 88 1.1 joff * External SMC CS#1 ROM/SRAM 89 1.1 joff * 1000 0000 --------------------------- 90 1.1 joff * Device 0 91 1.1 joff * SDRAM CS#3 92 1.1 joff * 0000 0000 --------------------------- 93 1.1 joff */ 94 1.1 joff 95 1.1 joff 96 1.1 joff /* 97 1.1 joff * Virtual memory map for the Cirrus Logic EP93XX integrated devices 98 1.1 joff * 99 1.8 andvar * Some device registers are statically mapped on upper address region. 100 1.1 joff * because we have to access them before bus_space is initialized. 101 1.8 andvar * Most device is dynamically mapped by bus_space_map(). In this case, 102 1.1 joff * the actual mapped (virtual) address are not cared by device drivers. 103 1.1 joff */ 104 1.1 joff 105 1.1 joff /* 106 1.1 joff * FFFF FFFF --------------------------- 107 1.1 joff * not used 108 1.1 joff * F030 0000 --------------------------- 109 1.1 joff * APB bus (2Mbyte) 110 1.1 joff * F010 0000 --------------------------- 111 1.1 joff * AHB bus (1Mbyte) 112 1.1 joff * F000 0000 --------------------------- 113 1.5 hamajima * PCMCIA slot0 space 114 1.5 hamajima * E000 0000 --------------------------- 115 1.1 joff * Kernel text and data 116 1.1 joff * C000 0000 --------------------------- 117 1.1 joff * 0000 0000 --------------------------- 118 1.1 joff * 119 1.1 joff */ 120 1.1 joff 121 1.1 joff /* Virtual address for I/O space */ 122 1.1 joff #define EP93XX_IO_VBASE 0xf0000000UL 123 1.1 joff 124 1.1 joff /* EP93xx System and Peripheral Registers */ 125 1.1 joff #define EP93XX_AHB_VBASE 0xf0000000UL 126 1.1 joff #define EP93XX_AHB_HWBASE 0x80000000UL 127 1.1 joff #define EP93XX_AHB_SIZE 0x00100000UL /* 1Mbyte */ 128 1.1 joff #define EP93XX_AHB_VIC1 0x000b0000UL 129 1.1 joff #define EP93XX_AHB_VIC2 0x000c0000UL 130 1.1 joff #define EP93XX_VIC_IRQStatus 0x00000000UL 131 1.1 joff #define EP93XX_VIC_FIQStatus 0x00000004UL 132 1.1 joff #define EP93XX_VIC_RawIntr 0x00000008UL 133 1.1 joff #define EP93XX_VIC_IntSelect 0x0000000cUL 134 1.1 joff #define EP93XX_VIC_IntEnable 0x00000010UL 135 1.1 joff #define EP93XX_VIC_IntEnClear 0x00000014UL 136 1.1 joff #define EP93XX_VIC_SoftInt 0x00000018UL 137 1.1 joff #define EP93XX_VIC_SoftIntClear 0x0000001cUL 138 1.1 joff #define EP93XX_VIC_Protection 0x00000020UL 139 1.1 joff #define EP93XX_VIC_VectAddr 0x00000030UL 140 1.1 joff #define EP93XX_VIC_DefVectAddr 0x00000034UL 141 1.1 joff #define EP93XX_VIC_VectAddr0 0x00000100UL 142 1.1 joff #define EP93XX_VIC_VectCntl0 0x00000200UL 143 1.1 joff #define EP93XX_VIC_PeriphID0 0x00000fe0UL 144 1.5 hamajima #define EP93XX_AHB_SMC 0x00080000UL 145 1.1 joff 146 1.1 joff #define EP93XX_APB_VBASE 0xf0100000UL 147 1.1 joff #define EP93XX_APB_HWBASE 0x80800000UL 148 1.1 joff #define EP93XX_APB_SIZE 0x00200000UL /* 2Mbyte */ 149 1.2 joff #define EP93XX_APB_GPIO 0x00040000UL 150 1.2 joff #define EP93XX_APB_GPIO_SIZE 0x000000d0UL 151 1.4 joff #define EP93XX_APB_SSP 0x000a0000UL 152 1.4 joff #define EP93XX_APB_SSP_SIZE 0x00000018UL 153 1.4 joff #define EP93XX_SSP_SSPCR0 0x00000000UL 154 1.4 joff #define EP93XX_SSP_SSPCR1 0x00000004UL 155 1.4 joff #define EP93XX_SSP_SSPDR 0x00000008UL 156 1.4 joff #define EP93XX_SSP_SSPSR 0x0000000cUL 157 1.4 joff #define EP93XX_SSP_SSPCPSR 0x00000010UL 158 1.4 joff #define EP93XX_SSP_SSPIIR 0x00000014UL 159 1.4 joff #define EP93XX_SSP_SSPICR 0x00000014UL 160 1.1 joff #define EP93XX_APB_SYSCON 0x00130000UL 161 1.1 joff #define EP93XX_APB_SYSCON_SIZE 0x000000c0UL 162 1.1 joff #define EP93XX_SYSCON_PwrSts 0x00000000UL 163 1.1 joff #define EP93XX_SYSCON_PwrCnt 0x00000004UL 164 1.1 joff #define PwrCnt_UARTBAUD 0x20000000UL 165 1.1 joff #define EP93XX_SYSCON_TEOI 0x00000018UL 166 1.1 joff #define EP93XX_SYSCON_ClkSet1 0x00000020UL 167 1.1 joff #define EP93XX_SYSCON_ClkSet2 0x00000024UL 168 1.6 hamajima #define EP93XX_SYSCON_DeviceCfg 0x00000080UL 169 1.1 joff #define EP93XX_SYSCON_ChipID 0x00000094UL 170 1.1 joff #define EP93XX_APB_TIMERS 0x00010000UL 171 1.1 joff #define EP93XX_APB_UART1 0x000c0000UL 172 1.1 joff #define EP93XX_APB_UART2 0x000d0000UL 173 1.1 joff #define EP93XX_APB_UART_SIZE 0x00000220UL 174 1.1 joff #define EP93XX_UART_Flag 0x00000018UL 175 1.1 joff #define EP93XX_UART_Data 0x00000000UL 176 1.5 hamajima #define EP93XX_APB_RTC 0x00120000UL 177 1.5 hamajima #define EP93XX_APB_RTC_SIZE 0x00000112UL 178 1.5 hamajima #define EP93XX_APB_WDOG 0x00140000UL 179 1.5 hamajima #define EP93XX_APB_WDOG_SIZE 0x00000008UL 180 1.5 hamajima 181 1.5 hamajima /* EP93xx PCMCIA space */ 182 1.5 hamajima #define EP93XX_PCMCIA0_VBASE 0xe0000000UL 183 1.5 hamajima #define EP93XX_PCMCIA0_HWBASE 0x40000000UL 184 1.5 hamajima #define EP93XX_PCMCIA_SIZE 0x10000000UL 185 1.5 hamajima #define EP93XX_PCMCIA_IO 0x00000000UL 186 1.5 hamajima #define EP93XX_PCMCIA_IO_SIZE 0x04000000UL 187 1.5 hamajima #define EP93XX_PCMCIA_ATTRIBUTE 0x08000000UL 188 1.5 hamajima #define EP93XX_PCMCIA_ATTRIBUTE_SIZE 0x04000000UL 189 1.5 hamajima #define EP93XX_PCMCIA_COMMON 0x0c000000UL 190 1.5 hamajima #define EP93XX_PCMCIA_COMMON_SIZE 0x04000000UL 191 1.1 joff 192 1.1 joff #define NIRQ 64 193 1.1 joff #define VIC_NIRQ 32 194 1.1 joff 195 1.1 joff #define EP93XX_INTR_bit31 31 196 1.1 joff #define EP93XX_INTR_bit30 30 197 1.1 joff #define EP93XX_INTR_bit29 29 198 1.1 joff #define EP93XX_INTR_bit28 28 199 1.1 joff #define EP93XX_INTR_bit27 27 200 1.1 joff #define EP93XX_INTR_bit26 26 201 1.1 joff #define EP93XX_INTR_bit25 25 202 1.1 joff #define EP93XX_INTR_bit24 24 203 1.1 joff #define EP93XX_INTR_bit23 23 204 1.1 joff #define EP93XX_INTR_bit22 22 205 1.1 joff #define EP93XX_INTR_bit21 21 206 1.1 joff #define EP93XX_INTR_bit20 20 207 1.1 joff #define EP93XX_INTR_bit19 19 208 1.1 joff #define EP93XX_INTR_bit18 18 209 1.1 joff #define EP93XX_INTR_bit17 17 210 1.1 joff #define EP93XX_INTR_bit16 16 211 1.1 joff #define EP93XX_INTR_bit15 15 212 1.1 joff #define EP93XX_INTR_bit14 14 213 1.1 joff #define EP93XX_INTR_bit13 13 214 1.1 joff #define EP93XX_INTR_bit12 12 215 1.1 joff #define EP93XX_INTR_bit11 11 216 1.1 joff #define EP93XX_INTR_bit10 10 217 1.1 joff #define EP93XX_INTR_bit9 9 218 1.1 joff #define EP93XX_INTR_bit8 8 219 1.1 joff #define EP93XX_INTR_bit7 7 220 1.1 joff #define EP93XX_INTR_bit6 6 221 1.1 joff #define EP93XX_INTR_bit5 5 222 1.1 joff #define EP93XX_INTR_bit4 4 223 1.1 joff #define EP93XX_INTR_bit3 3 224 1.1 joff #define EP93XX_INTR_bit2 2 225 1.1 joff #define EP93XX_INTR_bit1 1 226 1.1 joff #define EP93XX_INTR_bit0 0 227 1.1 joff 228 1.1 joff #endif /* _EP93XXREG_H_ */ 229