blob: 46ae6812e39598ce1837235f703a2fdbbacc7fc7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
|
/* $Id$
*
* vac.h: Various VIC controller defines. The VIC is a VME controller
* used in Baget/MIPS series.
*
* Copyright (C) 1998 Gleb Raiko & Vladimir Roganov
*/
#ifndef _MIPS_VAC_H
#define _MIPS_VAC_H
#define VAC_SLSEL1_MASK 0x000
#define VAC_SLSEL1_BASE 0x100
#define VAC_SLSEL0_MASK 0x200
#define VAC_SLSEL0_BASE 0x300
#define VAC_ICFSEL_BASE 0x400
#define VAC_ICFSEL_GLOBAL_VAL(x) (((x)>>8)&0xff)
#define VAC_ICFSEL_MODULE_VAL(x) ((x)&0xff)
#define VAC_DRAM_MASK 0x500
#define VAC_BNDR2 0x600
#define VAC_BNDR3 0x700
#define VAC_A24_BASE 0x800
#define VAC_A24_MASK (0x3f<<9)
#define VAC_A24_D32_ENABLE (1<<8)
#define VAC_A24_A24_CACHINH (1<<7)
#define VAC_A24_A16D32_ENABLE (1<<6)
#define VAC_A24_A16D32 (1<<5)
#define VAC_A24_DATAPATH (1<<4)
#define VAC_A24_IO_CACHINH (1<<3)
#define VAC_REG1 0x900
#define VAC_REG2 0xA00
#define VAC_REG3 0xB00
#define VAC_REG_WORD (1<<15)
#define VAC_REG_ASIZ1 (1<<14)
#define VAC_REG_ASIZ0 (1<<13)
#define VAC_REG_ASIZ_VAL(x) (((x)>>13)&3)
#define VAC_REG_CACHINH (1<<12)
#define VAC_REG_INACTIVE (0<<10)
#define VAC_REG_SHARED (1<<10)
#define VAC_REG_VSB (2<<10)
#define VAC_REG_MWB (3<<10)
#define VAC_REG_MASK (3<<10)
#define VAC_REG_MODE(x) (((x)>>10)&3)
#define VAC_IOSEL4_CTRL 0xC00
#define VAC_IOSEL5_CTRL 0xD00
#define VAC_SHRCS_CTRL 0xE00
#define VAC_EPROMCS_CTRL 0xF00
#define VAC_IOSEL0_CTRL 0x1000
#define VAC_IOSEL1_CTRL 0x1100
#define VAC_IOSEL2_CTRL 0x1200
#define VAC_IOSEL3_CTRL 0x1300
#define VAC_CTRL_IOWR (1<<0)
#define VAC_CTRL_IORD (1<<1)
#define VAC_CTRL_DELAY_IOSELI(x) (((x)&3)<<2)
#define VAC_CTRL_DELAY_IOSELI_VAL(x) (((x)>>2)&3)
#define VAC_CTRL_DELAY_IOWR(x) (((x)&3)<<4)
#define VAC_CTRL_DELAY_IOWR_VAL(x) (((x)>>4)&3)
#define VAC_CTRL_DELAY_IORD(x) (((x)&3)<<6)
#define VAC_CTRL_DELAY_IORD_VAL(x) (((x)>>6)&3)
#define VAC_CTRL_RECOVERY_IOSELI(x) ((((x)-1)&7)<<8)
#define VAC_CTRL_RECOVERY_IOSELI_VAL(x) ((((x)>>8)&7)+1)
#define VAC_CTRL_DSACK0 (1<<11)
#define VAC_CTRL_DSACK1 (1<<12)
#define VAC_CTRL_DELAY_DSACKI(x) ((((x)-1)&7)<<13)
#define VAC_CTRL_DELAY_DSACKI_VAL(x) ((((x)>>13)&7)+1)
#define VAC_DECODE_CTRL 0x1400
#define VAC_DECODE_FPUCS (1<<0)
#define VAC_DECODE_CPUCLK(x) (((x)&3)<<1)
#define VAC_DECODE_CPUCLK_VAL(x) (((x)>>1)&3)
#define VAC_DECODE_RDR_SLSEL0 (1<<3)
#define VAC_DECODE_RDR_SLSEL1 (1<<4)
#define VAC_DECODE_DSACK (1<<5)
#define VAC_DECODE_QFY_BNDR (1<<6)
#define VAC_DECODE_QFY_ICFSEL (1<<7)
#define VAC_DECODE_QFY_SLSEL1 (1<<8)
#define VAC_DECODE_QFY_SLSEL0 (1<<9)
#define VAC_DECODE_CMP_SLSEL1_LO (1<<10)
#define VAC_DECODE_CMP_SLSEL1_HI (1<<11)
#define VAC_DECODE_CMP_SLSEL1_VAL(x) (((x)>>10)&3)
#define VAC_DECODE_DRAMCS (3<<12)
#define VAC_DECODE_SHRCS (2<<12)
#define VAC_DECODE_VSBSEL (1<<12)
#define VAC_DECODE_EPROMCS (0<<12)
#define VAC_DECODE_MODE_VAL(x) (((x)>>12)&3)
#define VAC_DECODE_QFY_DRAMCS (1<<14)
#define VAC_DECODE_DSACKI (1<<15)
#define VAC_INT_STATUS 0x1500
#define VAC_INT_CTRL 0x1600
#define VAC_INT_CTRL_TIMER_PIO11 (3<<0)
#define VAC_INT_CTRL_TIMER_PIO10 (2<<0)
#define VAC_INT_CTRL_TIMER_PIO7 (1<<0)
#define VAC_INT_CTRL_TIMER_DISABLE (0<<0)
#define VAC_INT_CTRL_TIMER_MASK (3<<0)
#define VAC_INT_CTRL_UART_B_PIO11 (3<<2)
#define VAC_INT_CTRL_UART_B_PIO10 (2<<2)
#define VAC_INT_CTRL_UART_B_PIO7 (1<<2)
#define VAC_INT_CTRL_UART_B_DISABLE (0<<2)
#define VAC_INT_CTRL_UART_A_PIO11 (3<<4)
#define VAC_INT_CTRL_UART_A_PIO10 (2<<4)
#define VAC_INT_CTRL_UART_A_PIO7 (1<<4)
#define VAC_INT_CTRL_UART_A_DISABLE (0<<4)
#define VAC_INT_CTRL_MBOX_PIO11 (3<<6)
#define VAC_INT_CTRL_MBOX_PIO10 (2<<6)
#define VAC_INT_CTRL_MBOX_PIO7 (1<<6)
#define VAC_INT_CTRL_MBOX_DISABLE (0<<6)
#define VAC_INT_CTRL_PIO4_PIO11 (3<<8)
#define VAC_INT_CTRL_PIO4_PIO10 (2<<8)
#define VAC_INT_CTRL_PIO4_PIO7 (1<<8)
#define VAC_INT_CTRL_PIO4_DISABLE (0<<8)
#define VAC_INT_CTRL_PIO7_PIO11 (3<<10)
#define VAC_INT_CTRL_PIO7_PIO10 (2<<10)
#define VAC_INT_CTRL_PIO7_PIO7 (1<<10)
#define VAC_INT_CTRL_PIO7_DISABLE (0<<10)
#define VAC_INT_CTRL_PIO8_PIO11 (3<<12)
#define VAC_INT_CTRL_PIO8_PIO10 (2<<12)
#define VAC_INT_CTRL_PIO8_PIO7 (1<<12)
#define VAC_INT_CTRL_PIO8_DISABLE (0<<12)
#define VAC_INT_CTRL_PIO9_PIO11 (3<<14)
#define VAC_INT_CTRL_PIO9_PIO10 (2<<14)
#define VAC_INT_CTRL_PIO9_PIO7 (1<<14)
#define VAC_INT_CTRL_PIO9_DISABLE (0<<14)
#define VAC_DEV_LOC 0x1700
#define VAC_DEV_LOC_IOSEL(x) (1<<(x))
#define VAC_PIO_DATA_OUT 0x1800
#define VAC_PIO_PIN 0x1900
#define VAC_PIO_DIRECTION 0x1A00
#define VAC_PIO_DIR_OUT(x) (1<<(x))
#define VAC_PIO_DIR_IN(x) (0<<(x))
#define VAC_PIO_DIR_FCIACK (1<<14)
#define VAC_PIO_FUNC 0x1B00
#define VAC_PIO_FUNC_UART_A_TX (1<<0)
#define VAC_PIO_FUNC_UART_A_RX (1<<1)
#define VAC_PIO_FUNC_UART_B_TX (1<<2)
#define VAC_PIO_FUNC_UART_B_RX (1<<3)
#define VAC_PIO_FUNC_IORD (1<<4)
#define VAC_PIO_FUNC_IOWR (1<<5)
#define VAC_PIO_FUNC_IOSEL3 (1<<6)
#define VAC_PIO_FUNC_IRQ7 (1<<7)
#define VAC_PIO_FUNC_IOSEL4 (1<<8)
#define VAC_PIO_FUNC_IOSEL5 (1<<9)
#define VAC_PIO_FUNC_IRQ10 (1<<10)
#define VAC_PIO_FUNC_IRQ11 (1<<11)
#define VAC_PIO_FUNC_OUT (1<<12)
#define VAC_PIO_FUNC_IOSEL2 (1<<13)
#define VAC_PIO_FUNC_DELAY (1<<14)
#define VAC_PIO_FUNC_FCIACK (1<<15)
#define VAC_CPU_CLK_DIV 0x1C00
#define VAC_UART_A_MODE 0x1D00
#define VAC_UART_MODE_PARITY_ENABLE (1<<15) /* Inversed in manual ? */
#define VAC_UART_MODE_PARITY_ODD (1<<14) /* Inversed in manual ? */
#define VAC_UART_MODE_8BIT_CHAR (1<<13)
#define VAC_UART_MODE_BAUD(x) (((x)&7)<<10)
#define VAC_UART_MODE_CHAR_RX_ENABLE (1<<9)
#define VAC_UART_MODE_CHAR_TX_ENABLE (1<<8)
#define VAC_UART_MODE_TX_ENABLE (1<<7)
#define VAC_UART_MODE_RX_ENABLE (1<<6)
#define VAC_UART_MODE_SEND_BREAK (1<<5)
#define VAC_UART_MODE_LOOPBACK (1<<4)
#define VAC_UART_MODE_INITIAL (VAC_UART_MODE_8BIT_CHAR | \
VAC_UART_MODE_TX_ENABLE | \
VAC_UART_MODE_RX_ENABLE | \
VAC_UART_MODE_CHAR_TX_ENABLE | \
VAC_UART_MODE_CHAR_RX_ENABLE | \
VAC_UART_MODE_BAUD(5)) /* 9600/4 */
#define VAC_UART_A_TX 0x1E00
#define VAC_UART_B_MODE 0x1F00
#define VAC_UART_A_RX 0x2000
#define VAC_UART_RX_ERR_BREAK (1<<10)
#define VAC_UART_RX_ERR_FRAME (1<<9)
#define VAC_UART_RX_ERR_PARITY (1<<8)
#define VAC_UART_RX_DATA_MASK (0xff)
#define VAC_UART_B_RX 0x2100
#define VAC_UART_B_TX 0x2200
#define VAC_UART_A_INT_MASK 0x2300
#define VAC_UART_INT_RX_READY (1<<15)
#define VAC_UART_INT_RX_FULL (1<<14)
#define VAC_UART_INT_RX_BREAK_CHANGE (1<<13)
#define VAC_UART_INT_RX_ERRS (1<<12)
#define VAC_UART_INT_TX_READY (1<<11)
#define VAC_UART_INT_TX_EMPTY (1<<10)
#define VAC_UART_B_INT_MASK 0x2400
#define VAC_UART_A_INT_STATUS 0x2500
#define VAC_UART_STATUS_RX_READY (1<<15)
#define VAC_UART_STATUS_RX_FULL (1<<14)
#define VAC_UART_STATUS_RX_BREAK_CHANGE (1<<13)
#define VAC_UART_STATUS_RX_ERR_PARITY (1<<12)
#define VAC_UART_STATUS_RX_ERR_FRAME (1<<11)
#define VAC_UART_STATUS_RX_ERR_OVERRUN (1<<10)
#define VAC_UART_STATUS_TX_READY (1<<9)
#define VAC_UART_STATUS_TX_EMPTY (1<<8)
#define VAC_UART_STATUS_INTS (0xff<<8)
#define VAC_UART_B_INT_STATUS 0x2600
#define VAC_TIMER_DATA 0x2700
#define VAC_TIMER_CTRL 0x2800
#define VAC_TIMER_ONCE (1<<15)
#define VAC_TIMER_ENABLE (1<<14)
#define VAC_TIMER_PRESCALE(x) (((x)&0x3F)<<8)
#define VAC_ID 0x2900
#ifndef __LANGUAGE_ASSEMBLY__
#define vac_inb(p) (*(volatile unsigned char *)(VAC_BASE + (p)))
#define vac_outb(v,p) (*((volatile unsigned char *)(VAC_BASE + (p))) = v)
#define vac_inw(p) (*(volatile unsigned short*)(VAC_BASE + (p)))
#define vac_outw(v,p) (*((volatile unsigned short*)(VAC_BASE + (p))) = v)
#endif /* __LANGUAGE_ASSEMBLY__ */
#endif /* !(_MIPS_VAC_H) */
|