source: XOpenSparcT1/trunk/T1-common/include/lsu.h @ 6

Revision 6, 8.3 KB checked in by pntsvt00, 14 years ago (diff)

versione iniziale opensparc

Line 
1/*
2* ========== Copyright Header Begin ==========================================
3*
4* OpenSPARC T1 Processor File: lsu.h
5* Copyright (c) 2006 Sun Microsystems, Inc.  All Rights Reserved.
6* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES.
7*
8* The above named program is free software; you can redistribute it and/or
9* modify it under the terms of the GNU General Public
10* License version 2 as published by the Free Software Foundation.
11*
12* The above named program is distributed in the hope that it will be
13* useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
14* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15* General Public License for more details.
16*
17* You should have received a copy of the GNU General Public
18* License along with this work; if not, write to the Free Software
19* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
20*
21* ========== Copyright Header End ============================================
22*/
23`define STB_PCX_WIDTH   115
24`define STB_PCX_VLD     114
25`define STB_PCX_RQ_HI   113
26`define STB_PCX_RQ_LO   111
27`define STB_PCX_NC      110
28`define STB_PCX_TH_HI   109
29`define STB_PCX_TH_LO   108
30`define STB_PCX_FLSH    107
31//`define STB_PCX_WY_HI   107
32//`define STB_PCX_WY_LO   106
33`define STB_PCX_SZ_HI   105
34`define STB_PCX_SZ_LO   104
35`define STB_PCX_AD_HI   103
36`define STB_PCX_AD_LO   64
37`define STB_PCX_DA_HI   63
38`define STB_PCX_DA_LO   0     
39`define LMQ_WIDTH       65
40`define LMQ_VLD         64
41`define LMQ_DFLUSH      63
42`define LMQ_PREF        62
43`define LMQ_FPLD        61
44`define LMQ_SIGNEXT     60
45`define LMQ_BIGEND      59
46`define LMQ_RD1_HI      58
47`define LMQ_RD1_LO      54
48`define LMQ_RD2_VLD     53
49`define LMQ_RD2_HI      52
50`define LMQ_RD2_LO      51
51`define LMQ_RQ_HI       47
52`define LMQ_RQ_LO       45
53`define LMQ_NC          44
54`define LMQ_WY_HI       43
55`define LMQ_WY_LO       42
56`define LMQ_SZ_HI       41
57`define LMQ_SZ_LO       40
58`define LMQ_AD_HI       39
59`define LMQ_AD_LO       0
60`define DATA_PA_HI      32
61`define DATA_PA_LO      6
62`define STB_DFQ_WIDTH   83
63`define STB_DFQ_VLD     82
64`define STB_DFQ_ATM     81
65`define STB_DFQ_WY_HI   80
66`define STB_DFQ_WY_LO   79
67`define STB_DFQ_BF_ID_HI 78
68`define STB_DFQ_BF_ID_LO 76
69`define STB_DFQ_SZ_HI   75
70`define STB_DFQ_SZ_LO   74
71`define STB_DFQ_AD_HI   73
72`define STB_DFQ_AD_LO   64
73`define STB_DFQ_DA_HI   63
74`define STB_DFQ_DA_LO   0
75
76`define DFQ_WIDTH       151
77`define DFQ_TH_HI       150
78`define DFQ_TH_LO       149
79`define DFQ_ST_CMPLT    148
80`define DFQ_LD_TYPE     147
81`define DFQ_INV_TYPE    146
82`define DFQ_WY_HI       145
83`define DFQ_WY_LO       144
84`define DFQ_WY1_HI      143
85`define DFQ_WY1_LO      142
86`define DFQ_WY2_HI      141
87`define DFQ_WY2_LO      140
88`define DFQ_WY3_HI      139
89`define DFQ_WY3_LO      138
90`define DFQ_SI_HI       137
91`define DFQ_SI_LO       132
92`define DFQ_SI_DCD_HI   131
93`define DFQ_SI_DCD_LO   128
94`define DFQ_DA_HI       127
95`define DFQ_DA_LO       0
96
97`define DCFILL_WIDTH    183
98`define DCFILL_TH_HI    182
99`define DCFILL_TH_LO    181
100`define DCFILL_ST       180
101`define DCFILL_ST       180
102`define DCFILL_LD       179
103`define DCFILL_INV      178
104`define DCFILL_DC_WR    177
105`define DCFILL_RD_HI    176
106`define DCFILL_RD_LO    172
107`define DCFILL_WY_HI    171
108`define DCFILL_WY_LO    170
109`define DCFILL_SZ_HI    169
110`define DCFILL_SZ_LO    168
111`define DCFILL_AD_HI    167
112`define DCFILL_AD_LO    128
113`define DCFILL_DA_HI    127
114`define DCFILL_DA_LO    0
115
116// TLB Tag and Data Format
117        `define       STLB_TAG_PID_HI         58
118        `define       STLB_TAG_PID_LO         56
119        `define       STLB_TAG_R              55
120        `define       STLB_TAG_PARITY         54
121        `define       STLB_TAG_VA_47_28_HI    53
122        `define       STLB_TAG_VA_47_28_LO    34
123        `define       STLB_TAG_VA_27_22_HI    33
124        `define       STLB_TAG_VA_27_22_LO    28
125        `define       STLB_TAG_VA_27_22_V     27
126        `define       STLB_TAG_V              26
127        `define       STLB_TAG_L              25
128        `define       STLB_TAG_U              24
129        `define       STLB_TAG_VA_21_16_HI    23
130        `define       STLB_TAG_VA_21_16_LO    18
131        `define       STLB_TAG_VA_21_16_V     17
132        `define       STLB_TAG_VA_15_13_HI    16
133        `define       STLB_TAG_VA_15_13_LO    14
134        `define       STLB_TAG_VA_15_13_V     13
135        `define       STLB_TAG_CTXT_12_0_HI   12
136        `define       STLB_TAG_CTXT_12_0_LO   0
137
138        `define       STLB_DATA_PARITY        42
139        `define       STLB_DATA_PA_39_28_HI   41 
140        `define       STLB_DATA_PA_39_28_LO   30
141        `define       STLB_DATA_PA_27_22_HI   29
142        `define       STLB_DATA_PA_27_22_LO   24
143        `define       STLB_DATA_27_22_SEL     23
144        `define       STLB_DATA_PA_21_16_HI   22
145        `define       STLB_DATA_PA_21_16_LO   17
146        `define       STLB_DATA_21_16_SEL     16
147        `define       STLB_DATA_PA_15_13_HI   15
148        `define       STLB_DATA_PA_15_13_LO   13
149        `define       STLB_DATA_15_13_SEL     12
150        `define       STLB_DATA_V             11
151        `define       STLB_DATA_NFO           10
152        `define       STLB_DATA_IE            9
153        `define       STLB_DATA_L             8
154        `define       STLB_DATA_CP            7
155        `define       STLB_DATA_CV            6
156        `define       STLB_DATA_E             5
157        `define       STLB_DATA_P             4
158        `define       STLB_DATA_W             3
159        `define       STLB_DATA_SPARE_HI      2
160        `define       STLB_DATA_SPARE_LO      0
161
162        `define CAM_VA_47_28_HI         40
163        `define CAM_VA_47_28_LO         21
164        `define CAM_VA_47_28_V          20
165        `define CAM_VA_27_22_HI         19
166        `define CAM_VA_27_22_LO         14
167        `define CAM_VA_27_22_V          13
168        `define CAM_VA_21_16_HI         12
169        `define CAM_VA_21_16_LO         7
170        `define CAM_VA_21_16_V          6
171        `define CAM_VA_15_13_HI         5
172        `define CAM_VA_15_13_LO         3
173        `define CAM_VA_15_13_V          2
174        `define CAM_CTXT_GK             1
175        `define CAM_REAL_V              0
176
177
178// I-TLB version - lsu_tlb only.
179
180`define TLB_TAG_G       52
181`define TLB_TAG_CTXT_HI 51
182`define TLB_TAG_CTXT_LO 39
183`define TLB_TAG_VA_HI   38
184`define TLB_TAG_VA_LO   4
185`define TLB_TAG_L       3
186`define TLB_TAG_VA_21_19_V  2
187`define TLB_TAG_VA_18_16_V  1
188`define TLB_TAG_VA_15_13_V  0
189`define TLB_DATA_PARITY 37 
190`define TLB_DATA_SZ_HI  36
191`define TLB_DATA_SZ_LO  35
192`define TLB_DATA_NFO    34
193`define TLB_DATA_IE     33
194`define TLB_DATA_PA_HI  32     
195`define TLB_DATA_PA_LO  6
196`define TLB_DATA_CP     5 
197`define TLB_DATA_CV     4 
198`define TLB_DATA_E      3 
199`define TLB_DATA_P      2 
200`define TLB_DATA_W      1 
201`define TLB_DATA_G      0 
202
203// Invalidate Format
204//addr<5:4>=00
205`define CPX_A00_C0_LO   0
206`define CPX_A00_C0_HI   3
207`define CPX_A00_C1_LO   4
208`define CPX_A00_C1_HI   7
209`define CPX_A00_C2_LO   8
210`define CPX_A00_C2_HI   11
211`define CPX_A00_C3_LO   12
212`define CPX_A00_C3_HI   15
213`define CPX_A00_C4_LO   16
214`define CPX_A00_C4_HI   19
215`define CPX_A00_C5_LO   20
216`define CPX_A00_C5_HI   23
217`define CPX_A00_C6_LO   24
218`define CPX_A00_C6_HI   27
219`define CPX_A00_C7_LO   28
220`define CPX_A00_C7_HI   31
221
222//addr<5:4>=01
223`define CPX_A01_C0_LO   32
224`define CPX_A01_C0_HI   34
225`define CPX_A01_C1_LO   35
226`define CPX_A01_C1_HI   37
227`define CPX_A01_C2_LO   38
228`define CPX_A01_C2_HI   40
229`define CPX_A01_C3_LO   41
230`define CPX_A01_C3_HI   43
231`define CPX_A01_C4_LO   44
232`define CPX_A01_C4_HI   46
233`define CPX_A01_C5_LO   47
234`define CPX_A01_C5_HI   49
235`define CPX_A01_C6_LO   50
236`define CPX_A01_C6_HI   52
237`define CPX_A01_C7_LO   53
238`define CPX_A01_C7_HI   55
239
240//addr<5:4>=10
241`define CPX_A10_C0_LO   56
242`define CPX_A10_C0_HI   59
243`define CPX_A10_C1_LO   60
244`define CPX_A10_C1_HI   63
245`define CPX_A10_C2_LO   64
246`define CPX_A10_C2_HI   67
247`define CPX_A10_C3_LO   68
248`define CPX_A10_C3_HI   71
249`define CPX_A10_C4_LO   72
250`define CPX_A10_C4_HI   75
251`define CPX_A10_C5_LO   76
252`define CPX_A10_C5_HI   79
253`define CPX_A10_C6_LO   80
254`define CPX_A10_C6_HI   83
255`define CPX_A10_C7_LO   84
256`define CPX_A10_C7_HI   87
257
258//addr<5:4>=11
259`define CPX_A11_C0_LO   88
260`define CPX_A11_C0_HI   90
261`define CPX_A11_C1_LO   91
262`define CPX_A11_C1_HI   93
263`define CPX_A11_C2_LO   94
264`define CPX_A11_C2_HI   96
265`define CPX_A11_C3_LO   97
266`define CPX_A11_C3_HI   99
267`define CPX_A11_C4_LO   100
268`define CPX_A11_C4_HI   102
269`define CPX_A11_C5_LO   103
270`define CPX_A11_C5_HI   105
271`define CPX_A11_C6_LO   106
272`define CPX_A11_C6_HI   108
273`define CPX_A11_C7_LO   109
274`define CPX_A11_C7_HI   111
275
276// cpuid - 4b
277`define CPX_INV_CID_LO 118
278`define CPX_INV_CID_HI 120
279
280// CPUany, addr<5:4>=00,10
281`define CPX_AX0_INV_DVLD 0
282`define CPX_AX0_INV_IVLD 1
283`define CPX_AX0_INV_WY_LO 2
284`define CPX_AX0_INV_WY_HI 3
285
286// CPUany, addr<5:4>=01,11
287`define CPX_AX1_INV_DVLD 0
288`define CPX_AX1_INV_WY_LO 1
289`define CPX_AX1_INV_WY_HI 2
290
291// CPUany, addr<5:4>=01,11
292`define CPX_AX1_INV_DVLD 0
293`define CPX_AX1_INV_WY_LO 1
294`define CPX_AX1_INV_WY_HI 2
295
296// DTAG parity error Invalidate
297`define CPX_PERR_DINV 123       // dcache inv
298`define CPX_PERR_DINV_AD5 122   // addr bit 5
299`define CPX_PERR_DINV_AD4 121   // addr bit 4
300
301// CPX BINIT STORE
302`define CPX_BINIT_STACK 125     // dcache inv
Note: See TracBrowser for help on using the repository browser.