test: duodef.h Source File

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

# duodef.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     duodef.h
    00008
    00009 Abstract:
    00010
    00011     This module is the header file that describes hardware addresses
    00012     for the Duo system.
    00013
    00014 Author:
    00015
    00016     Lluis Abello (lluis)  7-Apr-1993
    00017
    00018 Revision History:
    00019
    00020 --*/
    00021
    00022 #ifndef _DUODEF_
    00023 #define _DUODEF_
    00024
    00025 //
    00026 // Define physical base addresses for system mapping.
    00027 //
    00028
    00029 #define VIDEO_MEMORY_PHYSICAL_BASE 0x40000000 // physical base of video memory
    00030 #define VIDEO_CONTROL_PHYSICAL_BASE 0x60000000 // physical base of video control
    00031 #define CURSOR_CONTROL_PHYSICAL_BASE 0x60008000 // physical base of cursor control
    00032 #define VIDEO_ID_PHYSICAL_BASE 0x60010000 // physical base of video id register
    00033 #define VIDEO_RESET_PHYSICAL_BASE 0x60020000 // physical base of reset register
    00034 #define DEVICE_PHYSICAL_BASE 0x80000000 // physical base of device space
    00035 #define NET_PHYSICAL_BASE 0x80001000    // physical base of ethernet control
    00036 #define SCSI1_PHYSICAL_BASE 0x80002000  // physical base of SCSI1 control
    00037 #define SCSI2_PHYSICAL_BASE 0x80003000  // physical base of SCSI2 control
    00038 #define RTCLOCK_PHYSICAL_BASE 0x80004000 // physical base of realtime clock
    00039 #define KEYBOARD_PHYSICAL_BASE 0x80005000 // physical base of keyboard control
    00040 #define MOUSE_PHYSICAL_BASE 0x80005000  // physical base of mouse control
    00041 #define SERIAL0_PHYSICAL_BASE 0x80006000 // physical base of serial port 0
    00042 #define SERIAL1_PHYSICAL_BASE 0x80007000 // physical base of serial port 1
    00043 #define PARALLEL_PHYSICAL_BASE 0x80008000 // physical base of parallel port
    00044 #define EISA_CONTROL_PHYSICAL_BASE 0x90000000 // physical base of EISA control
    00045 #define EISA_MEMORY_PHYSICAL_BASE 0x91000000 // physical base of EISA memory
    00046 #define EISA_MEMORY_VERSION2_LOW 0x00000000 // physical base of EISA memory
    00047 #define EISA_MEMORY_VERSION2_HIGH 0x00000001 // with version 2 address chip
    00048 #define PROM_PHYSICAL_BASE 0xfff00000   // physical base of boot PROM
    00049 #define EEPROM_PHYSICAL_BASE 0xfff40000 // physical base of FLASH PROM
    00050
    00051 //
    00052 // Define virtual/physical base addresses for system mapping.
    00053 //
    00054
    00055 #define NVRAM_VIRTUAL_BASE 0xffff8000   // virtual base of nonvolatile RAM
    00056 #define NVRAM_PHYSICAL_BASE 0x80009000  // physical base of nonvolatile RAM
    00057
    00058 #define SP_VIRTUAL_BASE 0xffffa000      // virtual base of serial port 0
    00059 #define SP_PHYSICAL_BASE SERIAL0_PHYSICAL_BASE // physical base of serial port 0
    00060
    00061 #define DMA_VIRTUAL_BASE 0xffffc000     // virtual base of DMA control
    00062 #define DMA_PHYSICAL_BASE DEVICE_PHYSICAL_BASE // physical base of DMA control
    00063
    00064 #define INTERRUPT_VIRTUAL_BASE 0xffffd000 // virtual base of interrupt source
    00065 #define INTERRUPT_PHYSICAL_BASE 0x8000f000 // physical base of interrupt source
    00066
    00067 //
    00068 // Define the size of the DMA translation table.
    00069 //
    00070 #define DMA_TRANSLATION_LIMIT 0x2000    // translation table limit
    00071
    00072 //
    00073 // Define the maximum number of map registers allowed per allocation.
    00074 //
    00075
    00076 #define DMA_REQUEST_LIMIT (DMA_TRANSLATION_LIMIT/(sizeof(TRANSLATION_ENTRY) * 8))
    00077
    00078 //
    00079 // Define pointer to DMA control registers.
    00080 //
    00081
    00082 #define DMA_CONTROL ((volatile PDMA_REGISTERS)(DMA_VIRTUAL_BASE))
    00083
    00084 //
    00085 // Define DMA channel interrupt level.
    00086 //
    00087
    00088 #define DMA_LEVEL       3
    00089
    00090 //
    00091 // Define the minimum and maximum system time increment values in 100ns units.
    00092 //
    00093
    00094 #define MAXIMUM_INCREMENT (10 * 1000 * 10)
    00095 #define MINIMUM_INCREMENT (1 * 1000 * 10)
    00096
    00097 //
    00098 // Define Duo clock level.
    00099 //
    00100
    00101 #define CLOCK_LEVEL 6                   // Interval clock level
    00102 #define CLOCK_INTERVAL ((MAXIMUM_INCREMENT / (10 * 1000)) - 1) // Ms minus 1
    00103 #define CLOCK2_LEVEL CLOCK_LEVEL        //
    00104
    00105 //
    00106 // Define EISA device level.
    00107 //
    00108
    00109 #define EISA_DEVICE_LEVEL  5            // EISA bus interrupt level
    00110
    00111 //
    00112 // Define EISA device interrupt vectors.
    00113 //
    00114
    00115 #define EISA_VECTORS 32
    00116
    00117 #define IRQL10_VECTOR (10 + EISA_VECTORS) // Eisa interrupt request level 10
    00118 #define IRQL11_VECTOR (11 + EISA_VECTORS) // Eisa interrupt request level 11
    00119 #define IRQL12_VECTOR (12 + EISA_VECTORS) // Eisa interrupt request level 12
    00120 #define IRQL13_VECTOR (13 + EISA_VECTORS) // Eisa interrupt request level 13
    00121
    00122 #define MAXIMUM_EISA_VECTOR (15 + EISA_VECTORS) // maximum EISA vector
    00123
    00124 //
    00125 // Define I/O device interrupt level.
    00126 //
    00127
    00128 #define DEVICE_LEVEL 4                  // I/O device interrupt level
    00129
    00130 //
    00131 // Define device interrupt vectors.
    00132 //
    00133
    00134 #define DEVICE_VECTORS 16               // starting builtin device vector
    00135
    00136 #define PARALLEL_VECTOR (1 + DEVICE_VECTORS) // Parallel device interrupt vector
    00137 #define VIDEO_VECTOR (3 + DEVICE_VECTORS) // video device interrupt vector
    00138 #define NET_VECTOR (4 + DEVICE_VECTORS)  // ethernet device interrupt vector
    00139 #define SCSI1_VECTOR (5 + DEVICE_VECTORS) // SCSI device interrupt vector
    00140 #define SCSI2_VECTOR (6 + DEVICE_VECTORS) // SCSI device interrupt vector
    00141 #define KEYBOARD_VECTOR (7 + DEVICE_VECTORS) // Keyboard device interrupt vector
    00142 #define MOUSE_VECTOR (8 + DEVICE_VECTORS) // Mouse device interrupt vector
    00143 #define SERIAL0_VECTOR (9 + DEVICE_VECTORS) // Serial device 0 interrupt vector
    00144 #define SERIAL1_VECTOR (10 + DEVICE_VECTORS) // Serial device 1 interrupt vector
    00145
    00146 #define MAXIMUM_BUILTIN_VECTOR SERIAL1_VECTOR // maximum builtin vector
    00147
    00148 //
    00149 // Define the clock speed in megahetz for the SCSI protocol chips.
    00150 //
    00151
    00152 #define NCR_SCSI_CLOCK_SPEED 24
    00153
    00154 //
    00155 // PROM entry point definitions.
    00156 //
    00157 // Define base address of prom entry vector and prom entry macro.
    00158 //
    00159
    00160 #define PROM_BASE (KSEG1_BASE | 0x1fc00000)
    00161 #define PROM_ENTRY(x) (PROM_BASE + ((x) * 8))
    00162
    00163 #endif // _DUODEF_