[BACK]Return to reg.h CVS log [TXT][DIR] Up to [local] / sys / arch / hppa / include

Annotation of sys/arch/hppa/include/reg.h, Revision 1.1

1.1     ! nbrk        1: /*     $OpenBSD: reg.h,v 1.11 2004/04/07 18:24:19 mickey Exp $ */
        !             2:
        !             3: /*
        !             4:  * Copyright (c) 1998-2004 Michael Shalayeff
        !             5:  * All rights reserved.
        !             6:  *
        !             7:  * Redistribution and use in source and binary forms, with or without
        !             8:  * modification, are permitted provided that the following conditions
        !             9:  * are met:
        !            10:  * 1. Redistributions of source code must retain the above copyright
        !            11:  *    notice, this list of conditions and the following disclaimer.
        !            12:  * 2. Redistributions in binary form must reproduce the above copyright
        !            13:  *    notice, this list of conditions and the following disclaimer in the
        !            14:  *    documentation and/or other materials provided with the distribution.
        !            15:  *
        !            16:  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
        !            17:  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
        !            18:  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
        !            19:  * IN NO EVENT SHALL THE AUTHOR OR HIS RELATIVES BE LIABLE FOR ANY DIRECT,
        !            20:  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
        !            21:  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
        !            22:  * SERVICES; LOSS OF MIND, USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
        !            23:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
        !            24:  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
        !            25:  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
        !            26:  * THE POSSIBILITY OF SUCH DAMAGE.
        !            27:  */
        !            28: /*
        !            29:  * Copyright (c) 1990,1994 The University of Utah and
        !            30:  * the Computer Systems Laboratory at the University of Utah (CSL).
        !            31:  * All rights reserved.
        !            32:  *
        !            33:  * Permission to use, copy, modify and distribute this software is hereby
        !            34:  * granted provided that (1) source code retains these copyright, permission,
        !            35:  * and disclaimer notices, and (2) redistributions including binaries
        !            36:  * reproduce the notices in supporting documentation, and (3) all advertising
        !            37:  * materials mentioning features or use of this software display the following
        !            38:  * acknowledgement: ``This product includes software developed by the
        !            39:  * Computer Systems Laboratory at the University of Utah.''
        !            40:  *
        !            41:  * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS
        !            42:  * IS" CONDITION.  THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF
        !            43:  * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
        !            44:  *
        !            45:  * CSL requests users of this software to return to csl-dist@cs.utah.edu any
        !            46:  * improvements that they make and grant CSL redistribution rights.
        !            47:  *
        !            48:  *     Utah $Hdr: regs.h 1.6 94/12/14$
        !            49:  *     Author: Bob Wheeler, University of Utah CSL
        !            50:  */
        !            51:
        !            52: #ifndef _MACHINE_REG_H_
        !            53: #define _MACHINE_REG_H_
        !            54:
        !            55: /*
        !            56:  * constants for registers for use with the following routines:
        !            57:  *
        !            58:  *     void mtctl(reg, value)  - move to control register
        !            59:  *     int mfctl(reg)          - move from control register
        !            60:  *     int mtsp(sreg, value)   - move to space register
        !            61:  *     int mfsr(sreg)          - move from space register
        !            62:  */
        !            63:
        !            64: #define        CR_RCTR         0
        !            65: #define        CR_PIDR1        8
        !            66: #define        CR_PIDR2        9
        !            67: #define        CR_CCR          10
        !            68: #define        CR_SAR          11
        !            69: #define        CR_PIDR3        12
        !            70: #define        CR_PIDR4        13
        !            71: #define        CR_IVA          14
        !            72: #define        CR_EIEM         15
        !            73: #define        CR_ITMR         16
        !            74: #define        CR_PCSQ         17
        !            75: #define        CR_PCOQ         18
        !            76: #define        CR_IIR          19
        !            77: #define        CR_ISR          20
        !            78: #define        CR_IOR          21
        !            79: #define        CR_IPSW         22
        !            80: #define        CR_EIRR         23
        !            81: #define        CR_HPTMASK      24
        !            82: #define        CR_VTOP         25
        !            83: #define        CR_TR2          26
        !            84: #define        CR_TR3          27
        !            85: #define        CR_HVTP         28      /* points to a faulted HVT slot on LC cpus */
        !            86: #define        CR_TR5          29
        !            87: #define        CR_UPADDR       30      /* paddr of U-area of curproc */
        !            88: #define        CR_TR7          31
        !            89:
        !            90: /*
        !            91:  * Diagnostic registers and bit positions
        !            92:  */
        !            93: #define        DR_CPUCFG               0
        !            94:
        !            95: #define        DR0_PCXS_DHPMC          10      /* r/c D-cache error flag */
        !            96: #define        DR0_PCXS_ILPMC          14      /* r/c I-cache error flag */
        !            97: #define        DR0_PCXS_EQWSTO         16      /* r/w enable quad-word stores */
        !            98: #define        DR0_PCXS_IHE            18      /* r/w I-cache sid hash enable */
        !            99: #define        DR0_PCXS_DOMAIN         19
        !           100: #define        DR0_PCXS_DHE            20      /* r/w D-cache sid hash enable */
        !           101:
        !           102: #define        DR0_PCXT_DHPMC          10      /* r/c L1 D-cache error flag */
        !           103: #define        DR0_PCXT_ILPMC          14      /* r/c L1 I-cache error flag */
        !           104: #define        DR0_PCXT_IHE            18      /* r/w I-cache sid hash enable */
        !           105: #define        DR0_PCXT_DHE            20      /* r/w D-cache sid hash enable */
        !           106:
        !           107: #define        DR0_PCXL_L2IHPMC        6       /* r/c L2 I-cache error flag */
        !           108: #define        DR0_PCXL_L2IHPMC_DIS    7       /* r/w L2 I-cache hpmc disable mask */
        !           109: #define        DR0_PCXL_L2DHPMC        8       /* r/c L2 D-cache error flag */
        !           110: #define        DR0_PCXL_L2DHPMC_DIS    9       /* r/w L2 D-cache hpmc disable mask */
        !           111: #define        DR0_PCXL_L1IHPMC        10      /* r/c L1 I-cache error flag */
        !           112: #define        DR0_PCXL_L1IHPMC_DIS    11      /* r/w L1 I-cache hpmc disable mask */
        !           113: #define        DR0_PCXL_L2PARERR       15      /* r/c L2 Cache parity error (4 bit) */
        !           114: #define        DR0_PCXL_STORE0         16      /* r/w scratch space */
        !           115: #define        DR0_PCXL_PFMASK         17      /* r/w power-fail trap mask */
        !           116: #define        DR0_PCXL_STORE1         18      /* r/w scratch */
        !           117: #define        DR0_PCXL_FASTMODE       19      /* r   0-fast, 1-slow */
        !           118: #define        DR0_PCXL_ISTRM_EN       20      /* r/w I-cache streaming enable */
        !           119: #define        DR0_PCXL_DUAL_DIS       22      /* r/w disable dual-issue (2 bit) */
        !           120: #define        DR0_PCXL_ENDIAN         23      /* r/w little endian traps */
        !           121: #define        DR0_PCXL_SOU_EN         24      /* r/w stall-on-use on dc misses */
        !           122: #define        DR0_PCXL_SHINT_EN       25      /* r/w no-fill on miss store hints */
        !           123: #define        DR0_PCXL_IPREF_EN       26      /* r/w L2 to L1 I-cache prefetch */
        !           124: #define        DR0_PCXL_L2DHASH_EN     27      /* r/w L2 D-cache hash enable */
        !           125: #define        DR0_PCXL_L2IHASH_EN     28      /* r/w L2 I-cache hash enable */
        !           126: #define        DR0_PCXL_L1ICACHE_EN    29      /* r/w L1 I-cache enable */
        !           127: #define        DR0_PCXL_HIT            30      /* r   Diag cache read hit indication */
        !           128: #define        DR0_PCXL_PARERR         31      /* r   Diag cache read parity error */
        !           129:
        !           130: #define        DR0_PCXL2_L1DHPMC       8       /* r/c L1 D-cache error flag */
        !           131: #define        DR0_PCXL2_L1DHPMC_DIS   9       /* r/w L1 D-cache hpmc disable */
        !           132: #define        DR0_PCXL2_L2DHPMC       10      /* r/c L1 I-cache error flag */
        !           133: #define        DR0_PCXL2_L2DHPMC_DIS   11      /* r/w L1 I-cache hpmc disable */
        !           134: #define        DR0_PCXL2_SCRATCH       12      /* r/w scratch register */
        !           135: #define        DR0_PCXL2_ACCEL_IO      13      /*  /w enable accel IO writes */
        !           136: #define        DR0_PCXL2_STORE0        16      /* r/w scratch space */
        !           137: #define        DR0_PCXL2_PFMASK        17      /* r/w power-fail trap mask */
        !           138: #define        DR0_PCXL2_STORE1        18      /* r/w scratch */
        !           139: #define        DR0_PCXL2_DCSAFE        19      /* r/w serialize all data cache hangs */
        !           140: #define        DR0_PCXL2_ISTRM_EN      20      /* r/w I-cache streaming enable */
        !           141: #define        DR0_PCXL2_DUAL_DIS      22      /* r/w disable dual-issue (2 bit) */
        !           142: #define        DR0_PCXL2_ENDIAN        23      /* r/w little endian traps */
        !           143: #define        DR0_PCXL2_SOU_EN        24      /* r/w stall-on-use on dc misses */
        !           144: #define        DR0_PCXL2_SHINT_EN      25      /* r/w no-fill on miss store hints */
        !           145: #define        DR0_PCXL2_IPREF_EN      26      /* r/w L2 to L1 I-cache prefetch */
        !           146: #define        DR0_PCXL2_LMIN_EN       27      /* r/w minor ill insn traps on LIH */
        !           147: #define        DR0_PCXL2_RMIN_EN       28      /* r/w major ill insn traps on RIH */
        !           148: #define        DR0_PCXL2_L1CACHE_EN    29      /* r/w L1 I-cache enable */
        !           149:
        !           150: #define        DR_DTLB                 8
        !           151:
        !           152: #define        DR_ITLB                 9
        !           153:
        !           154: #define        DR0_PCXL2_HTLB_ADDR     24      /* page address of the htlb */
        !           155: #define        DR0_PCXL2_HTLB_CFG      25      /* htlb config */
        !           156: #define        DR0_PCXL2_HTLB_P        0       /* r   latches power fail signal */
        !           157: #define        DR0_PCXL2_HTLB_MASK     19      /*   w 12bit mask of the hash */
        !           158: #define        DR0_PCXL2_HTLB_FP       26      /* r/w 3bit FP delay */
        !           159: #define        DR0_PCXL2_HTLB_I        28      /* r/w disable ITLB htlb lookup */
        !           160: #define        DR0_PCXL2_HTLB_U        29      /* r/w set cr28 only if tag nomatch */
        !           161: #define        DR0_PCXL2_HTLB_N        30      /* r/w set cr28 from w3 or w7 (0) */
        !           162: #define        DR0_PCXL2_HTLB_D        31      /* r/w disable DTLB htlb lookup */
        !           163:
        !           164: #define        DR_ITLB_SIZE_1          24
        !           165: #define        DR_ITLB_SIZE_0          25
        !           166:
        !           167: #define        DR_DTLB_SIZE_1          26
        !           168: #define        DR_DTLB_SIZE_0          27
        !           169:
        !           170: #define CCR_MASK 0xff
        !           171:
        !           172: #define        HPPA_NREGS      (32)
        !           173: #define        HPPA_NFPREGS    (33)    /* 33rd is used for r0 in fpemul */
        !           174:
        !           175: #ifndef _LOCORE
        !           176:
        !           177: struct reg {
        !           178:        u_int32_t r_regs[HPPA_NREGS];   /* r0 is sar */
        !           179:        u_int32_t r_pc;
        !           180:        u_int32_t r_npc;
        !           181: };
        !           182:
        !           183: struct fpreg {
        !           184:        u_int64_t fpr_regs[HPPA_NFPREGS];
        !           185: };
        !           186: #endif /* !_LOCORE */
        !           187:
        !           188: #endif /* _MACHINE_REG_H_ */

CVSweb