diff options
author | Adam <you@example.com> | 2020-05-17 05:51:50 +0200 |
---|---|---|
committer | Adam <you@example.com> | 2020-05-17 05:51:50 +0200 |
commit | e611b132f9b8abe35b362e5870b74bce94a1e58e (patch) | |
tree | a5781d2ec0e085eeca33cf350cf878f2efea6fe5 /private/ntos/inc/ppcdef.h | |
download | NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.gz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.bz2 NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.lz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.xz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.zst NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.zip |
Diffstat (limited to 'private/ntos/inc/ppcdef.h')
-rw-r--r-- | private/ntos/inc/ppcdef.h | 153 |
1 files changed, 153 insertions, 0 deletions
diff --git a/private/ntos/inc/ppcdef.h b/private/ntos/inc/ppcdef.h new file mode 100644 index 000000000..ae5e174aa --- /dev/null +++ b/private/ntos/inc/ppcdef.h @@ -0,0 +1,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_ |