|
|
1.1 root 1: /*++ BUILD Version: 0005 // Increment this if a change has global effects
2:
3: Copyright (c) 1990 Microsoft Corporation
4:
5: Module Name:
6:
7: jazzdef.h
8:
9: Abstract:
10:
11: This module is the header file that describes hardware addresses
12: for the Jazz system.
13:
14: Author:
15:
16: David N. Cutler (davec) 26-Nov-1990
17:
18: Revision History:
19:
20: --*/
21:
22: #ifndef _JAZZDEF_
23: #define _JAZZDEF_
24:
25: //
26: // Define physical base addresses for system mapping.
27: //
28:
29: #define VIDEO_MEMORY_PHYSICAL_BASE 0x40000000 // physical base of video memory
30: #define VIDEO_CONTROL_PHYSICAL_BASE 0x60000000 // physical base of video control
31: #define CURSOR_CONTROL_PHYSICAL_BASE 0x60008000 // physical base of cursor control
32: #define VIDEO_ID_PHYSICAL_BASE 0x60010000 // physical base of video id register
33: #define VIDEO_RESET_PHYSICAL_BASE 0x60020000 // physical base of reset register
34: #define DEVICE_PHYSICAL_BASE 0x80000000 // physical base of device space
35: #define NET_PHYSICAL_BASE 0x80001000 // physical base of ethernet control
36: #define SCSI_PHYSICAL_BASE 0x80002000 // physical base os SCSI control
37: #define FLOPPY_PHYSICAL_BASE 0x80003000 // physical base of floppy control
38: #define RTCLOCK_PHYSICAL_BASE 0x80004000 // physical base of realtime clock
39: #define KEYBOARD_PHYSICAL_BASE 0x80005000 // physical base of keyboard control
40: #define MOUSE_PHYSICAL_BASE 0x80005000 // physical base of mouse control
41: #define SERIAL0_PHYSICAL_BASE 0x80006000 // physical base of serial port 0
42: #define SERIAL1_PHYSICAL_BASE 0x80007000 // physical base of serial port 1
43: #define PARALLEL_PHYSICAL_BASE 0x80008000 // physical base of parallel port
44: #define NVRAM_PHYSICAL_BASE 0x80009000 // physical base of nonvolatile RAM
45: #define SOUND_PHYSICAL_BASE 0x8000C000 // physical base of sound control
46: #define EISA_CONTROL_PHYSICAL_BASE 0x90000000 // physical base of EISA control
47: #define EISA_MEMORY_PHYSICAL_BASE 0x91000000 // physical base of EISA memory
48: #define EISA_MEMORY_VERSION2_LOW 0x00000000 // physical base of EISA memory
49: #define EISA_MEMORY_VERSION2_HIGH 0x00000001 // with version 2 address chip
50: #define PROM_PHYSICAL_BASE 0xfff00000 // physical base of boot PROM
51:
52: //
53: // Define virtual/physical base addresses for system mapping.
54: //
55:
56: #define SP_VIRTUAL_BASE 0xffffa000 // virtual base of serial port 0
57: #define SP_PHYSICAL_BASE SERIAL0_PHYSICAL_BASE // physical base of serial port 0
58:
59: #define DMA_VIRTUAL_BASE 0xffffc000 // virtual base of DMA control
60: #define DMA_PHYSICAL_BASE DEVICE_PHYSICAL_BASE // physical base of DMA control
61:
62: #define INTERRUPT_VIRTUAL_BASE 0xffffd000 // virtual base of interrupt source
63: #define INTERRUPT_PHYSICAL_BASE 0xf0000000 // physical base of interrupt source
64:
65: //
66: // Define the size of the DMA translation table.
67: //
68: #define DMA_TRANSLATION_LIMIT 0x2000 // translation table limit
69:
70: //
71: // Define pointer to DMA control registers.
72: //
73:
74: #define DMA_CONTROL ((volatile PDMA_REGISTERS)(DMA_VIRTUAL_BASE))
75:
76: //
77: // Define DMA device channels.
78: //
79:
80: #define SCSI_CHANNEL 0x0 // SCSI DMA channel number
81: #define FLOPPY_CHANNEL 0x1 // Floppy DMA channel
82: #define SOUND_CHANNEL_A 0x2 // Sound DMA channel A
83: #define SOUND_CHANNEL_B 0x3 // Sound DMA channel B
84:
85: //
86: // Define DMA channel interrupt level.
87: //
88:
89: #define DMA_LEVEL 3
90:
91: //
92: // Define EISA NMI interrupt level.
93: //
94:
95: #define EISA_NMI_LEVEL 6
96:
97: //
98: // Define system time increment value.
99: //
100:
101: #define TIME_INCREMENT (10 * 1000 * 10) // Time increment in 100ns units
102:
103: //
104: // Define Jazz clock levels.
105: //
106:
107: #define CLOCK_LEVEL 7 // Interval clock level
108: #define CLOCK_INTERVAL ((TIME_INCREMENT / (10 * 1000)) - 1) // Ms minus 1
109:
110: #if defined(R3000)
111:
112: #define EISA_DEVICE_LEVEL 8 // EISA bus interrupt level
113:
114: #endif
115:
116: #if defined(R4000)
117:
118: #define EISA_DEVICE_LEVEL 5 // EISA bus interrupt level
119:
120: #endif
121:
122: #define CLOCK2_LEVEL CLOCK_LEVEL //
123:
124: //
125: // Define EISA device interrupt vectors.
126: //
127:
128: #define EISA_VECTORS 32
129:
130: #define IRQL10_VECTOR (10 + EISA_VECTORS) // Eisa interrupt request level 10
131: #define IRQL11_VECTOR (11 + EISA_VECTORS) // Eisa interrupt request level 11
132: #define IRQL12_VECTOR (12 + EISA_VECTORS) // Eisa interrupt request level 12
133: #define IRQL13_VECTOR (13 + EISA_VECTORS) // Eisa interrupt request level 13
134:
135: #define MAXIMUM_EISA_VECTOR (15 + EISA_VECTORS) // maximum EISA vector
136:
137: //
138: // Define I/O device interrupt level.
139: //
140:
141: #define DEVICE_LEVEL 4 // I/O device interrupt level
142:
143: //
144: // Define device interrupt vectors.
145: //
146:
147: #define DEVICE_VECTORS 16 // starting builtin device vector
148:
149: #define PARALLEL_VECTOR (1 + DEVICE_VECTORS) // Parallel device interrupt vector
150: #define FLOPPY_VECTOR (2 + DEVICE_VECTORS) // Floppy device interrupt vector
151: #define SOUND_VECTOR (3 + DEVICE_VECTORS) // Sound device interrupt vector
152: #define VIDEO_VECTOR (4 + DEVICE_VECTORS) // video device interrupt vector
153: #define NET_VECTOR (5 + DEVICE_VECTORS) // ethernet device interrupt vector
154: #define SCSI_VECTOR (6 + DEVICE_VECTORS) // SCSI device interrupt vector
155: #define KEYBOARD_VECTOR (7 + DEVICE_VECTORS) // Keyboard device interrupt vector
156: #define MOUSE_VECTOR (8 + DEVICE_VECTORS) // Mouse device interrupt vector
157: #define SERIAL0_VECTOR (9 + DEVICE_VECTORS) // Serial device 0 interrupt vector
158: #define SERIAL1_VECTOR (10 + DEVICE_VECTORS) // Serial device 1 interrupt vector
159:
160: #define MAXIMUM_BUILTIN_VECTOR SERIAL1_VECTOR // maximum builtin vector
161:
162: //
163: // Define the clock speed in megahetz for the SCSI protocol chips.
164: //
165:
166: #define NCR_SCSI_CLOCK_SPEED 24
167: #define EMULEX_SCSI_CLOCK_SPEED 40
168:
169: //
170: // PROM entry point definitions.
171: //
172: // Define base address of prom entry vector and prom entry macro.
173: //
174:
175: #define PROM_BASE (KSEG1_BASE | 0x1fc00000)
176: #define PROM_ENTRY(x) (PROM_BASE + ((x) * 8))
177:
178:
179: #endif // _JAZZDEF_
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.