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