ipr.hh revision 3457
13457Sgblack@eecs.umich.edu/*
23457Sgblack@eecs.umich.edu * Copyright (c) 2003-2005 The Regents of The University of Michigan
33457Sgblack@eecs.umich.edu * All rights reserved.
43457Sgblack@eecs.umich.edu *
53457Sgblack@eecs.umich.edu * Redistribution and use in source and binary forms, with or without
63457Sgblack@eecs.umich.edu * modification, are permitted provided that the following conditions are
73457Sgblack@eecs.umich.edu * met: redistributions of source code must retain the above copyright
83457Sgblack@eecs.umich.edu * notice, this list of conditions and the following disclaimer;
93457Sgblack@eecs.umich.edu * redistributions in binary form must reproduce the above copyright
103457Sgblack@eecs.umich.edu * notice, this list of conditions and the following disclaimer in the
113457Sgblack@eecs.umich.edu * documentation and/or other materials provided with the distribution;
123457Sgblack@eecs.umich.edu * neither the name of the copyright holders nor the names of its
133457Sgblack@eecs.umich.edu * contributors may be used to endorse or promote products derived from
143457Sgblack@eecs.umich.edu * this software without specific prior written permission.
153457Sgblack@eecs.umich.edu *
163457Sgblack@eecs.umich.edu * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
173457Sgblack@eecs.umich.edu * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
183457Sgblack@eecs.umich.edu * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
193457Sgblack@eecs.umich.edu * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
203457Sgblack@eecs.umich.edu * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
213457Sgblack@eecs.umich.edu * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
223457Sgblack@eecs.umich.edu * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
233457Sgblack@eecs.umich.edu * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
243457Sgblack@eecs.umich.edu * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
253457Sgblack@eecs.umich.edu * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
263457Sgblack@eecs.umich.edu * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
273457Sgblack@eecs.umich.edu *
283457Sgblack@eecs.umich.edu * Authors: Steve Reinhardt
293457Sgblack@eecs.umich.edu *          Gabe Black
303457Sgblack@eecs.umich.edu */
313457Sgblack@eecs.umich.edu
323457Sgblack@eecs.umich.edu#ifndef __ARCH_ALPHA_IPR_HH__
333457Sgblack@eecs.umich.edu#define __ARCH_ALPHA_IPR_HH__
343457Sgblack@eecs.umich.edu
353457Sgblack@eecs.umich.edunamespace AlphaISA
363457Sgblack@eecs.umich.edu{
373457Sgblack@eecs.umich.edu    ////////////////////////////////////////////////////////////////////////
383457Sgblack@eecs.umich.edu    //
393457Sgblack@eecs.umich.edu    //  Internal Processor Reigsters
403457Sgblack@eecs.umich.edu    //
413457Sgblack@eecs.umich.edu    enum md_ipr_names
423457Sgblack@eecs.umich.edu    {
433457Sgblack@eecs.umich.edu        IPR_ISR = 0x100,		// interrupt summary register
443457Sgblack@eecs.umich.edu        IPR_ITB_TAG = 0x101,	// ITLB tag register
453457Sgblack@eecs.umich.edu        IPR_ITB_PTE = 0x102,	// ITLB page table entry register
463457Sgblack@eecs.umich.edu        IPR_ITB_ASN = 0x103,	// ITLB address space register
473457Sgblack@eecs.umich.edu        IPR_ITB_PTE_TEMP = 0x104,	// ITLB page table entry temp register
483457Sgblack@eecs.umich.edu        IPR_ITB_IA = 0x105,		// ITLB invalidate all register
493457Sgblack@eecs.umich.edu        IPR_ITB_IAP = 0x106,	// ITLB invalidate all process register
503457Sgblack@eecs.umich.edu        IPR_ITB_IS = 0x107,		// ITLB invalidate select register
513457Sgblack@eecs.umich.edu        IPR_SIRR = 0x108,		// software interrupt request register
523457Sgblack@eecs.umich.edu        IPR_ASTRR = 0x109,		// asynchronous system trap request register
533457Sgblack@eecs.umich.edu        IPR_ASTER = 0x10a,		// asynchronous system trap enable register
543457Sgblack@eecs.umich.edu        IPR_EXC_ADDR = 0x10b,	// exception address register
553457Sgblack@eecs.umich.edu        IPR_EXC_SUM = 0x10c,	// exception summary register
563457Sgblack@eecs.umich.edu        IPR_EXC_MASK = 0x10d,	// exception mask register
573457Sgblack@eecs.umich.edu        IPR_PAL_BASE = 0x10e,	// PAL base address register
583457Sgblack@eecs.umich.edu        IPR_ICM = 0x10f,		// instruction current mode
593457Sgblack@eecs.umich.edu        IPR_IPLR = 0x110,		// interrupt priority level register
603457Sgblack@eecs.umich.edu        IPR_INTID = 0x111,		// interrupt ID register
613457Sgblack@eecs.umich.edu        IPR_IFAULT_VA_FORM = 0x112,	// formatted faulting virtual addr register
623457Sgblack@eecs.umich.edu        IPR_IVPTBR = 0x113,		// virtual page table base register
633457Sgblack@eecs.umich.edu        IPR_HWINT_CLR = 0x115,	// H/W interrupt clear register
643457Sgblack@eecs.umich.edu        IPR_SL_XMIT = 0x116,	// serial line transmit register
653457Sgblack@eecs.umich.edu        IPR_SL_RCV = 0x117,		// serial line receive register
663457Sgblack@eecs.umich.edu        IPR_ICSR = 0x118,		// instruction control and status register
673457Sgblack@eecs.umich.edu        IPR_IC_FLUSH = 0x119,	// instruction cache flush control
683457Sgblack@eecs.umich.edu        IPR_IC_PERR_STAT = 0x11a,	// inst cache parity error status register
693457Sgblack@eecs.umich.edu        IPR_PMCTR = 0x11c,		// performance counter register
703457Sgblack@eecs.umich.edu
713457Sgblack@eecs.umich.edu        // PAL temporary registers...
723457Sgblack@eecs.umich.edu        // register meanings gleaned from osfpal.s source code
733457Sgblack@eecs.umich.edu        IPR_PALtemp0 = 0x140,	// local scratch
743457Sgblack@eecs.umich.edu        IPR_PALtemp1 = 0x141,	// local scratch
753457Sgblack@eecs.umich.edu        IPR_PALtemp2 = 0x142,	// entUna
763457Sgblack@eecs.umich.edu        IPR_PALtemp3 = 0x143,	// CPU specific impure area pointer
773457Sgblack@eecs.umich.edu        IPR_PALtemp4 = 0x144,	// memory management temp
783457Sgblack@eecs.umich.edu        IPR_PALtemp5 = 0x145,	// memory management temp
793457Sgblack@eecs.umich.edu        IPR_PALtemp6 = 0x146,	// memory management temp
803457Sgblack@eecs.umich.edu        IPR_PALtemp7 = 0x147,	// entIF
813457Sgblack@eecs.umich.edu        IPR_PALtemp8 = 0x148,	// intmask
823457Sgblack@eecs.umich.edu        IPR_PALtemp9 = 0x149,	// entSys
833457Sgblack@eecs.umich.edu        IPR_PALtemp10 = 0x14a,	// ??
843457Sgblack@eecs.umich.edu        IPR_PALtemp11 = 0x14b,	// entInt
853457Sgblack@eecs.umich.edu        IPR_PALtemp12 = 0x14c,	// entArith
863457Sgblack@eecs.umich.edu        IPR_PALtemp13 = 0x14d,	// reserved for platform specific PAL
873457Sgblack@eecs.umich.edu        IPR_PALtemp14 = 0x14e,	// reserved for platform specific PAL
883457Sgblack@eecs.umich.edu        IPR_PALtemp15 = 0x14f,	// reserved for platform specific PAL
893457Sgblack@eecs.umich.edu        IPR_PALtemp16 = 0x150,	// scratch / whami<7:0> / mces<4:0>
903457Sgblack@eecs.umich.edu        IPR_PALtemp17 = 0x151,	// sysval
913457Sgblack@eecs.umich.edu        IPR_PALtemp18 = 0x152,	// usp
923457Sgblack@eecs.umich.edu        IPR_PALtemp19 = 0x153,	// ksp
933457Sgblack@eecs.umich.edu        IPR_PALtemp20 = 0x154,	// PTBR
943457Sgblack@eecs.umich.edu        IPR_PALtemp21 = 0x155,	// entMM
953457Sgblack@eecs.umich.edu        IPR_PALtemp22 = 0x156,	// kgp
963457Sgblack@eecs.umich.edu        IPR_PALtemp23 = 0x157,	// PCBB
973457Sgblack@eecs.umich.edu
983457Sgblack@eecs.umich.edu        IPR_DTB_ASN = 0x200,	// DTLB address space number register
993457Sgblack@eecs.umich.edu        IPR_DTB_CM = 0x201,		// DTLB current mode register
1003457Sgblack@eecs.umich.edu        IPR_DTB_TAG = 0x202,	// DTLB tag register
1013457Sgblack@eecs.umich.edu        IPR_DTB_PTE = 0x203,	// DTLB page table entry register
1023457Sgblack@eecs.umich.edu        IPR_DTB_PTE_TEMP = 0x204,	// DTLB page table entry temporary register
1033457Sgblack@eecs.umich.edu
1043457Sgblack@eecs.umich.edu        IPR_MM_STAT = 0x205,	// data MMU fault status register
1053457Sgblack@eecs.umich.edu        IPR_VA = 0x206,		// fault virtual address register
1063457Sgblack@eecs.umich.edu        IPR_VA_FORM = 0x207,	// formatted virtual address register
1073457Sgblack@eecs.umich.edu        IPR_MVPTBR = 0x208,		// MTU virtual page table base register
1083457Sgblack@eecs.umich.edu        IPR_DTB_IAP = 0x209,	// DTLB invalidate all process register
1093457Sgblack@eecs.umich.edu        IPR_DTB_IA = 0x20a,		// DTLB invalidate all register
1103457Sgblack@eecs.umich.edu        IPR_DTB_IS = 0x20b,		// DTLB invalidate single register
1113457Sgblack@eecs.umich.edu        IPR_ALT_MODE = 0x20c,	// alternate mode register
1123457Sgblack@eecs.umich.edu        IPR_CC = 0x20d,		// cycle counter register
1133457Sgblack@eecs.umich.edu        IPR_CC_CTL = 0x20e,		// cycle counter control register
1143457Sgblack@eecs.umich.edu        IPR_MCSR = 0x20f,		// MTU control register
1153457Sgblack@eecs.umich.edu
1163457Sgblack@eecs.umich.edu        IPR_DC_FLUSH = 0x210,
1173457Sgblack@eecs.umich.edu        IPR_DC_PERR_STAT = 0x212,	// Dcache parity error status register
1183457Sgblack@eecs.umich.edu        IPR_DC_TEST_CTL = 0x213,	// Dcache test tag control register
1193457Sgblack@eecs.umich.edu        IPR_DC_TEST_TAG = 0x214,	// Dcache test tag register
1203457Sgblack@eecs.umich.edu        IPR_DC_TEST_TAG_TEMP = 0x215, // Dcache test tag temporary register
1213457Sgblack@eecs.umich.edu        IPR_DC_MODE = 0x216,	// Dcache mode register
1223457Sgblack@eecs.umich.edu        IPR_MAF_MODE = 0x217,	// miss address file mode register
1233457Sgblack@eecs.umich.edu
1243457Sgblack@eecs.umich.edu        MaxInternalProcRegs		// number of IPR registers
1253457Sgblack@eecs.umich.edu    };
1263457Sgblack@eecs.umich.edu
1273457Sgblack@eecs.umich.edu    enum MiscRegIpr
1283457Sgblack@eecs.umich.edu    {
1293457Sgblack@eecs.umich.edu        //Write only
1303457Sgblack@eecs.umich.edu        MinWriteOnlyIpr,
1313457Sgblack@eecs.umich.edu        MISCREG_IPR_HWINT_CLR = MinWriteOnlyIpr,
1323457Sgblack@eecs.umich.edu        MISCREG_IPR_SL_XMIT,
1333457Sgblack@eecs.umich.edu        MISCREG_IPR_DC_FLUSH,
1343457Sgblack@eecs.umich.edu        MISCREG_IPR_IC_FLUSH,
1353457Sgblack@eecs.umich.edu        MISCREG_IPR_ALT_MODE,
1363457Sgblack@eecs.umich.edu        MISCREG_IPR_DTB_IA,
1373457Sgblack@eecs.umich.edu        MISCREG_IPR_DTB_IAP,
1383457Sgblack@eecs.umich.edu        MISCREG_IPR_ITB_IA,
1393457Sgblack@eecs.umich.edu        MaxWriteOnlyIpr,
1403457Sgblack@eecs.umich.edu        MISCREG_IPR_ITB_IAP = MaxWriteOnlyIpr,
1413457Sgblack@eecs.umich.edu
1423457Sgblack@eecs.umich.edu        //Read only
1433457Sgblack@eecs.umich.edu        MinReadOnlyIpr,
1443457Sgblack@eecs.umich.edu        MISCREG_IPR_INTID = MinReadOnlyIpr,
1453457Sgblack@eecs.umich.edu        MISCREG_IPR_SL_RCV,
1463457Sgblack@eecs.umich.edu        MISCREG_IPR_MM_STAT,
1473457Sgblack@eecs.umich.edu        MISCREG_IPR_ITB_PTE_TEMP,
1483457Sgblack@eecs.umich.edu        MaxReadOnlyIpr,
1493457Sgblack@eecs.umich.edu        MISCREG_IPR_DTB_PTE_TEMP = MaxReadOnlyIpr,
1503457Sgblack@eecs.umich.edu
1513457Sgblack@eecs.umich.edu        MISCREG_IPR_ISR,
1523457Sgblack@eecs.umich.edu        MISCREG_IPR_ITB_TAG,
1533457Sgblack@eecs.umich.edu        MISCREG_IPR_ITB_PTE,
1543457Sgblack@eecs.umich.edu        MISCREG_IPR_ITB_ASN,
1553457Sgblack@eecs.umich.edu        MISCREG_IPR_ITB_IS,
1563457Sgblack@eecs.umich.edu        MISCREG_IPR_SIRR,
1573457Sgblack@eecs.umich.edu        MISCREG_IPR_ASTRR,
1583457Sgblack@eecs.umich.edu        MISCREG_IPR_ASTER,
1593457Sgblack@eecs.umich.edu        MISCREG_IPR_EXC_ADDR,
1603457Sgblack@eecs.umich.edu        MISCREG_IPR_EXC_SUM,
1613457Sgblack@eecs.umich.edu        MISCREG_IPR_EXC_MASK,
1623457Sgblack@eecs.umich.edu        MISCREG_IPR_PAL_BASE,
1633457Sgblack@eecs.umich.edu        MISCREG_IPR_ICM,
1643457Sgblack@eecs.umich.edu        MISCREG_IPR_IPLR,
1653457Sgblack@eecs.umich.edu        MISCREG_IPR_IFAULT_VA_FORM,
1663457Sgblack@eecs.umich.edu        MISCREG_IPR_IVPTBR,
1673457Sgblack@eecs.umich.edu        MISCREG_IPR_ICSR,
1683457Sgblack@eecs.umich.edu        MISCREG_IPR_IC_PERR_STAT,
1693457Sgblack@eecs.umich.edu        MISCREG_IPR_PMCTR,
1703457Sgblack@eecs.umich.edu
1713457Sgblack@eecs.umich.edu        // PAL temporary registers...
1723457Sgblack@eecs.umich.edu        // register meanings gleaned from osfpal.s source code
1733457Sgblack@eecs.umich.edu        MISCREG_IPR_PALtemp0,
1743457Sgblack@eecs.umich.edu        MISCREG_IPR_PALtemp1,
1753457Sgblack@eecs.umich.edu        MISCREG_IPR_PALtemp2,
1763457Sgblack@eecs.umich.edu        MISCREG_IPR_PALtemp3,
1773457Sgblack@eecs.umich.edu        MISCREG_IPR_PALtemp4,
1783457Sgblack@eecs.umich.edu        MISCREG_IPR_PALtemp5,
1793457Sgblack@eecs.umich.edu        MISCREG_IPR_PALtemp6,
1803457Sgblack@eecs.umich.edu        MISCREG_IPR_PALtemp7,
1813457Sgblack@eecs.umich.edu        MISCREG_IPR_PALtemp8,
1823457Sgblack@eecs.umich.edu        MISCREG_IPR_PALtemp9,
1833457Sgblack@eecs.umich.edu        MISCREG_IPR_PALtemp10,
1843457Sgblack@eecs.umich.edu        MISCREG_IPR_PALtemp11,
1853457Sgblack@eecs.umich.edu        MISCREG_IPR_PALtemp12,
1863457Sgblack@eecs.umich.edu        MISCREG_IPR_PALtemp13,
1873457Sgblack@eecs.umich.edu        MISCREG_IPR_PALtemp14,
1883457Sgblack@eecs.umich.edu        MISCREG_IPR_PALtemp15,
1893457Sgblack@eecs.umich.edu        MISCREG_IPR_PALtemp16,
1903457Sgblack@eecs.umich.edu        MISCREG_IPR_PALtemp17,
1913457Sgblack@eecs.umich.edu        MISCREG_IPR_PALtemp18,
1923457Sgblack@eecs.umich.edu        MISCREG_IPR_PALtemp19,
1933457Sgblack@eecs.umich.edu        MISCREG_IPR_PALtemp20,
1943457Sgblack@eecs.umich.edu        MISCREG_IPR_PALtemp21,
1953457Sgblack@eecs.umich.edu        MISCREG_IPR_PALtemp22,
1963457Sgblack@eecs.umich.edu        MISCREG_IPR_PALtemp23,
1973457Sgblack@eecs.umich.edu
1983457Sgblack@eecs.umich.edu        MISCREG_IPR_DTB_ASN,
1993457Sgblack@eecs.umich.edu        MISCREG_IPR_DTB_CM,
2003457Sgblack@eecs.umich.edu        MISCREG_IPR_DTB_TAG,
2013457Sgblack@eecs.umich.edu        MISCREG_IPR_DTB_PTE,
2023457Sgblack@eecs.umich.edu
2033457Sgblack@eecs.umich.edu        MISCREG_IPR_VA,
2043457Sgblack@eecs.umich.edu        MISCREG_IPR_VA_FORM,
2053457Sgblack@eecs.umich.edu        MISCREG_IPR_MVPTBR,
2063457Sgblack@eecs.umich.edu        MISCREG_IPR_DTB_IS,
2073457Sgblack@eecs.umich.edu        MISCREG_IPR_CC,
2083457Sgblack@eecs.umich.edu        MISCREG_IPR_CC_CTL,
2093457Sgblack@eecs.umich.edu        MISCREG_IPR_MCSR,
2103457Sgblack@eecs.umich.edu
2113457Sgblack@eecs.umich.edu        MISCREG_IPR_DC_PERR_STAT,
2123457Sgblack@eecs.umich.edu        MISCREG_IPR_DC_TEST_CTL,
2133457Sgblack@eecs.umich.edu        MISCREG_IPR_DC_TEST_TAG,
2143457Sgblack@eecs.umich.edu        MISCREG_IPR_DC_TEST_TAG_TEMP,
2153457Sgblack@eecs.umich.edu        MISCREG_IPR_DC_MODE,
2163457Sgblack@eecs.umich.edu        MISCREG_IPR_MAF_MODE,
2173457Sgblack@eecs.umich.edu
2183457Sgblack@eecs.umich.edu        NumInternalProcRegs		// number of IPR registers
2193457Sgblack@eecs.umich.edu    };
2203457Sgblack@eecs.umich.edu
2213457Sgblack@eecs.umich.edu
2223457Sgblack@eecs.umich.edu    extern md_ipr_names MiscRegIndexToIpr[NumInternalProcRegs];
2233457Sgblack@eecs.umich.edu    extern int IprToMiscRegIndex[MaxInternalProcRegs];
2243457Sgblack@eecs.umich.edu
2253457Sgblack@eecs.umich.edu    void initializeIprTable();
2263457Sgblack@eecs.umich.edu}
2273457Sgblack@eecs.umich.edu
2283457Sgblack@eecs.umich.edu#endif
229