test: ppcdef.h Source File

Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

# ppcdef.h

Go to the documentation of this file.

    00001 /*++ BUILD Version: 0005    // Increment this if a change has global effects
    00002
    00003 Copyright (c) 1990  Microsoft Corporation
    00004
    00005 Module Name:
    00006
    00007     ppcdef.h
    00008
    00009 Abstract:
    00010
    00011     This module is the header file that describes hardware addresses
    00012     for a Power PC system.
    00013
    00014 Author:
    00015
    00016     David N. Cutler (davec) 26-Nov-1990
    00017
    00018 Revision History:
    00019
    00020     Jim Wooldridge (jimw@austin.vnet.ibm.com) PowerPC port
    00021
    00022 --*/
    00023
    00024
    00025 #ifndef _PPCDEF_
    00026 #define _PPCDEF_
    00027
    00028 //
    00029 // Define physical base addresses for system mapping.
    00030 //
    00031
    00032 #define VIDEO_MEMORY_PHYSICAL_BASE 0x000A0000 // physical base of video memory
    00033 #define VIDEO_CONTROL_PHYSICAL_BASE 0x00000000 // physical base of video control
    00034 #define CURSOR_CONTROL_PHYSICAL_BASE 0x00000000 // physical base of cursor control
    00035 #define SCSI_PHYSICAL_BASE     0x00000000  // physical base os SCSI control
    00036 #define FLOPPY_PHYSICAL_BASE   0x000003F0  // physical base of floppy control
    00037 #define RTCLOCK_PHYSICAL_BASE  0x00000071  // physical base of realtime clock
    00038 #define KEYBOARD_PHYSICAL_BASE 0x00000060  // physical base of keyboard control
    00039 #define MOUSE_PHYSICAL_BASE    0x00000060  // physical base of mouse control
    00040 #define SERIAL0_PHYSICAL_BASE  0x000003f8  // physical base of serial port 0
    00041 #define SERIAL1_PHYSICAL_BASE  0x000002f8  // physical base of serial port 1
    00042 #define PARALLEL_PHYSICAL_BASE 0x000003bc  // physical base of parallel port
    00043 #define NVRAM_PHYSICAL_BASE    0x00000074  // physical base of nonvolatile RAM
    00044 #define SOUND_PHYSICAL_BASE    0x00000830  // physical base of sound control
    00045
    00046
    00047 #define PCI_MEMORY_PHYSICAL_BASE   0xC0000000 // physical base of PCI Memory space
    00048
    00049 //
    00050 // Define the size of the DMA translation table.
    00051 //
    00052
    00053 #define DMA_TRANSLATION_LIMIT 0x1000    // translation table limit
    00054
    00055 //
    00056 // DMA channel assignments
    00057 //
    00058
    00059 #define FLOPPY_CHANNEL    0x2             // Floppy DMA channel
    00060 #define CASCADE_CHANNEL   0x4             //
    00061 #define AUDIO_PLAYBACK    0x6             // Sound playback data
    00062 #define AUDIO_CAPTURE     0x7             // Sound Capture Data
    00063
    00064
    00065
    00066 //
    00067 // Define system time increment value.
    00068 //
    00069
    00070 #define MAXIMUM_INCREMENT      100000             // 10ms.
    00071 #define MINIMUM_INCREMENT       10000             // 1ms.
    00072
    00073
    00074 // begin_ntddk begin_nthal
    00075 //
    00076 // Interrupt Request Level definitions
    00077 //
    00078
    00079 #define PASSIVE_LEVEL    0          // Passive release level
    00080 #define LOW_LEVEL        0          // Lowest interrupt level
    00081 #define APC_LEVEL        1          // APC interrupt level
    00082 #define DISPATCH_LEVEL   2          // Dispatcher level
    00083
    00084 #define PROFILE_LEVEL   27          // timer used for profiling.
    00085 #define CLOCK1_LEVEL    28          // Interval clock 1 level - Not used on x86
    00086 #define CLOCK2_LEVEL    28          // Interval clock 2 level
    00087 #define IPI_LEVEL       29          // Interprocessor interrupt level
    00088 #define POWER_LEVEL     30          // Power failure level
    00089 #define HIGH_LEVEL      31           // Highest interrupt level
    00090 // end_ntddk
    00091
    00092 //
    00093 // Define PPC interrupt levels IRQL's
    00094 //
    00095
    00096 #define MAXIMUM_DEVICE_LEVEL    27
    00097 #define DECREMENTER_LEVEL       CLOCK2_LEVEL
    00098 #define MACHINE_CHECK_LEVEL     HIGH_LEVEL
    00099
    00100
    00101
    00102 //
    00103 // Define kernel dispatch vectors
    00104 //
    00105 #define PMI_VECTOR                3
    00106 #define MACHINE_CHECK_VECTOR      4
    00107 #define EXTERNAL_INTERRUPT_VECTOR 5
    00108 #define DECREMENT_VECTOR          7
    00109
    00110
    00111 //
    00112 // Define device interrupt vectors.
    00113 //
    00114
    00115 #define DEVICE_VECTORS 32
    00116
    00117 #define PROFILE_VECTOR  (0 + DEVICE_VECTORS)
    00118
    00119
    00120 #define TIMER_VECTOR      0
    00121 #define KEYBOARD_VECTOR   1               // Keyboard device interrupt vector
    00122 #define CASCADE_VECTOR    2               // Cascade interrupt vector
    00123 #define SERIAL1_VECTOR    3               // Serial device 2 interrupt vector
    00124 #define SERIAL0_VECTOR    4               // Serial device 1 interrupt vector
    00125 #define PARALLEL_VECTOR   5               // Parallel device interrupt vector
    00126 #define FLOPPY_VECTOR     6               // Floppy device interrupt vector
    00127 #define PARALLEL2_VECTOR  7               // Parallel device 2 interrupt vector
    00128 #define SHORT_INT_VECTOR  7               // Default for short interrupts
    00129 #define RTC_VECTOR        8               // Real time clock interrupt vector
    00130 #define ISA_IRQ9_VECTOR   9               // ISA vector
    00131 #define SOUND_VECTOR      10              // Sound device interrupt vector
    00132 #define ISA_IRQ11_VECTOR  11              // ISA vector
    00133 #define MOUSE_VECTOR      12              // Mouse device interrupt vector
    00134 #define SCSI_VECTOR       13              // SCSI device interrupt vector
    00135 #define ISA_IRQ14_VECTOR  14              // ISA vector
    00136 #define PCI_VECTOR        15              // PCI interrupt vector
    00137
    00138 #define MAXIMUM_DEVICE_VECTOR (15 + DEVICE_VECTORS) // maximum SIO vector
    00139
    00140
    00141 //
    00142 // Define translation table entry structure.
    00143 //
    00144
    00145
    00146 typedef struct _TRANSLATION_ENTRY {
    00147     PVOID VirtualAddress;
    00148     ULONG PhysicalAddress;
    00149     ULONG Index;
    00150 } TRANSLATION_ENTRY, *PTRANSLATION_ENTRY;
    00151
    00152
    00153 #endif // _PPCDEF_
    00154