/*++ 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_