ev5_osfalpha_defs.h revision 8013:2dfcde2e9998
1/*
2 * Copyright 1993 Hewlett-Packard Development Company, L.P.
3 *
4 * Permission is hereby granted, free of charge, to any person
5 * obtaining a copy of this software and associated documentation
6 * files (the "Software"), to deal in the Software without
7 * restriction, including without limitation the rights to use, copy,
8 * modify, merge, publish, distribute, sublicense, and/or sell copies
9 * of the Software, and to permit persons to whom the Software is
10 * furnished to do so, subject to the following conditions:
11 *
12 * The above copyright notice and this permission notice shall be
13 * included in all copies or substantial portions of the Software.
14 *
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
19 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
20 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 * SOFTWARE.
23 */
24
25#ifndef EV5_OSFALPHA_DEFS_INCLUDED
26#define EV5_OSFALPHA_DEFS_INCLUDED 1
27
28// from ev5_osfalpha_defs.mar from Lance's fetch directory
29// lowercaseified and $ changed to _ and reformatting for gas...pb Nov/95
30
31//
32// PS Layout - PS
33//	Loc	Size	name 	function
34//	------	------	-----	-----------------------------------
35//	<0:2>	3	IPL	Prio level
36//	<3>	1	CM	Current Mode
37//
38
39#define	osfps_v_mode		3
40#define	osfps_m_mode		(1<<osfps_v_mode)
41#define	osfps_v_ipl		0
42#define	osfps_m_ipl		(7<<osfps_v_ipl)
43
44#define	osfipl_c_mchk		7
45#define	osfipl_c_rt		6
46#define	osfipl_c_clk		5
47#define	osfipl_c_dev1		4
48#define	osfipl_c_dev0		3
49#define	osfipl_c_sw1		2
50#define	osfipl_c_sw0		1
51#define	osfipl_c_zero		0
52
53#define	osfint_c_mchk		2
54#define	osfint_c_clk		1
55#define	osfint_c_dev		3
56#define	osfint_c_ip		0
57#define	osfint_c_perf		4
58#define	osfint_c_passrel	5
59
60//
61// PTE layout - symbol prefix osfpte_
62//
63//	Loc	Size	name 	function
64//	------	------	------	-----------------------------------
65//	<63:32>	32	PFN	Page Frame Number
66//	<31:16>	16	SOFT	Bits reserved for software use
67//	<15:14>	2
68//	<13>	1	UWE	User write enable
69//	<12>	1	KWE	Kernel write enable
70//	<11:10>	2
71//	<9>	1	URE	User read enable
72//	<8>	1	KRE	Kernel read enable
73//	<7:6>	2	RES	Reserved SBZ
74//	<5>	1	HPF	Huge Page Flag
75//	<4>	1	ASM	Wild card address space number match
76//	<3>	1	FOE	Fault On execute
77//	<2>	1	FOW	Fault On Write
78//	<1>	1	FOR	Fault On Read
79// 	<0>	1	V	valid bit
80//
81
82#define	osfpte_v_pfn	32
83#define	osfpte_m_soft	(0xFFFF0000)
84#define	osfpte_v_soft	16
85#define	osfpte_m_uwe	(0x2000)
86#define	osfpte_v_uwe	13
87#define	osfpte_m_kwe	(0x1000)
88#define	osfpte_v_kwe	12
89#define	osfpte_m_ure	(0x0200)
90#define	osfpte_v_ure	 9
91#define	osfpte_m_kre	(0x0100)
92#define	osfpte_v_kre	 8
93#define	osfpte_m_hpf	(0x0020)
94#define	osfpte_v_hpf	5
95#define	osfpte_m_asm	(0x0010)
96#define	osfpte_v_asm	4
97#define	osfpte_m_foe	(0x0008)
98#define	osfpte_v_foe	3
99#define	osfpte_m_fow	(0x0004)
100#define	osfpte_v_fow	2
101#define	osfpte_m_for	(0x0002)
102#define	osfpte_v_for	1
103#define	osfpte_m_v	(0x0001)
104#define	osfpte_v_v	0
105
106#define	osfpte_m_ksegbits	(osfpte_m_kre | osfpte_m_kwe | osfpte_m_v | osfpte_m_asm)
107#define	osfpte_m_prot	(osfpte_m_ure+osfpte_m_uwe | osfpte_m_kre | osfpte_m_kwe)
108
109//
110// VA layout - symbol prefix VA_
111//
112//	Loc	Size	name 	function
113//	------	------	-------	-----------------------------------
114//	<42:33>	10	SEG1	First seg table offset for mapping
115//	<32:23>	10	SEG2	Second seg table offset for mapping
116//	<22:13>	10	SEG3	Third seg table offset for mapping
117//	<12:0>	13	OFFSET	Byte within page
118//
119
120#define	osfva_m_offset	(0x000000001FFF)
121#define	osfva_v_offset	0
122#define	osfva_m_seg3	(0x0000007FE000)
123#define	osfva_v_seg3	13
124#define	osfva_m_seg2	(0x0001FF800000)
125#define	osfva_v_seg2	23
126#define	osfva_m_seg1	(0x7FE00000000)
127#define	osfva_v_seg1	33
128
129#define	osfpcb_q_ksp	(0x0000)
130#define	osfpcb_q_usp	(0x0008)
131#define	osfpcb_q_Usp	(0x0008)
132#define	osfpcb_q_mmptr	(0x0010)
133#define	osfpcb_q_Mmptr	(0x0010)
134#define	osfpcb_l_cc	(0x0018)
135#define	osfpcb_l_asn	(0x001C)
136#define	osfpcb_q_unique (0x0020)
137#define	osfpcb_q_fen	(0x0028)
138#define	osfpcb_v_pme	62
139
140#define	osfsf_ps	(0x00)
141#define	osfsf_pc	(0x08)
142#define	osfsf_gp	(0x10)
143#define	osfsf_a0	(0x18)
144#define	osfsf_a1	(0x20)
145#define	osfsf_a2	(0x28)
146#define	osfsf_c_size	(0x30)
147
148#endif
149