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

jazzdma.h

Go to the documentation of this file.
00001 /*++ BUILD Version: 0001 // Increment this if a change has global effects 00002 00003 Copyright (c) 1990 Microsoft Corporation 00004 00005 Module Name: 00006 00007 jazzdma.h 00008 00009 Abstract: 00010 00011 This module is the header file that describes the DMA control register 00012 structure for the Jazz system. 00013 00014 Author: 00015 00016 David N. Cutler (davec) 13-Nov-1990 00017 00018 Revision History: 00019 00020 --*/ 00021 00022 #ifndef _JAZZDMA_ 00023 #define _JAZZDMA_ 00024 00025 // 00026 // Define DMA register structure. 00027 // 00028 00029 typedef struct _DMA_REGISTER { 00030 ULONG Long; 00031 ULONG Fill; 00032 } DMA_REGISTER, *PDMA_REGISTER; 00033 00034 // 00035 // Define DMA channel register structure. 00036 // 00037 00038 typedef struct _DMA_CHANNEL { 00039 DMA_REGISTER Mode; 00040 DMA_REGISTER Enable; 00041 DMA_REGISTER ByteCount; 00042 DMA_REGISTER Address; 00043 } DMA_CHANNEL, *PDMA_CHANNEL; 00044 00045 // 00046 // Define DMA control register structure. 00047 // 00048 00049 typedef volatile struct _DMA_REGISTERS { 00050 DMA_REGISTER Configuration; 00051 DMA_REGISTER RevisionLevel; 00052 DMA_REGISTER InvalidAddress; 00053 DMA_REGISTER TranslationBase; 00054 DMA_REGISTER TranslationLimit; 00055 DMA_REGISTER TranslationInvalidate; 00056 DMA_REGISTER CacheMaintenance; 00057 DMA_REGISTER RemoteFailedAddress; 00058 DMA_REGISTER MemoryFailedAddress; 00059 DMA_REGISTER PhysicalTag; 00060 DMA_REGISTER LogicalTag; 00061 DMA_REGISTER ByteMask; 00062 DMA_REGISTER BufferWindowLow; 00063 DMA_REGISTER BufferWindowHigh; 00064 DMA_REGISTER RemoteSpeed[16]; 00065 DMA_REGISTER ParityDiagnosticLow; 00066 DMA_REGISTER ParityDiagnosticHigh; 00067 DMA_CHANNEL Channel[8]; 00068 DMA_REGISTER InterruptSource; 00069 DMA_REGISTER Errortype; 00070 DMA_REGISTER RefreshRate; 00071 DMA_REGISTER RefreshCounter; 00072 DMA_REGISTER SystemSecurity; 00073 DMA_REGISTER InterruptInterval; 00074 DMA_REGISTER IntervalTimer; 00075 DMA_REGISTER InterruptAcknowledge; 00076 } DMA_REGISTERS, *PDMA_REGISTERS; 00077 00078 // 00079 // Define DMA channel mode register structure. 00080 // 00081 00082 typedef struct _DMA_CHANNEL_MODE { 00083 ULONG AccessTime : 3; 00084 ULONG TransferWidth : 2; 00085 ULONG InterruptEnable : 1; 00086 ULONG BurstMode : 1; 00087 ULONG FastDmaCycle : 1; 00088 ULONG Reserved1 : 24; 00089 } DMA_CHANNEL_MODE, *PDMA_CHANNEL_MODE; 00090 00091 // 00092 // Define access time values. 00093 // 00094 00095 #define ACCESS_40NS 0x0 // 40ns access time 00096 #define ACCESS_80NS 0x1 // 80ns access time 00097 #define ACCESS_120NS 0x2 // 120ns access time 00098 #define ACCESS_160NS 0x3 // 160ns access time 00099 #define ACCESS_200NS 0x4 // 200ns access time 00100 #define ACCESS_240NS 0x5 // 240ns access time 00101 #define ACCESS_280NS 0x6 // 280ns access time 00102 #define ACCESS_320NS 0x7 // 320ns access time 00103 00104 // 00105 // Define transfer width values. 00106 // 00107 00108 #define WIDTH_8BITS 0x1 // 8-bit transfer width 00109 #define WIDTH_16BITS 0x2 // 16-bit transfer width 00110 #define WIDTH_32BITS 0x3 // 32-bit transfer width 00111 00112 // 00113 // Define DMA channel enable register structure. 00114 // 00115 00116 typedef struct _DMA_CHANNEL_ENABLE { 00117 ULONG ChannelEnable : 1; 00118 ULONG TransferDirection : 1; 00119 ULONG Reserved1 : 6; 00120 ULONG TerminalCount : 1; 00121 ULONG MemoryError : 1; 00122 ULONG TranslationError : 1; 00123 ULONG Reserved2 : 21; 00124 } DMA_CHANNEL_ENABLE, *PDMA_CHANNEL_ENABLE; 00125 00126 // 00127 // Define transfer direction values. 00128 // 00129 00130 #define DMA_READ_OP 0x0 // read from device 00131 #define DMA_WRITE_OP 0x1 // write to device 00132 00133 // 00134 // Define interrupt source register structure. 00135 // 00136 00137 typedef struct _DMA_INTERRUPT_SOURCE { 00138 ULONG InterruptPending : 8; 00139 ULONG MemoryParityError : 1; 00140 ULONG R4000AddressError : 1; 00141 ULONG IoCacheFlushError : 1; 00142 ULONG reserved1 : 21; 00143 } DMA_INTERRUPT_SOURCE, *PDMA_INTERRUPT_SOURCE; 00144 00145 // 00146 // Define translation table entry structure. 00147 // 00148 00149 typedef volatile struct _TRANSLATION_ENTRY { 00150 ULONG PageFrame; 00151 ULONG Fill; 00152 } TRANSLATION_ENTRY, *PTRANSLATION_ENTRY; 00153 00154 #endif // _JAZZDMA_

Generated on Sat May 15 19:40:32 2004 for test by doxygen 1.3.7