/* * Copyright (c) 1993 The Hewlett-Packard Development Company * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer; * redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution; * neither the name of the copyright holders nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef DC21164FROMGASSOURCES_INCLUDED #define DC21164FROMGASSOURCES_INCLUDED 1 /* ** ** INTERNAL PROCESSOR REGISTER DEFINITIONS ** ** The internal processor register definitions below are annotated ** with one of the following symbols: ** ** RW - The register may be read and written ** RO - The register may only be read ** WO - The register may only be written ** ** For RO and WO registers, all bits and fields within the register are ** also read-only or write-only. For RW registers, each bit or field ** within the register is annotated with one of the following: ** ** RW - The bit/field may be read and written ** RO - The bit/field may be read; writes are ignored ** WO - The bit/field may be written; reads return UNPREDICTABLE ** WZ - The bit/field may be written; reads return a zero value ** W0C - The bit/field may be read; write-zero-to-clear ** W1C - The bit/field may be read; write-one-to-clear ** WA - The bit/field may be read; write-anything-to-clear ** RC - The bit/field may be read, causing state to clear; ** writes are ignored ** */ /* ** ** Ibox IPR Definitions: ** */ // replaced by ev5_defs.h #define isr 0x100 /* RO - Interrupt Summary */ #define itbTag 0x101 /* WO - ITB Tag */ #define itbPte 0x102 /* RW - ITB Page Table Entry */ #define itbAsn 0x103 /* RW - ITB Address Space Number */ #define itbPteTemp 0x104 /* RO - ITB Page Table Entry Temporary */ #define itbIa 0x105 /* WO - ITB Invalidate All */ #define itbIap 0x106 /* WO - ITB Invalidate All Process */ #define itbIs 0x107 /* WO - ITB Invalidate Single */ // replaced by ev5_defs.h #define sirr 0x108 /* RW - Software Interrupt Request */ // replaced by ev5_defs.h #define astrr 0x109 /* RW - Async. System Trap Request */ // replaced by ev5_defs.h #define aster 0x10A /* RW - Async. System Trap Enable */ #define excAddr 0x10B /* RW - Exception Address */ #define excSum 0x10C /* RW - Exception Summary */ #define excMask 0x10D /* RO - Exception Mask */ #define palBase 0x10E /* RW - PAL Base */ #define ips 0x10F /* RW - Processor Status */ // replaced by ev5_defs.h #define ipl 0x110 /* RW - Interrupt Priority Level */ #define intId 0x111 /* RO - Interrupt ID */ #define iFaultVaForm 0x112 /* RO - Formatted Faulting VA */ #define iVptBr 0x113 /* RW - I-Stream Virtual Page Table Base */ #define hwIntClr 0x115 /* WO - Hardware Interrupt Clear */ #define slXmit 0x116 /* WO - Serial Line Transmit */ #define slRcv 0x117 /* RO - Serial Line Receive */ // replaced by ev5_defs.h #define icsr 0x118 /* RW - Ibox Control/Status */ #define icFlush 0x119 /* WO - I-Cache Flush Control */ #define flushIc 0x119 /* WO - I-Cache Flush Control (DC21064 Symbol) */ #define icPerr 0x11A /* RW - I-Cache Parity Error Status */ #define PmCtr 0x11C /* RW - Performance Counter */ /* ** ** Ibox Control/Status Register (ICSR) Bit Summary ** ** Extent Size Name Type Function ** ------ ---- ---- ---- ------------------------------------ ** <39> 1 TST RW,0 Assert Test Status ** <38> 1 ISTA RO I-Cache BIST Status ** <37> 1 DBS RW,1 Debug Port Select ** <36> 1 FBD RW,0 Force Bad I-Cache Data Parity ** <35> 1 FBT RW,0 Force Bad I-Cache Tag Parity ** <34> 1 FMS RW,0 Force I-Cache Miss ** <33> 1 SLE RW,0 Enable Serial Line Interrupts ** <32> 1 CRDE RW,0 Enable Correctable Error Interrupts ** <30> 1 SDE RW,0 Enable PAL Shadow Registers ** <29:28> 2 SPE RW,0 Enable I-Stream Super Page Mode ** <27> 1 HWE RW,0 Enable PALRES Instrs in Kernel Mode ** <26> 1 FPE RW,0 Enable Floating Point Instructions ** <25> 1 TMD RW,0 Disable Ibox Timeout Counter ** <24> 1 TMM RW,0 Timeout Counter Mode ** */ #define ICSR_V_TST 39 #define ICSR_M_TST (1< 1 TMT WO,1 Serial line transmit data ** */ #define SLXMIT_V_TMT 7 #define SLXMIT_M_TMT (1< 1 RCV RO Serial line receive data ** */ #define SLRCV_V_RCV 6 #define SLRCV_M_RCV (1< 1 TMR W1C Timeout reset error ** <12> 1 TPE W1C Tag parity error ** <11> 1 DPE W1C Data parity error ** */ #define ICPERR_V_TMR 13 #define ICPERR_M_TMR (1< 1 IOV WA Integer overflow ** <15> 1 INE WA Inexact result ** <14> 1 UNF WA Underflow ** <13> 1 FOV WA Overflow ** <12> 1 DZE WA Division by zero ** <11> 1 INV WA Invalid operation ** <10> 1 SWC WA Software completion ** */ #define EXC_V_IOV 16 #define EXC_M_IOV (1< 1 SLC W1C Clear Serial Line interrupt ** <32> 1 CRDC W1C Clear Correctable Read Data interrupt ** <29> 1 PC2C W1C Clear Performance Counter 2 interrupt ** <28> 1 PC1C W1C Clear Performance Counter 1 interrupt ** <27> 1 PC0C W1C Clear Performance Counter 0 interrupt ** */ #define HWINT_V_SLC 33 #define HWINT_M_SLC (1< 1 HLT RO External Halt interrupt ** <33> 1 SLI RO Serial Line interrupt ** <32> 1 CRD RO Correctable ECC errors ** <31> 1 MCK RO System Machine Check ** <30> 1 PFL RO Power Fail ** <29> 1 PC2 RO Performance Counter 2 interrupt ** <28> 1 PC1 RO Performance Counter 1 interrupt ** <27> 1 PC0 RO Performance Counter 0 interrupt ** <23> 1 I23 RO External Hardware interrupt ** <22> 1 I22 RO External Hardware interrupt ** <21> 1 I21 RO External Hardware interrupt ** <20> 1 I20 RO External Hardware interrupt ** <19> 1 ATR RO Async. System Trap request ** <18:4> 15 SIRR RO,0 Software Interrupt request ** <3:0> 4 ASTRR RO Async. System Trap request (USEK) ** **/ #define ISR_V_HLT 34 #define ISR_M_HLT (1< 6 OPCODE RO Opcode of faulting instruction ** <10:06> 5 RA RO Ra field of faulting instruction ** <5> 1 BAD_VA RO Bad virtual address ** <4> 1 DTB_MISS RO Reference resulted in DTB miss ** <3> 1 FOW RO Fault on write ** <2> 1 FOR RO Fault on read ** <1> 1 ACV RO Access violation ** <0> 1 WR RO Reference type ** */ #define MMSTAT_V_OPC 11 #define MMSTAT_M_OPC (0x3F< 1 DBG1 RW,0 Mbox Debug Packet Select ** <4> 1 E_BE RW,0 Ebox Big Endian mode enable ** <3> 1 DBG0 RW,0 Debug Test Select ** <2:1> 2 SP RW,0 Superpage mode enable ** <0> 1 M_BE RW,0 Mbox Big Endian mode enable ** */ #define MCSR_V_DBG1 5 #define MCSR_M_DBG1 (1< 1 TP1 RO Dcache bank 1 tag parity error ** <4> 1 TP0 RO Dcache bank 0 tag parity error ** <3> 1 DP1 RO Dcache bank 1 data parity error ** <2> 1 DP0 RO Dcache bank 0 data parity error ** <1> 1 LOCK W1C Locks/clears bits <5:2> ** <0> 1 SEO W1C Second Dcache parity error occurred ** */ #define DCPERR_V_TP1 5 #define DCPERR_M_TP1 (1< 1 DOA RO Hardware Dcache Disable ** <3> 1 PERR_DIS RW,0 Disable Dcache Parity Error reporting ** <2> 1 BAD_DP RW,0 Force Dcache data bad parity ** <1> 1 FHIT RW,0 Force Dcache hit ** <0> 1 ENA RW,0 Software Dcache Enable ** */ #define DC_V_DOA 4 #define DC_M_DOA (1< 1 WB RO,0 If set, pending WB request ** <6> 1 DREAD RO,0 If set, pending D-read request ** */ #define MAF_V_WB_PENDING 7 #define MAF_M_WB_PENDING (1< 3 SET_EN RW,1 Set enable ** <12> 1 BLK_SIZE RW,1 Scache/Bcache block size select ** <11:08> 4 FB_DP RW,0 Force bad data parity ** <07:02> 6 TAG_STAT RW Tag status and parity ** <1> 1 FLUSH RW,0 If set, clear all tag valid bits ** <0> 1 FHIT RW,0 Force hits ** */ #define SC_V_SET_EN 13 #define SC_M_SET_EN (7< 1 DIS_VIC_BUF WO,0 Disable Scache victim buffer ** <26> 1 DIS_BAF_BYP WO,0 Disable speculative Bcache reads ** <25> 1 DBG_MUX_SEL WO,0 Debug MUX select ** <24:19> 6 PM_MUX_SEL WO,0 Performance counter MUX select ** <18:17> 2 BC_WAVE WO,0 Number of cycles of wave pipelining ** <16> 1 TL_PIPE_LATCH WO,0 Pipe system control pins ** <15> 1 EI_DIS_ERR WO,1 Disable ECC (parity) error ** <14:13> 2 BC_BAD_DAT WO,0 Force bad data ** <12:08> 5 BC_TAG_STAT WO Bcache tag status and parity ** <7> 1 BC_FHIT WO,0 Bcache force hit ** <6> 1 EI_ECC WO,1 ECC or byte parity mode ** <5> 1 VTM_FIRST WO,1 Drive out victim block address first ** <4> 1 CORR_FILL_DAT WO,1 Correct fill data ** <3> 1 EI_CMD_GRP3 WO,0 Drive MB command to external pins ** <2> 1 EI_CMD_GRP2 WO,0 Drive LOCK & SET_DIRTY to ext. pins ** <1> 1 ALLOC_CYC WO,0 Allocate cycle for non-cached LDs. ** <0> 1 BC_ENA W0,0 Bcache enable ** */ #define BC_V_DIS_SC_VIC_BUF 27 #define BC_M_DIS_SC_VIC_BUF (1<>1) /* ** ** Bcache Configuration Register (BC_CONFIG) Bit Summary ** ** Extent Size Name Type Function ** ------ ---- ---- ---- --------------------------------- ** <35:29> 7 RSVD WO Reserved - Must Be Zero ** <28:20> 9 WE_CTL WO,0 Bcache write enable control ** <19:19> 1 RSVD WO,0 Reserved - Must Be Zero ** <18:16> 3 WE_OFF WO,1 Bcache fill write enable pulse offset ** <15:15> 1 RSVD WO,0 Reserved - Must Be Zero ** <14:12> 3 RD_WR_SPC WO,7 Bcache private read/write spacing ** <11:08> 4 WR_SPD WO,4 Bcache write speed in CPU cycles ** <07:04> 4 RD_SPD WO,4 Bcache read speed in CPU cycles ** <03:03> 1 RSVD WO,0 Reserved - Must Be Zero ** <02:00> 3 SIZE WO,1 Bcache size */ #define BC_V_WE_CTL 20 #define BC_M_WE_CTL (0x1FF< = 1. */ #define p0 r8 /* ITB/DTB Miss Scratch */ #define p1 r9 /* ITB/DTB Miss Scratch */ #define p2 r10 /* ITB/DTB Miss Scratch */ #define p3 r11 // #define ps r11 /* Processor Status */ #define p4 r12 /* Local Scratch */ #define p5 r13 /* Local Scratch */ #define p6 r14 /* Local Scratch */ #define p7 r25 /* Local Scratch */ /* ** SRM Defined State Definitions: */ /* ** This table is an accounting of the DECchip 21164 storage used to ** implement the SRM defined state for OSF/1. ** ** IPR Name Internal Storage ** -------- ---------------- ** Processor Status ps, dtbCm, ipl, r11 ** Program Counter Ibox ** Interrupt Entry ptEntInt ** Arith Trap Entry ptEntArith ** MM Fault Entry ptEntMM ** Unaligned Access Entry ptEntUna ** Instruction Fault Entry ptEntIF ** Call System Entry ptEntSys ** User Stack Pointer ptUsp ** Kernel Stack Pointer ptKsp ** Kernel Global Pointer ptKgp ** System Value ptSysVal ** Page Table Base Register ptPtbr ** Virtual Page Table Base iVptBr, mVptBr ** Process Control Block Base ptPcbb ** Address Space Number itbAsn, dtbAsn ** Cycle Counter cc, ccCtl ** Float Point Enable icsr ** Lock Flag Cbox/System ** Unique PCB ** Who-Am-I ptWhami */ #define ptEntUna pt2 /* Unaligned Access Dispatch Entry */ #define ptImpure pt3 /* Pointer To PAL Scratch Area */ #define ptEntIF pt7 /* Instruction Fault Dispatch Entry */ #define ptIntMask pt8 /* Interrupt Enable Mask */ #define ptEntSys pt9 /* Call System Dispatch Entry */ #define ptTrap pt11 #define ptEntInt pt11 /* Hardware Interrupt Dispatch Entry */ #define ptEntArith pt12 /* Arithmetic Trap Dispatch Entry */ #if defined(KDEBUG) #define ptEntDbg pt13 /* Kernel Debugger Dispatch Entry */ #endif /* KDEBUG */ #define ptMisc pt16 /* Miscellaneous Flags */ #define ptWhami pt16 /* Who-Am-I Register Pt16<15:8> */ #define ptMces pt16 /* Machine Check Error Summary Pt16<4:0> */ #define ptSysVal pt17 /* Per-Processor System Value */ #define ptUsp pt18 /* User Stack Pointer */ #define ptKsp pt19 /* Kernel Stack Pointer */ #define ptPtbr pt20 /* Page Table Base Register */ #define ptEntMM pt21 /* MM Fault Dispatch Entry */ #define ptKgp pt22 /* Kernel Global Pointer */ #define ptPcbb pt23 /* Process Control Block Base */ /* ** ** Miscellaneous PAL State Flags (ptMisc) Bit Summary ** ** Extent Size Name Function ** ------ ---- ---- --------------------------------- ** <55:48> 8 SWAP Swap PALcode flag -- character 'S' ** <47:32> 16 MCHK Machine Check Error code ** <31:16> 16 SCB System Control Block vector ** <15:08> 8 WHAMI Who-Am-I identifier ** <04:00> 5 MCES Machine Check Error Summary bits ** */ #define PT16_V_MCES 0 #define PT16_V_WHAMI 8 #define PT16_V_SCB 16 #define PT16_V_MCHK 32 #define PT16_V_SWAP 48 #endif /* DC21164FROMGASSOURCES_INCLUDED */