00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
#ifndef _DUODEF_
00023
#define _DUODEF_
00024
00025
00026
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
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
00069
00070 #define DMA_TRANSLATION_LIMIT 0x2000 // translation table limit
00071
00072
00073
00074
00075
00076 #define DMA_REQUEST_LIMIT (DMA_TRANSLATION_LIMIT/(sizeof(TRANSLATION_ENTRY) * 8))
00077
00078
00079
00080
00081
00082 #define DMA_CONTROL ((volatile PDMA_REGISTERS)(DMA_VIRTUAL_BASE))
00083
00084
00085
00086
00087
00088 #define DMA_LEVEL 3
00089
00090
00091
00092
00093
00094 #define MAXIMUM_INCREMENT (10 * 1000 * 10)
00095 #define MINIMUM_INCREMENT (1 * 1000 * 10)
00096
00097
00098
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
00107
00108
00109 #define EISA_DEVICE_LEVEL 5 // EISA bus interrupt level
00110
00111
00112
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
00126
00127
00128 #define DEVICE_LEVEL 4 // I/O device interrupt level
00129
00130
00131
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
00150
00151
00152 #define NCR_SCSI_CLOCK_SPEED 24
00153
00154
00155
00156
00157
00158
00159
00160 #define PROM_BASE (KSEG1_BASE | 0x1fc00000)
00161 #define PROM_ENTRY(x) (PROM_BASE + ((x) * 8))
00162
00163
#endif // _DUODEF_