sxboards.h
8.52 KB
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
/************************************************************************/
/* */
/* Title : SX/SI/XIO Board Hardware Definitions */
/* */
/* Author : N.P.Vassallo */
/* */
/* Creation : 16th March 1998 */
/* */
/* Version : 3.0.0 */
/* */
/* Copyright : (c) Specialix International Ltd. 1998 */
/* */
/* Description : Prototypes, structures and definitions */
/* describing the SX/SI/XIO board hardware */
/* */
/************************************************************************/
/* History...
3.0.0 16/03/98 NPV Creation.
*/
#ifndef _sxboards_h /* If SXBOARDS.H not already defined */
#define _sxboards_h 1
/*****************************************************************************
******************************* ******************************
******************************* Board Types ******************************
******************************* ******************************
*****************************************************************************/
/* BUS types... */
#define BUS_ISA 0
#define BUS_MCA 1
#define BUS_EISA 2
#define BUS_PCI 3
/* Board phases... */
#define SI1_Z280 1
#define SI2_Z280 2
#define SI3_T225 3
/* Board types... */
#define CARD_TYPE(bus,phase) (bus<<4|phase)
#define CARD_BUS(type) ((type>>4)&0xF)
#define CARD_PHASE(type) (type&0xF)
#define TYPE_SI1_ISA CARD_TYPE(BUS_ISA,SI1_Z280)
#define TYPE_SI2_ISA CARD_TYPE(BUS_ISA,SI2_Z280)
#define TYPE_SI2_EISA CARD_TYPE(BUS_EISA,SI2_Z280)
#define TYPE_SI2_PCI CARD_TYPE(BUS_PCI,SI2_Z280)
#define TYPE_SX_ISA CARD_TYPE(BUS_ISA,SI3_T225)
#define TYPE_SX_PCI CARD_TYPE(BUS_PCI,SI3_T225)
/*****************************************************************************
****************************** ******************************
****************************** Phase 1 Z280 ******************************
****************************** ******************************
*****************************************************************************/
/* ISA board details... */
#define SI1_ISA_WINDOW_LEN 0x10000 /* 64 Kbyte shared memory window */
//#define SI1_ISA_MEMORY_LEN 0x8000 /* Usable memory - unused define*/
//#define SI1_ISA_ADDR_LOW 0x0A0000 /* Lowest address = 640 Kbyte */
//#define SI1_ISA_ADDR_HIGH 0xFF8000 /* Highest address = 16Mbyte - 32Kbyte */
//#define SI2_ISA_ADDR_STEP SI2_ISA_WINDOW_LEN/* ISA board address step */
//#define SI2_ISA_IRQ_MASK 0x9800 /* IRQs 15,12,11 */
/* ISA board, register definitions... */
//#define SI2_ISA_ID_BASE 0x7FF8 /* READ: Board ID string */
#define SI1_ISA_RESET 0x8000 /* WRITE: Host Reset */
#define SI1_ISA_RESET_CLEAR 0xc000 /* WRITE: Host Reset clear*/
#define SI1_ISA_WAIT 0x9000 /* WRITE: Host wait */
#define SI1_ISA_WAIT_CLEAR 0xd000 /* WRITE: Host wait clear */
#define SI1_ISA_INTCL 0xa000 /* WRITE: Host Reset */
#define SI1_ISA_INTCL_CLEAR 0xe000 /* WRITE: Host Reset */
/*****************************************************************************
****************************** ******************************
****************************** Phase 2 Z280 ******************************
****************************** ******************************
*****************************************************************************/
/* ISA board details... */
#define SI2_ISA_WINDOW_LEN 0x8000 /* 32 Kbyte shared memory window */
#define SI2_ISA_MEMORY_LEN 0x7FF8 /* Usable memory */
#define SI2_ISA_ADDR_LOW 0x0A0000 /* Lowest address = 640 Kbyte */
#define SI2_ISA_ADDR_HIGH 0xFF8000 /* Highest address = 16Mbyte - 32Kbyte */
#define SI2_ISA_ADDR_STEP SI2_ISA_WINDOW_LEN/* ISA board address step */
#define SI2_ISA_IRQ_MASK 0x9800 /* IRQs 15,12,11 */
/* ISA board, register definitions... */
#define SI2_ISA_ID_BASE 0x7FF8 /* READ: Board ID string */
#define SI2_ISA_RESET SI2_ISA_ID_BASE /* WRITE: Host Reset */
#define SI2_ISA_IRQ11 (SI2_ISA_ID_BASE+1) /* WRITE: Set IRQ11 */
#define SI2_ISA_IRQ12 (SI2_ISA_ID_BASE+2) /* WRITE: Set IRQ12 */
#define SI2_ISA_IRQ15 (SI2_ISA_ID_BASE+3) /* WRITE: Set IRQ15 */
#define SI2_ISA_IRQSET (SI2_ISA_ID_BASE+4) /* WRITE: Set Host Interrupt */
#define SI2_ISA_INTCLEAR (SI2_ISA_ID_BASE+5) /* WRITE: Enable Host Interrupt */
#define SI2_ISA_IRQ11_SET 0x10
#define SI2_ISA_IRQ11_CLEAR 0x00
#define SI2_ISA_IRQ12_SET 0x10
#define SI2_ISA_IRQ12_CLEAR 0x00
#define SI2_ISA_IRQ15_SET 0x10
#define SI2_ISA_IRQ15_CLEAR 0x00
#define SI2_ISA_INTCLEAR_SET 0x10
#define SI2_ISA_INTCLEAR_CLEAR 0x00
#define SI2_ISA_IRQSET_CLEAR 0x10
#define SI2_ISA_IRQSET_SET 0x00
#define SI2_ISA_RESET_SET 0x00
#define SI2_ISA_RESET_CLEAR 0x10
/* PCI board details... */
#define SI2_PCI_WINDOW_LEN 0x100000 /* 1 Mbyte memory window */
/* PCI board register definitions... */
#define SI2_PCI_SET_IRQ 0x40001 /* Set Host Interrupt */
#define SI2_PCI_RESET 0xC0001 /* Host Reset */
/*****************************************************************************
****************************** ******************************
****************************** Phase 3 T225 ******************************
****************************** ******************************
*****************************************************************************/
/* General board details... */
#define SX_WINDOW_LEN 64*1024 /* 64 Kbyte memory window */
/* ISA board details... */
#define SX_ISA_ADDR_LOW 0x0A0000 /* Lowest address = 640 Kbyte */
#define SX_ISA_ADDR_HIGH 0xFF8000 /* Highest address = 16Mbyte - 32Kbyte */
#define SX_ISA_ADDR_STEP SX_WINDOW_LEN /* ISA board address step */
#define SX_ISA_IRQ_MASK 0x9E00 /* IRQs 15,12,11,10,9 */
/* Hardware register definitions... */
#define SX_EVENT_STATUS 0x7800 /* READ: T225 Event Status */
#define SX_EVENT_STROBE 0x7800 /* WRITE: T225 Event Strobe */
#define SX_EVENT_ENABLE 0x7880 /* WRITE: T225 Event Enable */
#define SX_VPD_ROM 0x7C00 /* READ: Vital Product Data ROM */
#define SX_CONFIG 0x7C00 /* WRITE: Host Configuration Register */
#define SX_IRQ_STATUS 0x7C80 /* READ: Host Interrupt Status */
#define SX_SET_IRQ 0x7C80 /* WRITE: Set Host Interrupt */
#define SX_RESET_STATUS 0x7D00 /* READ: Host Reset Status */
#define SX_RESET 0x7D00 /* WRITE: Host Reset */
#define SX_RESET_IRQ 0x7D80 /* WRITE: Reset Host Interrupt */
/* SX_VPD_ROM definitions... */
#define SX_VPD_SLX_ID1 0x00
#define SX_VPD_SLX_ID2 0x01
#define SX_VPD_HW_REV 0x02
#define SX_VPD_HW_ASSEM 0x03
#define SX_VPD_UNIQUEID4 0x04
#define SX_VPD_UNIQUEID3 0x05
#define SX_VPD_UNIQUEID2 0x06
#define SX_VPD_UNIQUEID1 0x07
#define SX_VPD_MANU_YEAR 0x08
#define SX_VPD_MANU_WEEK 0x09
#define SX_VPD_IDENT 0x10
#define SX_VPD_IDENT_STRING "JET HOST BY KEV#"
/* SX unique identifiers... */
#define SX_UNIQUEID_MASK 0xF0
#define SX_ISA_UNIQUEID1 0x20
#define SX_PCI_UNIQUEID1 0x50
/* SX_CONFIG definitions... */
#define SX_CONF_BUSEN 0x02 /* Enable T225 memory and I/O */
#define SX_CONF_HOSTIRQ 0x04 /* Enable board to host interrupt */
/* SX bootstrap... */
#define SX_BOOTSTRAP "\x28\x20\x21\x02\x60\x0a"
#define SX_BOOTSTRAP_SIZE 6
#define SX_BOOTSTRAP_ADDR (0x8000-SX_BOOTSTRAP_SIZE)
/*****************************************************************************
********************************** **********************************
********************************** EISA **********************************
********************************** **********************************
*****************************************************************************/
#define SI2_EISA_OFF 0x42
#define SI2_EISA_VAL 0x01
#define SI2_EISA_WINDOW_LEN 0x10000
/*****************************************************************************
*********************************** **********************************
*********************************** PCI **********************************
*********************************** **********************************
*****************************************************************************/
/* General definitions... */
#define SPX_VENDOR_ID 0x11CB /* Assigned by the PCI SIG */
#define SPX_DEVICE_ID 0x4000 /* SI/XIO boards */
#define SPX_PLXDEVICE_ID 0x2000 /* SX boards */
#define SPX_SUB_VENDOR_ID SPX_VENDOR_ID /* Same as vendor id */
#define SI2_SUB_SYS_ID 0x400 /* Phase 2 (Z280) board */
#define SX_SUB_SYS_ID 0x200 /* Phase 3 (t225) board */
#endif /*_sxboards_h */
/* End of SXBOARDS.H */