/[gxemul]/trunk/src/include/cpc700reg.h
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Annotation of /trunk/src/include/cpc700reg.h

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.26