blob: ae5e174aa1474f73ed59579a3ae1cd0e4d748bc9 (
plain) (
blame)
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
|
/*++ BUILD Version: 0005 // Increment this if a change has global effects
Copyright (c) 1990 Microsoft Corporation
Module Name:
ppcdef.h
Abstract:
This module is the header file that describes hardware addresses
for a Power PC system.
Author:
David N. Cutler (davec) 26-Nov-1990
Revision History:
Jim Wooldridge (jimw@austin.vnet.ibm.com) PowerPC port
--*/
#ifndef _PPCDEF_
#define _PPCDEF_
//
// Define physical base addresses for system mapping.
//
#define VIDEO_MEMORY_PHYSICAL_BASE 0x000A0000 // physical base of video memory
#define VIDEO_CONTROL_PHYSICAL_BASE 0x00000000 // physical base of video control
#define CURSOR_CONTROL_PHYSICAL_BASE 0x00000000 // physical base of cursor control
#define SCSI_PHYSICAL_BASE 0x00000000 // physical base os SCSI control
#define FLOPPY_PHYSICAL_BASE 0x000003F0 // physical base of floppy control
#define RTCLOCK_PHYSICAL_BASE 0x00000071 // physical base of realtime clock
#define KEYBOARD_PHYSICAL_BASE 0x00000060 // physical base of keyboard control
#define MOUSE_PHYSICAL_BASE 0x00000060 // physical base of mouse control
#define SERIAL0_PHYSICAL_BASE 0x000003f8 // physical base of serial port 0
#define SERIAL1_PHYSICAL_BASE 0x000002f8 // physical base of serial port 1
#define PARALLEL_PHYSICAL_BASE 0x000003bc // physical base of parallel port
#define NVRAM_PHYSICAL_BASE 0x00000074 // physical base of nonvolatile RAM
#define SOUND_PHYSICAL_BASE 0x00000830 // physical base of sound control
#define PCI_MEMORY_PHYSICAL_BASE 0xC0000000 // physical base of PCI Memory space
//
// Define the size of the DMA translation table.
//
#define DMA_TRANSLATION_LIMIT 0x1000 // translation table limit
//
// DMA channel assignments
//
#define FLOPPY_CHANNEL 0x2 // Floppy DMA channel
#define CASCADE_CHANNEL 0x4 //
#define AUDIO_PLAYBACK 0x6 // Sound playback data
#define AUDIO_CAPTURE 0x7 // Sound Capture Data
//
// Define system time increment value.
//
#define MAXIMUM_INCREMENT 100000 // 10ms.
#define MINIMUM_INCREMENT 10000 // 1ms.
// begin_ntddk begin_nthal
//
// Interrupt Request Level definitions
//
#define PASSIVE_LEVEL 0 // Passive release level
#define LOW_LEVEL 0 // Lowest interrupt level
#define APC_LEVEL 1 // APC interrupt level
#define DISPATCH_LEVEL 2 // Dispatcher level
#define PROFILE_LEVEL 27 // timer used for profiling.
#define CLOCK1_LEVEL 28 // Interval clock 1 level - Not used on x86
#define CLOCK2_LEVEL 28 // Interval clock 2 level
#define IPI_LEVEL 29 // Interprocessor interrupt level
#define POWER_LEVEL 30 // Power failure level
#define HIGH_LEVEL 31 // Highest interrupt level
// end_ntddk
//
// Define PPC interrupt levels IRQL's
//
#define MAXIMUM_DEVICE_LEVEL 27
#define DECREMENTER_LEVEL CLOCK2_LEVEL
#define MACHINE_CHECK_LEVEL HIGH_LEVEL
//
// Define kernel dispatch vectors
//
#define PMI_VECTOR 3
#define MACHINE_CHECK_VECTOR 4
#define EXTERNAL_INTERRUPT_VECTOR 5
#define DECREMENT_VECTOR 7
//
// Define device interrupt vectors.
//
#define DEVICE_VECTORS 32
#define PROFILE_VECTOR (0 + DEVICE_VECTORS)
#define TIMER_VECTOR 0
#define KEYBOARD_VECTOR 1 // Keyboard device interrupt vector
#define CASCADE_VECTOR 2 // Cascade interrupt vector
#define SERIAL1_VECTOR 3 // Serial device 2 interrupt vector
#define SERIAL0_VECTOR 4 // Serial device 1 interrupt vector
#define PARALLEL_VECTOR 5 // Parallel device interrupt vector
#define FLOPPY_VECTOR 6 // Floppy device interrupt vector
#define PARALLEL2_VECTOR 7 // Parallel device 2 interrupt vector
#define SHORT_INT_VECTOR 7 // Default for short interrupts
#define RTC_VECTOR 8 // Real time clock interrupt vector
#define ISA_IRQ9_VECTOR 9 // ISA vector
#define SOUND_VECTOR 10 // Sound device interrupt vector
#define ISA_IRQ11_VECTOR 11 // ISA vector
#define MOUSE_VECTOR 12 // Mouse device interrupt vector
#define SCSI_VECTOR 13 // SCSI device interrupt vector
#define ISA_IRQ14_VECTOR 14 // ISA vector
#define PCI_VECTOR 15 // PCI interrupt vector
#define MAXIMUM_DEVICE_VECTOR (15 + DEVICE_VECTORS) // maximum SIO vector
//
// Define translation table entry structure.
//
typedef struct _TRANSLATION_ENTRY {
PVOID VirtualAddress;
ULONG PhysicalAddress;
ULONG Index;
} TRANSLATION_ENTRY, *PTRANSLATION_ENTRY;
#endif // _PPCDEF_
|