00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
#ifndef _AXP21066_
00019
#define _AXP21066_
00020
00021
00022
#ifndef CORE_21064
00023
#define CORE_21064
00024
00025
00026
00027
00028
00029
00030
00031 #define PROCESSOR_BUS_21064 21064
00032
00033
00034
00035
00036
00037 #define ITB_ENTRIES_21064 12
00038 #define DTB_ENTRIES_21064 32
00039 #define PAL_TEMPS_21064 32
00040
00041
00042
00043
00044
00045
typedef struct _IETEntry_21064{
00046 ULONG
ApcEnable: 1;
00047 ULONG
DispatchEnable: 1;
00048 ULONG
PerformanceCounter0Enable: 1;
00049 ULONG
PerformanceCounter1Enable: 1;
00050 ULONG
CorrectableReadEnable: 1;
00051 ULONG
Irq0Enable: 1;
00052 ULONG
Irq1Enable: 1;
00053 ULONG
Irq2Enable: 1;
00054 ULONG
Irq3Enable: 1;
00055 ULONG
Irq4Enable: 1;
00056 ULONG
Irq5Enable: 1;
00057 ULONG
Reserved: 21;
00058 }
IETEntry_21064, *
PIETEntry_21064;
00059
00060
00061
00062
00063
00064
00065
00066 #define IRQLMASK_HDW_SUBTABLE_21064 (8)
00067 #define IRQLMASK_HDW_SUBTABLE_21064_ENTRIES (64)
00068
00069 #define IRQLMASK_SFW_SUBTABLE_21064 (0)
00070 #define IRQLMASK_SFW_SUBTABLE_21064_ENTRIES (4)
00071
00072 #define IRQLMASK_PC_SUBTABLE_21064 (4)
00073 #define IRQLMASK_PC_SUBTABLE_21064_ENTRIES (4)
00074
00075
00076
00077
00078
00079
00080
typedef struct _COUNTERS_21064{
00081 LARGE_INTEGER
MachineCheckCount;
00082 LARGE_INTEGER
ArithmeticExceptionCount;
00083 LARGE_INTEGER
InterruptCount;
00084 LARGE_INTEGER
ItbMissCount;
00085 LARGE_INTEGER
NativeDtbMissCount;
00086 LARGE_INTEGER
PalDtbMissCount;
00087 LARGE_INTEGER
ItbAcvCount;
00088 LARGE_INTEGER
DtbAcvCount;
00089 LARGE_INTEGER
UnalignedCount;
00090 LARGE_INTEGER
OpcdecCount;
00091 LARGE_INTEGER
FenCount;
00092 LARGE_INTEGER
ItbTnvCount;
00093 LARGE_INTEGER
DtbTnvCount;
00094 LARGE_INTEGER
PteMissCount;
00095 LARGE_INTEGER
KspMissCount;
00096 LARGE_INTEGER
PdeTnvCount;
00097 LARGE_INTEGER
HaltCount;
00098 LARGE_INTEGER
RestartCount;
00099 LARGE_INTEGER
DrainaCount;
00100 LARGE_INTEGER
InitpalCount;
00101 LARGE_INTEGER
WrentryCount;
00102 LARGE_INTEGER
SwpirqlCount;
00103 LARGE_INTEGER
RdirqlCount;
00104 LARGE_INTEGER
DiCount;
00105 LARGE_INTEGER
EiCount;
00106 LARGE_INTEGER
SwppalCount;
00107 LARGE_INTEGER
SsirCount;
00108 LARGE_INTEGER
CsirCount;
00109 LARGE_INTEGER
RfeCount;
00110 LARGE_INTEGER
RetsysCount;
00111 LARGE_INTEGER
SwpctxCount;
00112 LARGE_INTEGER
SwpprocessCount;
00113 LARGE_INTEGER
RdmcesCount;
00114 LARGE_INTEGER
WrmcesCount;
00115 LARGE_INTEGER
TbiaCount;
00116 LARGE_INTEGER
TbisCount;
00117 LARGE_INTEGER
DtbisCount;
00118 LARGE_INTEGER
RdkspCount;
00119 LARGE_INTEGER
SwpkspCount;
00120 LARGE_INTEGER
RdpsrCount;
00121 LARGE_INTEGER
RdpcrCount;
00122 LARGE_INTEGER
RdthreadCount;
00123 LARGE_INTEGER
RdcountersCount;
00124 LARGE_INTEGER
RdstateCount;
00125 LARGE_INTEGER
WrperfmonCount;
00126 LARGE_INTEGER
InitpcrCount;
00127 LARGE_INTEGER
BptCount;
00128 LARGE_INTEGER
CallsysCount;
00129 LARGE_INTEGER
ImbCount;
00130 LARGE_INTEGER
GentrapCount;
00131 LARGE_INTEGER
RdtebCount;
00132 LARGE_INTEGER
KbptCount;
00133 LARGE_INTEGER
CallkdCount;
00134 LARGE_INTEGER
TbisasnCount;
00135 LARGE_INTEGER
Misc1Count;
00136 LARGE_INTEGER
Misc2Count;
00137 LARGE_INTEGER
Misc3Count;
00138 }
COUNTERS_21064, *
PCOUNTERS_21064;
00139
00140 typedef enum _AXP21064_PCCOUNTER{
00141
Ev4PerformanceCounter0 = 0,
00142
Ev4PerformanceCounter1 = 1
00143 }
AXP21064_PCCOUNTER, *
PAXP21064_PCCOUNTER;
00144
00145 typedef enum _AXP21064_PCMUXCONTROL{
00146
Ev4TotalIssues = 0x0,
00147
Ev4PipelineDry = 0x2,
00148
Ev4LoadInstruction = 0x4,
00149
Ev4PipelineFrozen = 0x6,
00150
Ev4BranchInstructions = 0x8,
00151
Ev4PalMode = 0xb,
00152
Ev4TotalCycles = 0xa,
00153
Ev4TotalNonIssues = 0xc,
00154
Ev4ExternalCounter0 = 0xe,
00155
Ev4DcacheMiss = 0x0,
00156
Ev4IcacheMiss = 0x1,
00157
Ev4DualIssues = 0x2,
00158
Ev4BranchMispredicts = 0x3,
00159
Ev4FPInstructions = 0x4,
00160
Ev4IntegerOperate = 0x5,
00161
Ev4StoreInstructions = 0x6,
00162
Ev4ExternalCounter1 = 0x7
00163 }
AXP21064_PCMUXCONTROL, *
PAXP21064_PCMUXCONTROL;
00164
00165 typedef enum _AXP21064_PCEVENTCOUNT{
00166
Ev4CountEvents2xx8 = 0x100,
00167
Ev4CountEvents2xx12 = 0x1000,
00168
Ev4CountEvents2xx16 = 0x10000
00169 }
AXP21064_PCEVENTCOUNT, *
PAXP21064_PCEVENTCOUNT;
00170
00171 typedef enum _AXP21064_EVENTCOUNT{
00172
Ev4EventCountHigh = 1,
00173
Ev4EventCountLow = 0
00174 }
AXP21064_EVENTCOUNT, *
PAXP21064_EVENTCOUNT;
00175
00176
00177
00178
00179
00180
00181
00182
00183
00184 typedef LARGE_INTEGER
ITB_PTE_21064;
00185 typedef ITB_PTE_21064 *
PITB_PTE_21064;
00186 typedef LARGE_INTEGER
DTB_PTE_21064;
00187 typedef DTB_PTE_21064 *
PDTB_PTE_21064;
00188
00189 #define PTE_FOR_21064_SHIFT 3
00190 #define PTE_FOW_21064_SHIFT 4
00191 #define PTE_KWE_21064_SHIFT 5
00192 #define PTE_EWE_21064_SHIFT 6
00193 #define PTE_SWE_21064_SHIFT 7
00194 #define PTE_UWE_21064_SHIFT 8
00195 #define PTE_KRE_21064_SHIFT 9
00196 #define PTE_ERE_21064_SHIFT 10
00197 #define PTE_SRE_21064_SHIFT 11
00198 #define PTE_URE_21064_SHIFT 12
00199 #define PTE_PFN_21064_SHIFT 13
00200 #define PTE_PFN_21064_SHIFTMASK 0x1FFFF
00201 #define PTE_ASM_21064_SHIFT 34
00202
00203 #define PTE_ALL_21064(itbpte) (itbpte)
00204 #define PTE_FOR_21064(itbpte) ( (itbpte.LowPart >> PTE_FOR_21064_SHIFT) & 1)
00205 #define PTE_FOW_21064(itbpte) ( (itbpte.LowPart >> PTE_FOW_21064_SHIFT) & 1)
00206 #define PTE_KWE_21064(itbpte) ( (itbpte.LowPart >> PTE_KWE_21064_SHIFT) & 1)
00207 #define PTE_EWE_21064(itbpte) ( (itbpte.LowPart >> PTE_EWE_21064_SHIFT) & 1)
00208 #define PTE_SWE_21064(itbpte) ( (itbpte.LowPart >> PTE_SWE_21064_SHIFT) & 1)
00209 #define PTE_UWE_21064(itbpte) ( (itbpte.LowPart >> PTE_UWE_21064_SHIFT) & 1)
00210 #define PTE_KRE_21064(itbpte) ( (itbpte.LowPart >> PTE_KRE_21064_SHIFT) & 1)
00211 #define PTE_ERE_21064(itbpte) ( (itbpte.LowPart >> PTE_ERE_21064_SHIFT) & 1)
00212 #define PTE_SRE_21064(itbpte) ( (itbpte.LowPart >> PTE_SRE_21064_SHIFT) & 1)
00213 #define PTE_URE_21064(itbpte) ( (itbpte.LowPart >> PTE_URE_21064_SHIFT) & 1)
00214 #define PTE_ASM_21064(itbpte) ( (itbpte.LowPart >> PTE_ASM_21064_SHIFT) & 1)
00215 #define PTE_PFN_21064(itbpte) ( (itbpte.LowPart >> PTE_PFN_21064_SHIFT) & PTE_PFN_21064_SHIFTMASK)
00216
00217
00218
00219
00220
00221 typedef LARGE_INTEGER
ICCSR_21064;
00222 typedef ICCSR_21064 *
PICCSR_21064;
00223
00224 #define ICCSR_PC0_21064_SHIFT 1
00225 #define ICCSR_PC1_21064_SHIFT 2
00226 #define ICCSR_PCMUX0_21064_SHIFT 9
00227 #define ICCSR_PCMUX0_21064_SHIFTMASK 0xF
00228 #define ICCSR_PCMUX1_21064_SHIFT 13
00229 #define ICCSR_PCMUX1_21064_SHIFTMASK 0x7
00230 #define ICCSR_PIPE_21064_SHIFT 16
00231 #define ICCSR_BPE_21064_SHIFT 17
00232 #define ICCSR_JSE_21064_SHIFT 18
00233 #define ICCSR_BHE_21064_SHIFT 19
00234 #define ICCSR_DI_21064_SHIFT 20
00235 #define ICCSR_HWE_21064_SHIFT 21
00236 #define ICCSR_MAP_21064_SHIFT 22
00237 #define ICCSR_FPE_21064_SHIFT 23
00238 #define ICCSR_ASN_21064_SHIFT 28
00239 #define ICCSR_ASN_21064_SHIFTMASK 0x3F
00240
00241 #define ICCSR_ALL_21064(iccsr) (iccsr)
00242 #define ICCSR_PC0_21064(iccsr) ( (iccsr.LowPart >> ICCSR_PC0_21064_SHIFT) & 1)
00243 #define ICCSR_PC1_21064(iccsr) ( (iccsr.LowPart >> ICCSR_PC1_21064_SHIFT) & 1)
00244 #define ICCSR_PCMUX0_21064(iccsr) \
00245
( (iccsr.LowPart >> ICCSR_PCMUX0_21064_SHIFT) & ICCSR_PCMUX0_21064_SHIFTMASK)
00246 #define ICCSR_PCMUX1_21064(iccsr) \
00247
( (iccsr.LowPart >> ICCSR_PCMUX1_21064_SHIFT) & ICCSR_PCMUX1_21064_SHIFTMASK)
00248 #define ICCSR_PIPE_21064(iccsr) ( (iccsr.LowPart >> ICCSR_PIPE_21064_SHIFT) & 1)
00249 #define ICCSR_BPE_21064(iccsr) ( (iccsr.LowPart >> ICCSR_BPE_21064_SHIFT) & 1)
00250 #define ICCSR_JSE_21064(iccsr) ( (iccsr.LowPart >> ICCSR_JSE_21064_SHIFT) & 1)
00251 #define ICCSR_BHE_21064(iccsr) ( (iccsr.LowPart >> ICCSR_BHE_21064_SHIFT) & 1)
00252 #define ICCSR_DI_21064(iccsr) ( (iccsr.LowPart >> ICCSR_DI_21064_SHIFT) & 1)
00253 #define ICCSR_HWE_21064(iccsr) ( (iccsr.LowPart >> ICCSR_HWE_21064_SHIFT) & 1)
00254 #define ICCSR_MAP_21064(iccsr) ( (iccsr.LowPart >> ICCSR_MAP_21064_SHIFT) & 1)
00255 #define ICCSR_FPE_21064(iccsr) ( (iccsr.LowPart >> ICCSR_FPE_21064_SHIFT) & 1)
00256 #define ICCSR_ASN_21064(iccsr) \
00257
(ULONG)( (iccsr.LowPart >> ICCSR_ASN_21064_SHIFT) & ICCSR_ASN_21064_SHIFTMASK)
00258
00259
00260
00261
00262
00263 typedef LARGE_INTEGER
PS_21064;
00264 typedef PS_21064 *
PPS_21064;
00265
00266 #define PS_CM0_21064_SHIFT 1
00267 #define PS_CM1_21064_SHIFT 34
00268
00269 #define PS_ALL_21064(ps) (ps)
00270 #define PS_CM_21064(ps) \
00271
( (((ps).LowPart >> PS_CM0_21064_SHIFT) & 1) || \
00272
(((ps).LowPart >> (PS_CM1_21064_SHIFT-1)) & 1) )
00273
00274
00275
00276
00277
00278 typedef LARGE_INTEGER
EXC_SUM_21064;
00279 typedef EXC_SUM_21064 *
PEXC_SUM_21064;
00280
00281 #define EXCSUM_SWC_21064_SHIFT 2
00282 #define EXCSUM_INV_21064_SHIFT 3
00283 #define EXCSUM_DZE_21064_SHIFT 4
00284 #define EXCSUM_FOV_21064_SHIFT 5
00285 #define EXCSUM_UNF_21064_SHIFT 6
00286 #define EXCSUM_INE_21064_SHIFT 7
00287 #define EXCSUM_IOV_21064_SHIFT 8
00288 #define EXCSUM_MSK_21064_SHIFT 33
00289
00290 #define EXCSUM_ALL_21064(excsum) (excsum)
00291 #define EXCSUM_SWC_21064(excsum) ((excsum.LowPart >> EXCSUM_SWC_21064_SHIFT) & 0x1)
00292 #define EXCSUM_INV_21064(excsum) ( (excsum.LowPart >> EXCSUM_INV_21064_SHIFT) & 0x1)
00293 #define EXCSUM_DZE_21064(excsum) ( (excsum.LowPart >> EXCSUM_DZE_21064_SHIFT) & 0x1)
00294 #define EXCSUM_FOV_21064(excsum) ( (excsum.LowPart >> EXCSUM_FOV_21064_SHIFT) & 0x1)
00295 #define EXCSUM_UNF_21064(excsum) ( (excsum.LowPart >> EXCSUM_UNF_21064_SHIFT) & 0x1)
00296 #define EXCSUM_INE_21064(excsum) ( (excsum.LowPart >> EXCSUM_INE_21064_SHIFT) & 0x1)
00297 #define EXCSUM_IOV_21064(excsum) ( (excsum.LowPart >> EXCSUM_IOV_21064_SHIFT) & 0x1)
00298 #define EXCSUM_MSK_21064(excsum) ( (excsum.LowPart >> EXCSUM_MSK_21064_SHIFT) & 0x1)
00299
00300
00301
00302
00303
00304 typedef LARGE_INTEGER
IRR_21064;
00305 typedef IRR_21064 *
PIRR_21064;
00306
00307 #define IRR_HWR_21064_SHIFT 1
00308 #define IRR_SWR_21064_SHIFT 2
00309 #define IRR_ATR_21064_SHIFT 3
00310 #define IRR_CRR_21064_SHIFT 4
00311 #define IRR_HIRR53_21064_SHIFT 5
00312 #define IRR_HIRR53_21064_SHIFTMASK 0x7
00313 #define IRR_PC1_21064_SHIFT 8
00314 #define IRR_PC0_21064_SHIFT 9
00315 #define IRR_HIRR20_21064_SHIFT 10
00316 #define IRR_HIRR20_21064_SHIFTMASK 0x7
00317 #define IRR_SLR_21064_SHIFT 13
00318 #define IRR_SIRR_21064_SHIFT 14
00319 #define IRR_SIRR_21064_SHIFTMASK 0x7FFF
00320 #define IRR_ASTRR_21064_SHIFT 29
00321 #define IRR_ASTRR_21064_SHIFTMASK 0xF
00322
00323 #define IRR_ALL_21064(irr) (irr)
00324 #define IRR_HWR_21064(irr) ( (irr.LowPart >> IRR_HWR_21064_SHIFT) & 0x1)
00325 #define IRR_SWR_21064(irr) ( (irr.LowPart >> IRR_SWR_21064_SHIFT) & 0x1)
00326 #define IRR_ATR_21064(irr) ( (irr.LowPart >> IRR_ATR_21064_SHIFT) & 0x1)
00327 #define IRR_CRR_21064(irr) ( (irr.LowPart >> IRR_CRR_21064_SHIFT) & 0x1)
00328 #define IRR_HIRR_21064(irr) \
00329
( ((irr.LowPart >> (IRR_HIRR53_21064_SHIFT-3)) & IRR_HIRR53_21064_SHIFTMASK) || \
00330
( (irr.LowPart >> IRR_HIRR20_21064_SHIFT) & IRR_HIRR20_21064_SHIFTMASK) )
00331 #define IRR_PC1_21064(irr) ( (irr.LowPart >> IRR_PC1_21064_SHIFT) & 0x1)
00332 #define IRR_PC0_21064(irr) ( (irr.LowPart >> IRR_PC0_21064_SHIFT) & 0x1)
00333 #define IRR_SLR_21064(irr) ( (irr.LowPart >> IRR_SLR_21064_SHIFT) & 0x1)
00334 #define IRR_SIRR_21064(irr) \
00335
( (irr.LowPart >> IRR_SIRR_21064_SHIFT) & IRR_SIRR_21064_SHIFTMASK)
00336 #define IRR_ASTRR_21064(irr) \
00337
( (irr.LowPart >> IRR_ASTRR_21064_SHIFT) & IRR_ASTRR_21064_SHIFTMASK)
00338
00339
00340
00341
00342
00343 typedef LARGE_INTEGER
IER_21064;
00344 typedef IER_21064 *
PIER_21064;
00345
00346 #define IER_CRR_21064_SHIFT 4
00347 #define IER_HIER53_21064_SHIFT 5
00348 #define IER_HIER53_21064_SHIFTMASK 0x7
00349 #define IER_PC1_21064_SHIFT 8
00350 #define IER_PC0_21064_SHIFT 9
00351 #define IER_HIER20_21064_SHIFT 10
00352 #define IER_HIER20_21064_SHIFTMASK 0x7
00353 #define IER_SLR_21064_SHIFT 13
00354 #define IER_SIER_21064_SHIFT 14
00355 #define IER_SIER_21064_SHIFTMASK 0x7FFF
00356 #define IER_ASTER_21064_SHIFT 29
00357 #define IER_ASTER_21064_SHIFTMASK 0xF
00358
00359 #define IER_ALL_21064(ier) (ier)
00360 #define IER_CRR_21064(ier) ( (ier.LowPart >> IER_CRR_21064_SHIFT) & 0x1)
00361 #define IER_HIER_21064(ier) \
00362
( ( (ier.LowPart >> (IER_HIER53_21064_SHIFT-3)) & IER_HIER53_21064_SHIFTMASK) || \
00363
( (ier.LowPart >> IER_HIER20_21064_SHIFT) & IER_HIER20_21064_SHIFTMASK) )
00364 #define IER_PC1_21064(ier) ( (ier.LowPart >> IER_PC1_21064_SHIFT) & 0x1)
00365 #define IER_PC0_21064(ier) ( (ier.LowPart >> IER_PC0_21064_SHIFT) & 0x1)
00366 #define IER_SLR_21064(ier) ( (ier.LowPart >> IER_SLR_21064_SHIFT) & 0x1)
00367 #define IER_SIER_21064(ier) \
00368
( (ier.LowPart >> IER_SIER_21064_SHIFT) & IER_SIER_21064_SHIFTMASK)
00369 #define IER_ASTER_21064(ier) \
00370
( (ier.LowPart >> IER_ASTER_21064_SHIFT) & IER_ASTER_21064_SHIFTMASK)
00371
00372
00373
00374
00375
00376
typedef union _ABOX_CTL_21064{
00377
struct {
00378 ULONG
wb_dis: 1;
00379 ULONG
mchk_en: 1;
00380 ULONG
crd_en: 1;
00381 ULONG
ic_sbuf_en: 1;
00382 ULONG
spe_1: 1;
00383 ULONG
spe_2: 1;
00384 ULONG
emd_en: 1;
00385 ULONG
mbz1: 3;
00386 ULONG
dc_ena: 1;
00387 ULONG
dc_fhit: 1;
00388 } bits;
00389 LARGE_INTEGER
all;
00390 }
ABOX_CTL_21064, *
PABOX_CTL_21064;
00391
00392 #define ABOXCTL_ALL_21064(aboxctl) ((aboxctl).all)
00393 #define ABOXCTL_WBDIS_21064(aboxctl) ((aboxctl).bits.wb_dis)
00394 #define ABOXCTL_MCHKEN_21064(aboxctl) ((aboxctl).bits.mchk_en)
00395 #define ABOXCTL_CRDEN_21064(aboxctl) ((aboxctl).bits.crd_en)
00396 #define ABOXCTL_ICSBUFEN_21064(aboxctl) ((aboxctl).bits.ic_sbuf_en)
00397 #define ABOXCTL_SPE1_21064(aboxctl) ((aboxctl).bits.spe_1)
00398 #define ABOXCTL_SPE2_21064(aboxctl) ((aboxctl).bits.spe_2)
00399 #define ABOXCTL_EMDEN_21064(aboxctl) ((aboxctl).bits.emd_en)
00400 #define ABOXCTL_DCENA_21064(aboxctl) ((aboxctl).bits.dc_ena)
00401 #define ABOXCTL_DCFHIT_21064(aboxctl) ((aboxctl).bits.dc_fhit)
00402
00403
00404
00405
00406
00407
typedef union _MMCSR_21064{
00408
struct {
00409 ULONG
Wr: 1;
00410 ULONG
Acv: 1;
00411 ULONG
For: 1;
00412 ULONG
Fow: 1;
00413 ULONG
Ra: 5;
00414 ULONG
Opcode: 6;
00415 } bits;
00416 LARGE_INTEGER
all;
00417 }
MMCSR_21064, *
PMMCSR_21064;
00418
00419 #define MMCSR_ALL_21064(mmcsr) ((mmcsr).all)
00420 #define MMCSR_WR_21064(mmcsr) ((mmcsr).bits.Wr)
00421 #define MMCSR_ACV_21064(mmcsr) ((mmcsr).bits.Acv)
00422 #define MMCSR_FOR_21064(mmcsr) ((mmcsr).bits.For)
00423 #define MMCSR_FOW_21064(mmcsr) ((mmcsr).bits.Fow)
00424 #define MMCSR_RA_21064(mmcsr) ((mmcsr).bits.Ra)
00425 #define MMCSR_OPCODE_21064(mmcsr) ((mmcsr).bits.Opcode)
00426
00427
00428
00429
00430
typedef union _DC_STAT_21064{
00431
struct {
00432 ULONG
Reserved: 3;
00433 ULONG
DcHit: 1;
00434 ULONG
DCacheParityError: 1;
00435 ULONG
ICacheParityError: 1;
00436 } bits;
00437 LARGE_INTEGER
all;
00438 }
DC_STAT_21064, *
PDC_STAT_21064;
00439
00440 #define DCSTAT_ALL_21064(dcstat) ((dcstat).all)
00441 #define DCSTAT_DCHIT_21064(dcstat) ((dcstat).bits.DcHit)
00442 #define DCSTAT_DCPARITY_ERROR_21064(dcstat) ((dcstat).bits.DCacheParityError)
00443 #define DCSTAT_ICPARITY_ERROR_21064(dcstat) ((dcstat).bits.ICacheParityError)
00444
00445
#endif
00446
00447
00448
00449
00450
00451
00452
00453 #define MEMORY_BANKS_21066 (4)
00454
00455
00456
00457
00458
00459
00460 #define MEMORY_CONTROLLER_PHYSICAL_21066 (0x120000000)
00461 #define IO_CONTROLLER_PHYSICAL_21066 (0x180000000)
00462
00463
00464
00465
00466
00467 typedef struct _MEMC_CSRS_21066{
00468 LARGE_INTEGER
Bcr0;
00469 LARGE_INTEGER
Bcr1;
00470 LARGE_INTEGER
Bcr2;
00471 LARGE_INTEGER
Bcr3;
00472 LARGE_INTEGER
Bmr0;
00473 LARGE_INTEGER
Bmr1;
00474 LARGE_INTEGER
Bmr2;
00475 LARGE_INTEGER
Bmr3;
00476 LARGE_INTEGER
Btr0;
00477 LARGE_INTEGER
Btr1;
00478 LARGE_INTEGER
Btr2;
00479 LARGE_INTEGER
Btr3;
00480 LARGE_INTEGER
Gtr;
00481 LARGE_INTEGER
Esr;
00482 LARGE_INTEGER
Ear;
00483 LARGE_INTEGER
Car;
00484 LARGE_INTEGER
Vgr;
00485 LARGE_INTEGER
Plm;
00486 LARGE_INTEGER
For;
00487 }
MEMC_CSRS_21066, *
PMEMC_CSRS_21066;
00488
00489
00490
00491
00492
00493 typedef struct _IOC_CSRS_21066{
00494 LARGE_INTEGER
Hae;
00495 LARGE_INTEGER
Filler1[3];
00496 LARGE_INTEGER
Cct;
00497 LARGE_INTEGER
Filler2[3];
00498 LARGE_INTEGER
IoStat0;
00499 LARGE_INTEGER
Filler3[3];
00500 LARGE_INTEGER
IoStat1;
00501 LARGE_INTEGER
Filler4[3];
00502 LARGE_INTEGER
Tbia;
00503 LARGE_INTEGER
Filler5[3];
00504 LARGE_INTEGER
Tben;
00505 LARGE_INTEGER
Filler6[3];
00506 LARGE_INTEGER
PciSoftReset;
00507 LARGE_INTEGER
Filler7[3];
00508 LARGE_INTEGER
PciParityDisable;
00509 LARGE_INTEGER
Filler8[3];
00510 LARGE_INTEGER
Wbase0;
00511 LARGE_INTEGER
Filler9[3];
00512 LARGE_INTEGER
Wbase1;
00513 LARGE_INTEGER
Filler10[3];
00514 LARGE_INTEGER
Wmask0;
00515 LARGE_INTEGER
Filler11[3];
00516 LARGE_INTEGER
Wmask1;
00517 LARGE_INTEGER
Filler12[3];
00518 LARGE_INTEGER
Tbase0;
00519 LARGE_INTEGER
Filler13[3];
00520 LARGE_INTEGER
Tbase1;
00521 LARGE_INTEGER
Filler14[3];
00522 }
IOC_CSRS_21066, *
PIOC_CSRS_21066;
00523
00524
00525
00526
00527
00528
00529 typedef union _BCR_21066{
00530
struct {
00531 ULONG
Reserved1: 6;
00532 ULONG
Ras: 4;
00533 ULONG
Erm: 1;
00534 ULONG
Wrm: 1;
00535 ULONG
Bwe: 1;
00536 ULONG
Sbe: 1;
00537 ULONG
Bav: 1;
00538 ULONG
Reserved2: 5;
00539 ULONG
BankBase: 9;
00540 ULONG
Reserved3: 3;
00541 } ;
00542 LARGE_INTEGER
all;
00543 }
BCR_21066, *
PBCR_21066;
00544
00545
00546
00547
00548
00549 typedef union _BMR_21066{
00550
struct {
00551 ULONG
Reserved1: 20;
00552 ULONG
BankAddressMask: 9;
00553 ULONG
Reserved2: 3;
00554 } ;
00555 LARGE_INTEGER
all;
00556 }
BMR_21066, *
PBMR_21066;
00557
00558
00559
00560
00561
00562 typedef union _GTR_21066{
00563
struct {
00564 ULONG
Precharge: 5;
00565 ULONG
MinimumRas: 5;
00566 ULONG
MaximumRas: 8;
00567 ULONG
RefreshEnable: 1;
00568 ULONG
RefreshInterval: 8;
00569 ULONG
RefreshDivideSelect: 1;
00570 ULONG
Setup: 4;
00571 } ;
00572 LARGE_INTEGER
all;
00573 }
GTR_21066, *
PGTR_21066;
00574
00575
00576
00577
00578
00579 typedef union _ESR_21066{
00580
struct {
00581 ULONG
Eav: 1;
00582 ULONG
Cee: 1;
00583 ULONG
Uee: 1;
00584 ULONG
Wre: 1;
00585 ULONG
Sor: 1;
00586 ULONG
Reserved1: 2;
00587 ULONG
Cte: 1;
00588 ULONG
Reserved2: 1;
00589 ULONG
Mse: 1;
00590 ULONG
Mhe: 1;
00591 ULONG
Ice: 1;
00592 ULONG
Nxm: 1;
00593 ULONG
Reserved3: 19;
00594 ULONG
Ecc0: 1;
00595 ULONG
Wec6: 1;
00596 ULONG
Wec3: 1;
00597 ULONG
Reserved4: 1;
00598 ULONG
Ecc1: 1;
00599 ULONG
Reserved5: 3;
00600 ULONG
Wec7: 1;
00601 ULONG
Ecc2: 1;
00602 ULONG
Wec2: 1;
00603 ULONG
Reserved6: 2;
00604 ULONG
Ecc3: 1;
00605 ULONG
Reserved7: 2;
00606 ULONG
Wec4: 1;
00607 ULONG
Wec1: 1;
00608 ULONG
Ecc4: 1;
00609 ULONG
Wec0: 1;
00610 ULONG
Reserved8: 2;
00611 ULONG
Ecc5: 1;
00612 ULONG
Reserved9: 4;
00613 ULONG
Ecc6: 1;
00614 ULONG
Wec5: 1;
00615 ULONG
Reserved10: 2;
00616 ULONG
Ecc7: 1;
00617 } ;
00618 LARGE_INTEGER
all;
00619 }
ESR_21066, *
PESR_21066;
00620
00621
00622
00623
00624
00625 typedef union _EAR_21066{
00626
struct {
00627 ULONG
PerfCntMux0: 3;
00628 ULONG
ErrorAddress: 26;
00629 ULONG
PerfCntMux1: 3;
00630 } ;
00631 LARGE_INTEGER
all;
00632 }
EAR_21066, *
PEAR_21066;
00633
00634
00635
00636
00637
00638
00639 typedef union _CAR_21066{
00640
struct {
00641 ULONG
Bce: 1;
00642 ULONG
Reserved1: 1;
00643 ULONG
Etp: 1;
00644 ULONG
Wwp: 1;
00645 ULONG
Ece: 1;
00646 ULONG
BCacheSize: 3;
00647 ULONG
ReadCycles: 3;
00648 ULONG
WriteCycles: 3;
00649 ULONG
Whd: 1;
00650 ULONG
Pwr: 1;
00651 ULONG
Tag: 15;
00652 ULONG
Hit: 1;
00653 } ;
00654 LARGE_INTEGER
all;
00655 }
CAR_21066, *
PCAR_21066;
00656
00657
00658
00659
00660
00661
00662 typedef union _IOC_STAT0_21066{
00663
struct {
00664 ULONG
Cmd: 4;
00665 ULONG
Err: 1;
00666 ULONG
Lost: 1;
00667 ULONG
Thit: 1;
00668 ULONG
Tref: 1;
00669 ULONG
Code: 3;
00670 ULONG
Reserved1: 2;
00671 ULONG
PageNumber: 19;
00672 } ;
00673 LARGE_INTEGER
all;
00674 }
IOC_STAT0_21066, *
PIOC_STAT0_21066;
00675
00676
00677
00678
00679
00680
00681 typedef union _IOC_STAT1_21066{
00682
struct {
00683 ULONG
Address: 32;
00684 } ;
00685 LARGE_INTEGER
all;
00686 }
IOC_STAT1_21066, *
PIOC_STAT1_21066;
00687
00688
00689
00690
00691
00692
00693
00694 typedef struct _PROCESSOR_STATE_21066{
00695 ABOX_CTL_21064 AboxCtl;
00696 IER_21064 Aster;
00697 IRR_21064 Astrr;
00698 BCR_21066 BankConfig[
MEMORY_BANKS_21066 ];
00699 BMR_21066 BankMask[
MEMORY_BANKS_21066 ];
00700 DC_STAT_21064 DcStat;
00701 DTB_PTE_21064 DtbPte[
DTB_ENTRIES_21064 ];
00702 EXC_SUM_21064 ExcSum;
00703 IER_21064 Hier;
00704 IRR_21064 Hirr;
00705 ICCSR_21064 Iccsr;
00706 ITB_PTE_21064 ItbPte[
ITB_ENTRIES_21064 ];
00707 MMCSR_21064 MmCsr;
00708 LARGE_INTEGER
PalBase;
00709 LARGE_INTEGER
PalTemp[
PAL_TEMPS_21064 ];
00710 PS_21064 Ps;
00711 IER_21064 Sier;
00712 IRR_21064 Sirr;
00713 LARGE_INTEGER
Va;
00714 }
PROCESSOR_STATE_21066, *
PPROCESSOR_STATE_21066;
00715
00716
00717
00718
00719
00720 typedef struct _LOGOUT_FRAME_21066{
00721 ABOX_CTL_21064 AboxCtl;
00722 BCR_21066 BankConfig[
MEMORY_BANKS_21066 ];
00723 BMR_21066 BankMask[
MEMORY_BANKS_21066 ];
00724 DC_STAT_21064 DcStat;
00725 LARGE_INTEGER
ExcAddr;
00726 EXC_SUM_21064 ExcSum;
00727 IER_21064 Hier;
00728 IRR_21064 Hirr;
00729 ICCSR_21064 Iccsr;
00730 MMCSR_21064 MmCsr;
00731 LARGE_INTEGER
PalBase;
00732 LARGE_INTEGER
PalTemp[
PAL_TEMPS_21064 ];
00733 PS_21064 Ps;
00734 LARGE_INTEGER
Va;
00735 }
LOGOUT_FRAME_21066, *
PLOGOUT_FRAME_21066;
00736
00737
00738
00739
00740
00741 typedef struct _CORRECTABLE_FRAME_21066{
00742 BCR_21066 BankConfig[
MEMORY_BANKS_21066 ];
00743 BMR_21066 BankMask[
MEMORY_BANKS_21066 ];
00744 DC_STAT_21064 DcStat;
00745 }
CORRECTABLE_FRAME_21066;
00746
00747
00748
00749
00750
00751 #define LCA_PHYSICAL_ADDRESS_BITS 34
00752 #define LCA_VIRTUAL_ADDRESS_BITS 43
00753
00754
#endif