blob: 776162d4461e5ebc30156a5a63303dac476b4d33 [file] [log] [blame]
Wolfgang Denk53dd6ce2006-07-21 11:29:20 +02001/*
2 * multiverse.h
3 *
4 * VME driver for Multiverse
5 *
6 * Author : Sangmoon Kim
7 * dogoil@etinsys.com
8 *
9 * Copyright 2005 ETIN SYSTEMS Co.,Ltd.
10 *
11 * This program is free software; you can redistribute it and/or modify it
12 * under the terms of the GNU General Public License as published by the
13 * Free Software Foundation; either version 2 of the License, or (at your
14 * option) any later version.
15 */
16
17#ifndef __MULTIVERSE_H__
18#define __MULTIVERSE_H__
19
20#define VME_A32_MSTR_BUS 0x90000000
21#define VME_A32_MSTR_SIZE 0x01000000
22
23#define VME_A32_SLV_SIZE 0x01000000
24
25#define VME_A32_SLV_BUS 0x90000000
26#define VME_A24_SLV_BUS 0x00000000
27#define VME_A16_SLV_BUS 0x00000000
28
29#define VME_A32_SLV_LOCAL 0x00000000
30#define VME_A24_SLV_LOCAL 0x00000000
31#define VME_A16_SLV_LOCAL 0x00000000
32
33#define A32_SLV_WINDOW
34#undef A24_SLV_WINDOW
35#undef A16_SLV_WINDOW
36#undef REG_SLV_WINDOW
37
38/* PCI Registers */
39
40#define P_IMG_CTRL0 0x100
41#define P_BA0 0x104
42#define P_AM0 0x108
43#define P_TA0 0x10C
44#define P_IMG_CTRL1 0x110
45#define P_BA1 0x114
46#define P_AM1 0x118
47#define P_TA1 0x11C
48#define P_IMG_CTRL2 0x120
49#define P_BA2 0x124
50#define P_AM2 0x128
51#define P_TA2 0x12C
52#define P_IMG_CTRL3 0x130
53#define P_BA3 0x134
54#define P_AM3 0x138
55#define P_TA3 0x13C
56#define P_IMG_CTRL4 0x140
57#define P_BA4 0x144
58#define P_AM4 0x148
59#define P_TA4 0x14C
60#define P_IMG_CTRL5 0x150
61#define P_BA5 0x154
62#define P_AM5 0x158
63#define P_TA5 0x15C
64#define P_ERR_CS 0x160
65#define P_ERR_ADDR 0x164
66#define P_ERR_DATA 0x168
67
68#define WB_CONF_SPC_BAR 0x180
69#define W_IMG_CTRL1 0x184
70#define W_BA1 0x188
71#define W_AM1 0x18C
72#define W_TA1 0x190
73#define W_IMG_CTRL2 0x194
74#define W_BA2 0x198
75#define W_AM2 0x19C
76#define W_TA2 0x1A0
77#define W_IMG_CTRL3 0x1A4
78#define W_BA3 0x1A8
79#define W_AM3 0x1AC
80#define W_TA3 0x1B0
81#define W_IMG_CTRL4 0x1B4
82#define W_BA4 0x1B8
83#define W_AM4 0x1BC
84#define W_TA4 0x1C0
85#define W_IMG_CTRL5 0x1C4
86#define W_BA5 0x1C8
87#define W_AM5 0x1CC
88#define W_TA5 0x1D0
89#define W_ERR_CS 0x1D4
90#define W_ERR_ADDR 0x1D8
91#define W_ERR_DATA 0x1DC
92#define CNF_ADDR 0x1E0
93#define CNF_DATA 0x1E4
94#define INT_ACK 0x1E8
95#define ICR 0x1EC
96#define ISR 0x1F0
97
98/* VME registers */
99
100#define VME_SLAVE32_AM 0x03
101#define VME_SLAVE24_AM 0x02
102#define VME_SLAVE16_AM 0x01
103#define VME_SLAVE_REG_AM 0x00
104#define VME_SLAVE32_A 0x07
105#define VME_SLAVE24_A 0x06
106#define VME_SLAVE16_A 0x05
107#define VME_SLAVE_REG_A 0x04
108#define VME_SLAVE32_MASK 0x0B
109#define VME_SLAVE24_MASK 0x0A
110#define VME_SLAVE16_MASK 0x09
111#define VME_SLAVE_REG_MASK 0x08
112#define VME_SLAVE32_EN 0x0F
113#define VME_SLAVE24_EN 0x0E
114#define VME_SLAVE16_EN 0x0D
115#define VME_SLAVE_REG_EN 0x0C
116#define VME_MASTER32_AM 0x13
117#define VME_MASTER24_AM 0x12
118#define VME_MASTER16_AM 0x11
119#define VME_MASTER_REG_AM 0x10
120#define VME_RMW_ADRS 0x14
121#define VME_MBOX 0x18
122#define VME_STATUS 0x1E
123#define VME_CTRL 0x1C
124#define VME_IRQ 0x20
125#define VME_INT_EN 0x21
126#define VME_INT 0x22
127#define VME_IRQ1_REG 0x24
128#define VME_IRQ2_REG 0x28
129#define VME_IRQ3_REG 0x2C
130#define VME_IRQ4_REG 0x30
131#define VME_IRQ5_REG 0x34
132#define VME_IRQ6_REG 0x38
133#define VME_IRQ7_REG 0x3C
134
135/* VME control register */
136
137#define VME_CTRL_BRDRST 0x01
138#define VME_CTRL_SYSRST 0x02
139#define VME_CTRL_RMW 0x04
140#define VME_CTRL_SHORT_D 0x08
141#define VME_CTRL_SYSFAIL 0x10
142#define VME_CTRL_VOWN 0x20
143#define VME_CTRL_A16_REG_MODE 0x40
144
145/* VME status register */
146
147#define VME_STATUS_SYSCON 0x01
148#define VME_STATUS_SYSFAIL 0x02
149#define VME_STATUS_ACFAIL 0x04
150#define VME_STATUS_SYSRST 0x08
151#define VME_STATUS_VOWN 0x10
152
153/* Interrupt types */
154
155#define LVL1 0x0002
156#define LVL2 0x0004
157#define LVL3 0x0008
158#define LVL4 0x0010
159#define LVL5 0x0020
160#define LVL6 0x0040
161#define LVL7 0x0080
162#define MULTIVERSE_INTI_INT 0x0100
163#define MULTIVERSE_WB_INT 0x0200
164#define MULTIVERSE_PCI_INT 0x0400
165
166/* interrupt acknowledge */
167
168#define VME_IACK1 0x04
169#define VME_IACK2 0x08
170#define VME_IACK3 0x0c
171#define VME_IACK4 0x10
172#define VME_IACK5 0x14
173#define VME_IACK6 0x18
174#define VME_IACK7 0x1c
175
176#endif /* __MULTIVERSE_H__ */