fromHudsonOsf.h revision 8012
18012Ssaidi@eecs.umich.edu/*
28012Ssaidi@eecs.umich.eduCopyright 1993, 1994 Hewlett-Packard Development Company, L.P.
38012Ssaidi@eecs.umich.edu
48012Ssaidi@eecs.umich.eduPermission is hereby granted, free of charge, to any person obtaining a copy of
58012Ssaidi@eecs.umich.eduthis software and associated documentation files (the "Software"), to deal in
68012Ssaidi@eecs.umich.eduthe Software without restriction, including without limitation the rights to
78012Ssaidi@eecs.umich.eduuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
88012Ssaidi@eecs.umich.eduof the Software, and to permit persons to whom the Software is furnished to do
98012Ssaidi@eecs.umich.eduso, subject to the following conditions:
108012Ssaidi@eecs.umich.edu
118012Ssaidi@eecs.umich.eduThe above copyright notice and this permission notice shall be included in all
128012Ssaidi@eecs.umich.educopies or substantial portions of the Software.
138012Ssaidi@eecs.umich.edu
148012Ssaidi@eecs.umich.eduTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
158012Ssaidi@eecs.umich.eduIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
168012Ssaidi@eecs.umich.eduFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
178012Ssaidi@eecs.umich.eduAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
188012Ssaidi@eecs.umich.eduLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
198012Ssaidi@eecs.umich.eduOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
208012Ssaidi@eecs.umich.eduSOFTWARE.
218012Ssaidi@eecs.umich.edu*/
228012Ssaidi@eecs.umich.edu
237997Ssaidi@eecs.umich.edu#ifndef FROMHUDSONOSF_INCLUDED
247997Ssaidi@eecs.umich.edu#define FROMHUDSONOSF_INCLUDED 1
257997Ssaidi@eecs.umich.edu/*
267997Ssaidi@eecs.umich.edu *      VID: [T1.2] PT: [Fri Apr 21 16:47:14 1995] SF: [osf.h]
277997Ssaidi@eecs.umich.edu *       TI: [/sae_users/cruz/bin/vice -iplatform.s -l// -p# -DEB164 -h -m -aeb164 ]
287997Ssaidi@eecs.umich.edu */
297997Ssaidi@eecs.umich.edu#define	__OSF_LOADED	1
307997Ssaidi@eecs.umich.edu/*
317997Ssaidi@eecs.umich.edu**
327997Ssaidi@eecs.umich.edu**  FACILITY:
337997Ssaidi@eecs.umich.edu**
347997Ssaidi@eecs.umich.edu**	DECchip 21164 PALcode
357997Ssaidi@eecs.umich.edu**
367997Ssaidi@eecs.umich.edu**  MODULE:
377997Ssaidi@eecs.umich.edu**
387997Ssaidi@eecs.umich.edu**	osf.h
397997Ssaidi@eecs.umich.edu**
407997Ssaidi@eecs.umich.edu**  MODULE DESCRIPTION:
417997Ssaidi@eecs.umich.edu**
427997Ssaidi@eecs.umich.edu**      OSF/1 specific definitions
437997Ssaidi@eecs.umich.edu**
447997Ssaidi@eecs.umich.edu**  AUTHOR: ER
457997Ssaidi@eecs.umich.edu**
467997Ssaidi@eecs.umich.edu**  CREATION DATE:  24-Nov-1993
477997Ssaidi@eecs.umich.edu**
487997Ssaidi@eecs.umich.edu**  $Id: fromHudsonOsf.h,v 1.1.1.1 1997/10/30 23:27:19 verghese Exp $
497997Ssaidi@eecs.umich.edu**
507997Ssaidi@eecs.umich.edu**  MODIFICATION HISTORY:
517997Ssaidi@eecs.umich.edu**
527997Ssaidi@eecs.umich.edu**  $Log: fromHudsonOsf.h,v $
537997Ssaidi@eecs.umich.edu**  Revision 1.1.1.1  1997/10/30 23:27:19  verghese
547997Ssaidi@eecs.umich.edu**  current 10/29/97
557997Ssaidi@eecs.umich.edu**
567997Ssaidi@eecs.umich.edu**  Revision 1.1  1995/11/18 01:46:31  boyle
577997Ssaidi@eecs.umich.edu**  Initial revision
587997Ssaidi@eecs.umich.edu**
597997Ssaidi@eecs.umich.edu**  Revision 1.11  1995/04/21  02:06:30  fdh
607997Ssaidi@eecs.umich.edu**  Replaced C++ style comments with Standard C style comments.
617997Ssaidi@eecs.umich.edu**
627997Ssaidi@eecs.umich.edu**  Revision 1.10  1994/09/26  14:17:47  samberg
637997Ssaidi@eecs.umich.edu**  Complete VICE work and EB164/SD164 breakout.
647997Ssaidi@eecs.umich.edu**
657997Ssaidi@eecs.umich.edu**  Revision 1.9  1994/07/26  17:39:10  samberg
667997Ssaidi@eecs.umich.edu**  Changes for SD164.
677997Ssaidi@eecs.umich.edu**
687997Ssaidi@eecs.umich.edu**  Revision 1.8  1994/07/08  17:03:48  samberg
697997Ssaidi@eecs.umich.edu**  Changes to support platform specific additions
707997Ssaidi@eecs.umich.edu**
717997Ssaidi@eecs.umich.edu**  Revision 1.7  1994/05/20  19:23:51  ericr
727997Ssaidi@eecs.umich.edu**  Moved STACK_FRAME macro from osfpal.s to here
737997Ssaidi@eecs.umich.edu**
747997Ssaidi@eecs.umich.edu**  Revision 1.6  1994/05/20  18:08:19  ericr
757997Ssaidi@eecs.umich.edu**  Changed line comments to C++ style comment character
767997Ssaidi@eecs.umich.edu**
777997Ssaidi@eecs.umich.edu**  Revision 1.5  1994/01/11  18:43:33  ericr
787997Ssaidi@eecs.umich.edu**  Removed PAL version/revision and size constants
797997Ssaidi@eecs.umich.edu**
807997Ssaidi@eecs.umich.edu**  Revision 1.4  1994/01/05  16:22:32  ericr
817997Ssaidi@eecs.umich.edu**  Added more SCB vector offsets and MCHK error code
827997Ssaidi@eecs.umich.edu**
837997Ssaidi@eecs.umich.edu**  Revision 1.3  1994/01/03  19:35:40  ericr
847997Ssaidi@eecs.umich.edu**  Derive mask definitions from field constants
857997Ssaidi@eecs.umich.edu**
867997Ssaidi@eecs.umich.edu**  Revision 1.2  1993/12/22  20:43:01  eric
877997Ssaidi@eecs.umich.edu**  Added mask definitions for MCES bits
887997Ssaidi@eecs.umich.edu**
897997Ssaidi@eecs.umich.edu**  Revision 1.1  1993/12/16  21:55:05  eric
907997Ssaidi@eecs.umich.edu**  Initial revision
917997Ssaidi@eecs.umich.edu**
927997Ssaidi@eecs.umich.edu**
937997Ssaidi@eecs.umich.edu**--
947997Ssaidi@eecs.umich.edu*/
957997Ssaidi@eecs.umich.edu
967997Ssaidi@eecs.umich.edu/*
977997Ssaidi@eecs.umich.edu**  Seg0 and Seg1 Virtual Address (VA) Format
987997Ssaidi@eecs.umich.edu**
997997Ssaidi@eecs.umich.edu**	  Loc	Size	Name	Function
1007997Ssaidi@eecs.umich.edu**	 -----	----	----	---------------------------------
1017997Ssaidi@eecs.umich.edu**	<42:33>  10	SEG1	First level page table offset
1027997Ssaidi@eecs.umich.edu**	<32:23>  10	SEG2	Second level page table offset
1037997Ssaidi@eecs.umich.edu**	<22:13>  10	SEG3	Third level page table offset
1047997Ssaidi@eecs.umich.edu**	<12:00>  13	OFFSET	Byte within page offset
1057997Ssaidi@eecs.umich.edu*/
1067997Ssaidi@eecs.umich.edu
1077997Ssaidi@eecs.umich.edu#define VA_V_SEG1	33
1087997Ssaidi@eecs.umich.edu#define	VA_M_SEG1	(0x3FF<<VA_V_SEG1)
1097997Ssaidi@eecs.umich.edu#define VA_V_SEG2	23
1107997Ssaidi@eecs.umich.edu#define VA_M_SEG2	(0x3FF<<VA_V_SEG2)
1117997Ssaidi@eecs.umich.edu#define VA_V_SEG3	13
1127997Ssaidi@eecs.umich.edu#define VA_M_SEG3	(0x3FF<<VA_V_SEG3)
1137997Ssaidi@eecs.umich.edu#define VA_V_OFFSET	0
1147997Ssaidi@eecs.umich.edu#define VA_M_OFFSET	0x1FFF
1157997Ssaidi@eecs.umich.edu
1167997Ssaidi@eecs.umich.edu/*
1177997Ssaidi@eecs.umich.edu**  Virtual Address Options: 8K byte page size
1187997Ssaidi@eecs.umich.edu*/
1197997Ssaidi@eecs.umich.edu
1207997Ssaidi@eecs.umich.edu#define	VA_S_SIZE	43
1217997Ssaidi@eecs.umich.edu#define	VA_S_OFF	13
1227997Ssaidi@eecs.umich.edu#define	va_s_off	13
1237997Ssaidi@eecs.umich.edu#define VA_S_SEG	10
1247997Ssaidi@eecs.umich.edu#define VA_S_PAGE_SIZE	8192
1257997Ssaidi@eecs.umich.edu
1267997Ssaidi@eecs.umich.edu/*
1277997Ssaidi@eecs.umich.edu**  Page Table Entry (PTE) Format
1287997Ssaidi@eecs.umich.edu**
1297997Ssaidi@eecs.umich.edu**	 Extent	Size	Name	Function
1307997Ssaidi@eecs.umich.edu**	 ------	----	----	---------------------------------
1317997Ssaidi@eecs.umich.edu**	<63:32>	  32	PFN	Page Frame Number
1327997Ssaidi@eecs.umich.edu**	<31:16>	  16	SW	Reserved for software
1337997Ssaidi@eecs.umich.edu**	<15:14>	   2	RSV0	Reserved for hardware SBZ
1347997Ssaidi@eecs.umich.edu**	   <13>	   1	UWE	User Write Enable
1357997Ssaidi@eecs.umich.edu**	   <12>	   1	KWE	Kernel Write Enable
1367997Ssaidi@eecs.umich.edu**	<11:10>	   2	RSV1	Reserved for hardware SBZ
1377997Ssaidi@eecs.umich.edu**	    <9>	   1	URE	User Read Enable
1387997Ssaidi@eecs.umich.edu**	    <8>	   1	KRE	Kernel Read Enable
1397997Ssaidi@eecs.umich.edu**	    <7>	   1	RSV2	Reserved for hardware SBZ
1407997Ssaidi@eecs.umich.edu**	  <6:5>	   2	GH	Granularity Hint
1417997Ssaidi@eecs.umich.edu**	    <4>	   1	ASM	Address Space Match
1427997Ssaidi@eecs.umich.edu**	    <3>	   1	FOE	Fault On Execute
1437997Ssaidi@eecs.umich.edu**	    <2>	   1	FOW	Fault On Write
1447997Ssaidi@eecs.umich.edu**	    <1>	   1	FOR	Fault On Read
1457997Ssaidi@eecs.umich.edu**	    <0>	   1	V	Valid
1467997Ssaidi@eecs.umich.edu*/
1477997Ssaidi@eecs.umich.edu
1487997Ssaidi@eecs.umich.edu#define	PTE_V_PFN	32
1497997Ssaidi@eecs.umich.edu#define PTE_M_PFN	0xFFFFFFFF00000000
1507997Ssaidi@eecs.umich.edu#define PTE_V_SW	16
1517997Ssaidi@eecs.umich.edu#define PTE_M_SW	0x00000000FFFF0000
1527997Ssaidi@eecs.umich.edu#define PTE_V_UWE	13
1537997Ssaidi@eecs.umich.edu#define PTE_M_UWE	(1<<PTE_V_UWE)
1547997Ssaidi@eecs.umich.edu#define PTE_V_KWE	12
1557997Ssaidi@eecs.umich.edu#define PTE_M_KWE	(1<<PTE_V_KWE)
1567997Ssaidi@eecs.umich.edu#define PTE_V_URE	9
1577997Ssaidi@eecs.umich.edu#define PTE_M_URE	(1<<PTE_V_URE)
1587997Ssaidi@eecs.umich.edu#define PTE_V_KRE	8
1597997Ssaidi@eecs.umich.edu#define PTE_M_KRE	(1<<PTE_V_KRE)
1607997Ssaidi@eecs.umich.edu#define PTE_V_GH	5
1617997Ssaidi@eecs.umich.edu#define PTE_M_GH	(3<<PTE_V_GH)
1627997Ssaidi@eecs.umich.edu#define PTE_V_ASM	4
1637997Ssaidi@eecs.umich.edu#define PTE_M_ASM	(1<<PTE_V_ASM)
1647997Ssaidi@eecs.umich.edu#define PTE_V_FOE	3
1657997Ssaidi@eecs.umich.edu#define PTE_M_FOE	(1<<PTE_V_FOE)
1667997Ssaidi@eecs.umich.edu#define PTE_V_FOW	2
1677997Ssaidi@eecs.umich.edu#define PTE_M_FOW	(1<<PTE_V_FOW)
1687997Ssaidi@eecs.umich.edu#define PTE_V_FOR	1
1697997Ssaidi@eecs.umich.edu#define PTE_M_FOR	(1<<PTE_V_FOR)
1707997Ssaidi@eecs.umich.edu#define PTE_V_VALID	0
1717997Ssaidi@eecs.umich.edu#define PTE_M_VALID	(1<<PTE_V_VALID)
1727997Ssaidi@eecs.umich.edu
1737997Ssaidi@eecs.umich.edu#define PTE_M_KSEG	0x1111
1747997Ssaidi@eecs.umich.edu#define PTE_M_PROT	0x3300
1757997Ssaidi@eecs.umich.edu#define pte_m_prot	0x3300
1767997Ssaidi@eecs.umich.edu
1777997Ssaidi@eecs.umich.edu/*
1787997Ssaidi@eecs.umich.edu**  System Entry Instruction Fault (entIF) Constants:
1797997Ssaidi@eecs.umich.edu*/
1807997Ssaidi@eecs.umich.edu
1817997Ssaidi@eecs.umich.edu#define IF_K_BPT        0x0
1827997Ssaidi@eecs.umich.edu#define IF_K_BUGCHK     0x1
1837997Ssaidi@eecs.umich.edu#define IF_K_GENTRAP    0x2
1847997Ssaidi@eecs.umich.edu#define IF_K_FEN        0x3
1857997Ssaidi@eecs.umich.edu#define IF_K_OPCDEC     0x4
1867997Ssaidi@eecs.umich.edu
1877997Ssaidi@eecs.umich.edu/*
1887997Ssaidi@eecs.umich.edu**  System Entry Hardware Interrupt (entInt) Constants:
1897997Ssaidi@eecs.umich.edu*/
1907997Ssaidi@eecs.umich.edu
1917997Ssaidi@eecs.umich.edu#define INT_K_IP	0x0
1927997Ssaidi@eecs.umich.edu#define INT_K_CLK	0x1
1937997Ssaidi@eecs.umich.edu#define INT_K_MCHK	0x2
1947997Ssaidi@eecs.umich.edu#define INT_K_DEV	0x3
1957997Ssaidi@eecs.umich.edu#define INT_K_PERF	0x4
1967997Ssaidi@eecs.umich.edu
1977997Ssaidi@eecs.umich.edu/*
1987997Ssaidi@eecs.umich.edu**  System Entry MM Fault (entMM) Constants:
1997997Ssaidi@eecs.umich.edu*/
2007997Ssaidi@eecs.umich.edu
2017997Ssaidi@eecs.umich.edu#define	MM_K_TNV	0x0
2027997Ssaidi@eecs.umich.edu#define MM_K_ACV	0x1
2037997Ssaidi@eecs.umich.edu#define MM_K_FOR	0x2
2047997Ssaidi@eecs.umich.edu#define MM_K_FOE	0x3
2057997Ssaidi@eecs.umich.edu#define MM_K_FOW	0x4
2067997Ssaidi@eecs.umich.edu
2077997Ssaidi@eecs.umich.edu/*
2087997Ssaidi@eecs.umich.edu**  Process Control Block (PCB) Offsets:
2097997Ssaidi@eecs.umich.edu*/
2107997Ssaidi@eecs.umich.edu
2117997Ssaidi@eecs.umich.edu#define PCB_Q_KSP	0x0000
2127997Ssaidi@eecs.umich.edu#define PCB_Q_USP	0x0008
2137997Ssaidi@eecs.umich.edu#define PCB_Q_PTBR	0x0010
2147997Ssaidi@eecs.umich.edu#define PCB_L_PCC	0x0018
2157997Ssaidi@eecs.umich.edu#define PCB_L_ASN	0x001C
2167997Ssaidi@eecs.umich.edu#define PCB_Q_UNIQUE	0x0020
2177997Ssaidi@eecs.umich.edu#define PCB_Q_FEN	0x0028
2187997Ssaidi@eecs.umich.edu#define PCB_Q_RSV0	0x0030
2197997Ssaidi@eecs.umich.edu#define PCB_Q_RSV1	0x0038
2207997Ssaidi@eecs.umich.edu
2217997Ssaidi@eecs.umich.edu/*
2227997Ssaidi@eecs.umich.edu**  Processor Status Register (PS) Bit Summary
2237997Ssaidi@eecs.umich.edu**
2247997Ssaidi@eecs.umich.edu**	Extent	Size	Name	Function
2257997Ssaidi@eecs.umich.edu**	------	----	----	---------------------------------
2267997Ssaidi@eecs.umich.edu**	  <3>	 1	CM	Current Mode
2277997Ssaidi@eecs.umich.edu**	<2:0>	 3	IPL	Interrupt Priority Level
2287997Ssaidi@eecs.umich.edu**/
2297997Ssaidi@eecs.umich.edu
2307997Ssaidi@eecs.umich.edu#define	PS_V_CM		3
2317997Ssaidi@eecs.umich.edu#define PS_M_CM		(1<<PS_V_CM)
2327997Ssaidi@eecs.umich.edu#define	PS_V_IPL	0
2337997Ssaidi@eecs.umich.edu#define	PS_M_IPL	(7<<PS_V_IPL)
2347997Ssaidi@eecs.umich.edu
2357997Ssaidi@eecs.umich.edu#define	PS_K_KERN	(0<<PS_V_CM)
2367997Ssaidi@eecs.umich.edu#define PS_K_USER	(1<<PS_V_CM)
2377997Ssaidi@eecs.umich.edu
2387997Ssaidi@eecs.umich.edu#define	IPL_K_ZERO	0x0
2397997Ssaidi@eecs.umich.edu#define IPL_K_SW0	0x1
2407997Ssaidi@eecs.umich.edu#define IPL_K_SW1	0x2
2417997Ssaidi@eecs.umich.edu#define IPL_K_DEV0	0x3
2427997Ssaidi@eecs.umich.edu#define IPL_K_DEV1	0x4
2437997Ssaidi@eecs.umich.edu#define IPL_K_CLK	0x5
2447997Ssaidi@eecs.umich.edu#define IPL_K_RT	0x6
2457997Ssaidi@eecs.umich.edu#define IPL_K_PERF      0x6
2467997Ssaidi@eecs.umich.edu#define IPL_K_PFAIL     0x6
2477997Ssaidi@eecs.umich.edu#define IPL_K_MCHK	0x7
2487997Ssaidi@eecs.umich.edu
2497997Ssaidi@eecs.umich.edu#define IPL_K_LOW	0x0
2507997Ssaidi@eecs.umich.edu#define IPL_K_HIGH	0x7
2517997Ssaidi@eecs.umich.edu
2527997Ssaidi@eecs.umich.edu/*
2537997Ssaidi@eecs.umich.edu**  SCB Offset Definitions:
2547997Ssaidi@eecs.umich.edu*/
2557997Ssaidi@eecs.umich.edu
2567997Ssaidi@eecs.umich.edu#define SCB_Q_FEN	    	0x0010
2577997Ssaidi@eecs.umich.edu#define SCB_Q_ACV		0x0080
2587997Ssaidi@eecs.umich.edu#define SCB_Q_TNV		0x0090
2597997Ssaidi@eecs.umich.edu#define SCB_Q_FOR		0x00A0
2607997Ssaidi@eecs.umich.edu#define SCB_Q_FOW		0x00B0
2617997Ssaidi@eecs.umich.edu#define SCB_Q_FOE		0x00C0
2627997Ssaidi@eecs.umich.edu#define SCB_Q_ARITH		0x0200
2637997Ssaidi@eecs.umich.edu#define SCB_Q_KAST		0x0240
2647997Ssaidi@eecs.umich.edu#define SCB_Q_EAST		0x0250
2657997Ssaidi@eecs.umich.edu#define SCB_Q_SAST		0x0260
2667997Ssaidi@eecs.umich.edu#define SCB_Q_UAST		0x0270
2677997Ssaidi@eecs.umich.edu#define SCB_Q_UNALIGN		0x0280
2687997Ssaidi@eecs.umich.edu#define SCB_Q_BPT		0x0400
2697997Ssaidi@eecs.umich.edu#define SCB_Q_BUGCHK		0x0410
2707997Ssaidi@eecs.umich.edu#define SCB_Q_OPCDEC		0x0420
2717997Ssaidi@eecs.umich.edu#define SCB_Q_ILLPAL		0x0430
2727997Ssaidi@eecs.umich.edu#define SCB_Q_TRAP		0x0440
2737997Ssaidi@eecs.umich.edu#define SCB_Q_CHMK		0x0480
2747997Ssaidi@eecs.umich.edu#define SCB_Q_CHME		0x0490
2757997Ssaidi@eecs.umich.edu#define SCB_Q_CHMS		0x04A0
2767997Ssaidi@eecs.umich.edu#define SCB_Q_CHMU		0x04B0
2777997Ssaidi@eecs.umich.edu#define SCB_Q_SW0		0x0500
2787997Ssaidi@eecs.umich.edu#define SCB_Q_SW1		0x0510
2797997Ssaidi@eecs.umich.edu#define SCB_Q_SW2		0x0520
2807997Ssaidi@eecs.umich.edu#define SCB_Q_SW3		0x0530
2817997Ssaidi@eecs.umich.edu#define	SCB_Q_SW4		0x0540
2827997Ssaidi@eecs.umich.edu#define SCB_Q_SW5		0x0550
2837997Ssaidi@eecs.umich.edu#define SCB_Q_SW6		0x0560
2847997Ssaidi@eecs.umich.edu#define SCB_Q_SW7		0x0570
2857997Ssaidi@eecs.umich.edu#define SCB_Q_SW8		0x0580
2867997Ssaidi@eecs.umich.edu#define SCB_Q_SW9		0x0590
2877997Ssaidi@eecs.umich.edu#define SCB_Q_SW10		0x05A0
2887997Ssaidi@eecs.umich.edu#define SCB_Q_SW11		0x05B0
2897997Ssaidi@eecs.umich.edu#define SCB_Q_SW12		0x05C0
2907997Ssaidi@eecs.umich.edu#define SCB_Q_SW13		0x05D0
2917997Ssaidi@eecs.umich.edu#define SCB_Q_SW14		0x05E0
2927997Ssaidi@eecs.umich.edu#define SCB_Q_SW15		0x05F0
2937997Ssaidi@eecs.umich.edu#define SCB_Q_CLOCK		0x0600
2947997Ssaidi@eecs.umich.edu#define SCB_Q_INTER		0x0610
2957997Ssaidi@eecs.umich.edu#define SCB_Q_SYSERR        	0x0620
2967997Ssaidi@eecs.umich.edu#define SCB_Q_PROCERR		0x0630
2977997Ssaidi@eecs.umich.edu#define SCB_Q_PWRFAIL		0x0640
2987997Ssaidi@eecs.umich.edu#define SCB_Q_PERFMON		0x0650
2997997Ssaidi@eecs.umich.edu#define SCB_Q_SYSMCHK		0x0660
3007997Ssaidi@eecs.umich.edu#define SCB_Q_PROCMCHK      	0x0670
3017997Ssaidi@eecs.umich.edu#define SCB_Q_PASSREL		0x0680
3027997Ssaidi@eecs.umich.edu
3037997Ssaidi@eecs.umich.edu/*
3047997Ssaidi@eecs.umich.edu**  Stack Frame (FRM) Offsets:
3057997Ssaidi@eecs.umich.edu**
3067997Ssaidi@eecs.umich.edu**  There are two types of system entries for OSF/1 - those for the
3077997Ssaidi@eecs.umich.edu**  callsys CALL_PAL function and those for exceptions and interrupts.
3087997Ssaidi@eecs.umich.edu**  Both entry types use the same stack frame layout.  The stack frame
3097997Ssaidi@eecs.umich.edu**  contains space for the PC, the PS, the saved GP, and the saved
3107997Ssaidi@eecs.umich.edu**  argument registers a0, a1, and a2.  On entry, SP points to the
3117997Ssaidi@eecs.umich.edu**  saved PS.
3127997Ssaidi@eecs.umich.edu*/
3137997Ssaidi@eecs.umich.edu
3147997Ssaidi@eecs.umich.edu#define	FRM_Q_PS	0x0000
3157997Ssaidi@eecs.umich.edu#define FRM_Q_PC	0x0008
3167997Ssaidi@eecs.umich.edu#define FRM_Q_GP	0x0010
3177997Ssaidi@eecs.umich.edu#define FRM_Q_A0	0x0018
3187997Ssaidi@eecs.umich.edu#define FRM_Q_A1	0x0020
3197997Ssaidi@eecs.umich.edu#define FRM_Q_A2	0x0028
3207997Ssaidi@eecs.umich.edu
3217997Ssaidi@eecs.umich.edu#define FRM_K_SIZE	48
3227997Ssaidi@eecs.umich.edu
3237997Ssaidi@eecs.umich.edu#define STACK_FRAME(tmp1,tmp2)	\
3247997Ssaidi@eecs.umich.edu        sll	ps, 63-PS_V_CM, p7;	\
3257997Ssaidi@eecs.umich.edu        bge	p7, 0f;			\
3267997Ssaidi@eecs.umich.edu        bis	zero, zero, ps;		\
3277997Ssaidi@eecs.umich.edu        mtpr	sp, ptUsp;		\
3287997Ssaidi@eecs.umich.edu        mfpr	sp, ptKsp;		\
3297997Ssaidi@eecs.umich.edu0:	lda	sp, 0-FRM_K_SIZE(sp);	\
3307997Ssaidi@eecs.umich.edu        stq	tmp1, FRM_Q_PS(sp);	\
3317997Ssaidi@eecs.umich.edu        stq	tmp2, FRM_Q_PC(sp);	\
3327997Ssaidi@eecs.umich.edu        stq	gp, FRM_Q_GP(sp);	\
3337997Ssaidi@eecs.umich.edu        stq	a0, FRM_Q_A0(sp);	\
3347997Ssaidi@eecs.umich.edu        stq	a1, FRM_Q_A1(sp);	\
3357997Ssaidi@eecs.umich.edu        stq	a2, FRM_Q_A2(sp)
3367997Ssaidi@eecs.umich.edu
3377997Ssaidi@eecs.umich.edu/*
3387997Ssaidi@eecs.umich.edu**  Halt Codes:
3397997Ssaidi@eecs.umich.edu*/
3407997Ssaidi@eecs.umich.edu
3417997Ssaidi@eecs.umich.edu#define HLT_K_RESET	    0x0000
3427997Ssaidi@eecs.umich.edu#define HLT_K_HW_HALT	    0x0001
3437997Ssaidi@eecs.umich.edu#define HLT_K_KSP_INVAL	    0x0002
3447997Ssaidi@eecs.umich.edu#define HLT_K_SCBB_INVAL    0x0003
3457997Ssaidi@eecs.umich.edu#define HLT_K_PTBR_INVAL    0x0004
3467997Ssaidi@eecs.umich.edu#define HLT_K_SW_HALT	    0x0005
3477997Ssaidi@eecs.umich.edu#define HLT_K_DBL_MCHK	    0x0006
3487997Ssaidi@eecs.umich.edu#define HLT_K_MCHK_FROM_PAL 0x0007
3497997Ssaidi@eecs.umich.edu
3507997Ssaidi@eecs.umich.edu/*
3517997Ssaidi@eecs.umich.edu**  Machine Check Codes:
3527997Ssaidi@eecs.umich.edu*/
3537997Ssaidi@eecs.umich.edu
3547997Ssaidi@eecs.umich.edu#define MCHK_K_TPERR	    0x0080
3557997Ssaidi@eecs.umich.edu#define MCHK_K_TCPERR	    0x0082
3567997Ssaidi@eecs.umich.edu#define MCHK_K_HERR	    0x0084
3577997Ssaidi@eecs.umich.edu#define MCHK_K_ECC_C	    0x0086
3587997Ssaidi@eecs.umich.edu#define MCHK_K_ECC_NC	    0x0088
3597997Ssaidi@eecs.umich.edu#define MCHK_K_UNKNOWN	    0x008A
3607997Ssaidi@eecs.umich.edu#define MCHK_K_CACKSOFT	    0x008C
3617997Ssaidi@eecs.umich.edu#define MCHK_K_BUGCHECK	    0x008E
3627997Ssaidi@eecs.umich.edu#define MCHK_K_OS_BUGCHECK  0x0090
3637997Ssaidi@eecs.umich.edu#define MCHK_K_DCPERR	    0x0092
3647997Ssaidi@eecs.umich.edu#define MCHK_K_ICPERR	    0x0094
3657997Ssaidi@eecs.umich.edu#define MCHK_K_RETRY_IRD    0x0096
3667997Ssaidi@eecs.umich.edu#define MCHK_K_PROC_HERR    0x0098
3677997Ssaidi@eecs.umich.edu
3687997Ssaidi@eecs.umich.edu/*
3697997Ssaidi@eecs.umich.edu** System Machine Check Codes:
3707997Ssaidi@eecs.umich.edu*/
3717997Ssaidi@eecs.umich.edu
3727997Ssaidi@eecs.umich.edu#define MCHK_K_READ_NXM     0x0200
3737997Ssaidi@eecs.umich.edu#define MCHK_K_SYS_HERR     0x0202
3747997Ssaidi@eecs.umich.edu
3757997Ssaidi@eecs.umich.edu/*
3767997Ssaidi@eecs.umich.edu**  Machine Check Error Status Summary (MCES) Register Format
3777997Ssaidi@eecs.umich.edu**
3787997Ssaidi@eecs.umich.edu**	 Extent	Size	Name	Function
3797997Ssaidi@eecs.umich.edu**	 ------	----	----	---------------------------------
3807997Ssaidi@eecs.umich.edu**	  <0>	  1	MIP	Machine check in progress
3817997Ssaidi@eecs.umich.edu**	  <1>	  1	SCE	System correctable error in progress
3827997Ssaidi@eecs.umich.edu**	  <2>	  1	PCE	Processor correctable error in progress
3837997Ssaidi@eecs.umich.edu**	  <3>	  1	DPC	Disable PCE error reporting
3847997Ssaidi@eecs.umich.edu**	  <4>	  1	DSC	Disable SCE error reporting
3857997Ssaidi@eecs.umich.edu*/
3867997Ssaidi@eecs.umich.edu
3877997Ssaidi@eecs.umich.edu#define MCES_V_MIP	0
3887997Ssaidi@eecs.umich.edu#define MCES_M_MIP	(1<<MCES_V_MIP)
3897997Ssaidi@eecs.umich.edu#define MCES_V_SCE	1
3907997Ssaidi@eecs.umich.edu#define MCES_M_SCE	(1<<MCES_V_SCE)
3917997Ssaidi@eecs.umich.edu#define MCES_V_PCE	2
3927997Ssaidi@eecs.umich.edu#define MCES_M_PCE	(1<<MCES_V_PCE)
3937997Ssaidi@eecs.umich.edu#define MCES_V_DPC	3
3947997Ssaidi@eecs.umich.edu#define MCES_M_DPC	(1<<MCES_V_DPC)
3957997Ssaidi@eecs.umich.edu#define MCES_V_DSC	4
3967997Ssaidi@eecs.umich.edu#define MCES_M_DSC	(1<<MCES_V_DSC)
3977997Ssaidi@eecs.umich.edu
3987997Ssaidi@eecs.umich.edu#define MCES_M_ALL      (MCES_M_MIP | MCES_M_SCE | MCES_M_PCE | MCES_M_DPC \
3997997Ssaidi@eecs.umich.edu                         | MCES_M_DSC)
4007997Ssaidi@eecs.umich.edu
4017997Ssaidi@eecs.umich.edu/*
4027997Ssaidi@eecs.umich.edu**  Who-Am-I (WHAMI) Register Format
4037997Ssaidi@eecs.umich.edu**
4047997Ssaidi@eecs.umich.edu**	 Extent	Size	Name	Function
4057997Ssaidi@eecs.umich.edu**	 ------	----	----	---------------------------------
4067997Ssaidi@eecs.umich.edu**	  <7:0>	  8	ID	Who-Am-I identifier
4077997Ssaidi@eecs.umich.edu**	  <15:8>   1	SWAP	Swap PALcode flag - character 'S'
4087997Ssaidi@eecs.umich.edu*/
4097997Ssaidi@eecs.umich.edu
4107997Ssaidi@eecs.umich.edu#define WHAMI_V_SWAP	8
4117997Ssaidi@eecs.umich.edu#define WHAMI_M_SWAP	(1<<WHAMI_V_SWAP)
4127997Ssaidi@eecs.umich.edu#define WHAMI_V_ID	0
4137997Ssaidi@eecs.umich.edu#define WHAMI_M_ID	0xFF
4147997Ssaidi@eecs.umich.edu
4157997Ssaidi@eecs.umich.edu#define WHAMI_K_SWAP    0x53    /* Character 'S' */
4167997Ssaidi@eecs.umich.edu
4177997Ssaidi@eecs.umich.edu/*
4187997Ssaidi@eecs.umich.edu**  Conventional Register Usage Definitions
4197997Ssaidi@eecs.umich.edu**
4207997Ssaidi@eecs.umich.edu**  Assembler temporary `at' is `AT' so it doesn't conflict with the
4217997Ssaidi@eecs.umich.edu**  `.set at' assembler directive.
4227997Ssaidi@eecs.umich.edu*/
4237997Ssaidi@eecs.umich.edu
4247997Ssaidi@eecs.umich.edu#define v0		$0	/* Function Return Value Register */
4257997Ssaidi@eecs.umich.edu#define t0		$1	/* Scratch (Temporary) Registers ... */
4267997Ssaidi@eecs.umich.edu#define t1		$2
4277997Ssaidi@eecs.umich.edu#define t2		$3
4287997Ssaidi@eecs.umich.edu#define t3		$4
4297997Ssaidi@eecs.umich.edu#define t4		$5
4307997Ssaidi@eecs.umich.edu#define t5		$6
4317997Ssaidi@eecs.umich.edu#define t6		$7
4327997Ssaidi@eecs.umich.edu#define t7		$8
4337997Ssaidi@eecs.umich.edu#define s0		$9	/* Saved (Non-Volatile) Registers ... */
4347997Ssaidi@eecs.umich.edu#define s1		$10
4357997Ssaidi@eecs.umich.edu#define s2		$11
4367997Ssaidi@eecs.umich.edu#define s3		$12
4377997Ssaidi@eecs.umich.edu#define s4		$13
4387997Ssaidi@eecs.umich.edu#define s5		$14
4397997Ssaidi@eecs.umich.edu#define fp		$15	/* Frame Pointer Register, Or S6 */
4407997Ssaidi@eecs.umich.edu#define s6		$15
4417997Ssaidi@eecs.umich.edu#define a0		$16	/* Argument Registers ... */
4427997Ssaidi@eecs.umich.edu#define a1		$17
4437997Ssaidi@eecs.umich.edu#define a2		$18
4447997Ssaidi@eecs.umich.edu#define a3		$19
4457997Ssaidi@eecs.umich.edu#define a4		$20
4467997Ssaidi@eecs.umich.edu#define a5		$21
4477997Ssaidi@eecs.umich.edu#define t8		$22	/* Scratch (Temporary) Registers ... */
4487997Ssaidi@eecs.umich.edu#define t9		$23
4497997Ssaidi@eecs.umich.edu#define t10		$24
4507997Ssaidi@eecs.umich.edu#define t11		$25
4517997Ssaidi@eecs.umich.edu#define ra		$26	/* Return Address Register */
4527997Ssaidi@eecs.umich.edu#define pv		$27	/* Procedure Value Register, Or T12 */
4537997Ssaidi@eecs.umich.edu#define t12		$27
4547997Ssaidi@eecs.umich.edu#define AT		$28	/* Assembler Temporary (Volatile) Register */
4557997Ssaidi@eecs.umich.edu#define gp		$29	/* Global Pointer Register */
4567997Ssaidi@eecs.umich.edu#define sp		$30	/* Stack Pointer Register */
4577997Ssaidi@eecs.umich.edu#define zero		$31	/* Zero Register */
4587997Ssaidi@eecs.umich.edu
4597997Ssaidi@eecs.umich.edu/*
4607997Ssaidi@eecs.umich.edu**  OSF/1 Unprivileged CALL_PAL Entry Offsets:
4617997Ssaidi@eecs.umich.edu**
4627997Ssaidi@eecs.umich.edu**	Entry Name	    Offset (Hex)
4637997Ssaidi@eecs.umich.edu**
4647997Ssaidi@eecs.umich.edu**	bpt		     0080
4657997Ssaidi@eecs.umich.edu**	bugchk		     0081
4667997Ssaidi@eecs.umich.edu**	callsys		     0083
4677997Ssaidi@eecs.umich.edu**	imb		     0086
4687997Ssaidi@eecs.umich.edu**	rdunique	     009E
4697997Ssaidi@eecs.umich.edu**	wrunique	     009F
4707997Ssaidi@eecs.umich.edu**	gentrap		     00AA
4717997Ssaidi@eecs.umich.edu**	dbgstop		     00AD
4727997Ssaidi@eecs.umich.edu*/
4737997Ssaidi@eecs.umich.edu
4747997Ssaidi@eecs.umich.edu#define UNPRIV			    0x80
4757997Ssaidi@eecs.umich.edu#define	PAL_BPT_ENTRY		    0x80
4767997Ssaidi@eecs.umich.edu#define PAL_BUGCHK_ENTRY	    0x81
4777997Ssaidi@eecs.umich.edu#define PAL_CALLSYS_ENTRY	    0x83
4787997Ssaidi@eecs.umich.edu#define PAL_IMB_ENTRY		    0x86
4797997Ssaidi@eecs.umich.edu#define PAL_RDUNIQUE_ENTRY	    0x9E
4807997Ssaidi@eecs.umich.edu#define PAL_WRUNIQUE_ENTRY	    0x9F
4817997Ssaidi@eecs.umich.edu#define PAL_GENTRAP_ENTRY	    0xAA
4827997Ssaidi@eecs.umich.edu
4837997Ssaidi@eecs.umich.edu#if defined(KDEBUG)
4847997Ssaidi@eecs.umich.edu#define	PAL_DBGSTOP_ENTRY	    0xAD
4857997Ssaidi@eecs.umich.edu/* #define NUM_UNPRIV_CALL_PALS	    10 */
4867997Ssaidi@eecs.umich.edu#else
4877997Ssaidi@eecs.umich.edu/* #define NUM_UNPRIV_CALL_PALS	    9  */
4887997Ssaidi@eecs.umich.edu#endif /* KDEBUG */
4897997Ssaidi@eecs.umich.edu
4907997Ssaidi@eecs.umich.edu/*
4917997Ssaidi@eecs.umich.edu**  OSF/1 Privileged CALL_PAL Entry Offsets:
4927997Ssaidi@eecs.umich.edu**
4937997Ssaidi@eecs.umich.edu**	Entry Name	    Offset (Hex)
4947997Ssaidi@eecs.umich.edu**
4957997Ssaidi@eecs.umich.edu**	halt		     0000
4967997Ssaidi@eecs.umich.edu**	cflush		     0001
4977997Ssaidi@eecs.umich.edu**	draina		     0002
4987997Ssaidi@eecs.umich.edu**	cserve		     0009
4997997Ssaidi@eecs.umich.edu**	swppal		     000A
5007997Ssaidi@eecs.umich.edu**	rdmces		     0010
5017997Ssaidi@eecs.umich.edu**	wrmces		     0011
5027997Ssaidi@eecs.umich.edu**	wrfen		     002B
5037997Ssaidi@eecs.umich.edu**	wrvptptr	     002D
5047997Ssaidi@eecs.umich.edu**	swpctx		     0030
5057997Ssaidi@eecs.umich.edu**	wrval		     0031
5067997Ssaidi@eecs.umich.edu**	rdval		     0032
5077997Ssaidi@eecs.umich.edu**	tbi		     0033
5087997Ssaidi@eecs.umich.edu**	wrent		     0034
5097997Ssaidi@eecs.umich.edu**	swpipl		     0035
5107997Ssaidi@eecs.umich.edu**	rdps		     0036
5117997Ssaidi@eecs.umich.edu**	wrkgp		     0037
5127997Ssaidi@eecs.umich.edu**	wrusp		     0038
5137997Ssaidi@eecs.umich.edu**	rdusp		     003A
5147997Ssaidi@eecs.umich.edu**	whami		     003C
5157997Ssaidi@eecs.umich.edu**	retsys		     003D
5167997Ssaidi@eecs.umich.edu**	rti		     003F
5177997Ssaidi@eecs.umich.edu*/
5187997Ssaidi@eecs.umich.edu
5197997Ssaidi@eecs.umich.edu#define PAL_HALT_ENTRY	    0x0000
5207997Ssaidi@eecs.umich.edu#define PAL_CFLUSH_ENTRY    0x0001
5217997Ssaidi@eecs.umich.edu#define PAL_DRAINA_ENTRY    0x0002
5227997Ssaidi@eecs.umich.edu#define PAL_CSERVE_ENTRY    0x0009
5237997Ssaidi@eecs.umich.edu#define PAL_SWPPAL_ENTRY    0x000A
5247997Ssaidi@eecs.umich.edu#define PAL_WRIPIR_ENTRY    0x000D
5257997Ssaidi@eecs.umich.edu#define PAL_RDMCES_ENTRY    0x0010
5267997Ssaidi@eecs.umich.edu#define PAL_WRMCES_ENTRY    0x0011
5277997Ssaidi@eecs.umich.edu#define PAL_WRFEN_ENTRY	    0x002B
5287997Ssaidi@eecs.umich.edu#define PAL_WRVPTPTR_ENTRY  0x002D
5297997Ssaidi@eecs.umich.edu#define PAL_SWPCTX_ENTRY    0x0030
5307997Ssaidi@eecs.umich.edu#define PAL_WRVAL_ENTRY	    0x0031
5317997Ssaidi@eecs.umich.edu#define PAL_RDVAL_ENTRY	    0x0032
5327997Ssaidi@eecs.umich.edu#define PAL_TBI_ENTRY	    0x0033
5337997Ssaidi@eecs.umich.edu#define PAL_WRENT_ENTRY	    0x0034
5347997Ssaidi@eecs.umich.edu#define PAL_SWPIPL_ENTRY    0x0035
5357997Ssaidi@eecs.umich.edu#define PAL_RDPS_ENTRY	    0x0036
5367997Ssaidi@eecs.umich.edu#define PAL_WRKGP_ENTRY	    0x0037
5377997Ssaidi@eecs.umich.edu#define PAL_WRUSP_ENTRY	    0x0038
5387997Ssaidi@eecs.umich.edu#define PAL_RDUSP_ENTRY	    0x003A
5397997Ssaidi@eecs.umich.edu#define PAL_WHAMI_ENTRY	    0x003C
5407997Ssaidi@eecs.umich.edu#define PAL_RETSYS_ENTRY    0x003D
5417997Ssaidi@eecs.umich.edu#define PAL_RTI_ENTRY	    0x003F
5427997Ssaidi@eecs.umich.edu
5437997Ssaidi@eecs.umich.edu#define NUM_PRIV_CALL_PALS  23
5447997Ssaidi@eecs.umich.edu
5457997Ssaidi@eecs.umich.edu#endif
5467997Ssaidi@eecs.umich.edu
547