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