gem5  v22.1.0.0
asi.hh
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2006 The Regents of The University of Michigan
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions are
7  * met: redistributions of source code must retain the above copyright
8  * notice, this list of conditions and the following disclaimer;
9  * redistributions in binary form must reproduce the above copyright
10  * notice, this list of conditions and the following disclaimer in the
11  * documentation and/or other materials provided with the distribution;
12  * neither the name of the copyright holders nor the names of its
13  * contributors may be used to endorse or promote products derived from
14  * this software without specific prior written permission.
15  *
16  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
20  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  */
28 
29 #ifndef __ARCH_SPARC_ASI_HH__
30 #define __ARCH_SPARC_ASI_HH__
31 
32 namespace gem5
33 {
34 
35 namespace SparcISA
36 {
37 
38 enum ASI
39 {
40  ASI_IMPLICIT = 0x00,
41  /* Priveleged ASIs */
42  // 0x00-0x03 implementation dependent
43  ASI_NUCLEUS = 0x4,
44  ASI_N = 0x4,
45  // 0x05-0x0B implementation dependent
46  ASI_NL = 0xC,
48  // 0x0D-0x0F implementation dependent
49  ASI_AIUP = 0x10,
51  ASI_AIUS = 0x11,
53  // 0x12-0x13 implementation dependent
54  ASI_REAL = 0x14,
55  ASI_REAL_IO = 0x15,
56  ASI_BLK_AIUP = 0x16,
58  ASI_BLK_AIUS = 0x17,
60  ASI_AIUP_L = 0x18,
62  ASI_AIUS_L = 0x19,
64  // 0x1A-0x1B implementation dependent
65  ASI_REAL_L = 0x1C,
67  ASI_REAL_IO_L = 0x1D,
74  ASI_MMU = 0x21,
75  ASI_LDTX_AIUP = 0x22,
77  ASI_LDTX_AIUS = 0x23,
79  ASI_QUAD_LDD = 0x24,
80  ASI_QUEUE = 0x25,
83  ASI_LDTX_N = 0x27,
87  // 0x28-0x29 implementation dependent
96  ASI_LTX_L = 0x2C,
98  // 0x2D implementation dependent
101  ASI_LDTX_NL = 0x2F,
103  // 0x20 implementation dependent
107  // 0x34 implementation dependent
111  // 0x38 implementation dependent
115  // 0x3C implementation dependent
121  // 0x41 implementation dependent
125  // 0x43 implementation dependent
138  ASI_IMMU = 0x50,
141  // 0x53 implementation dependent
146  ASI_DMMU = 0x58,
155  // 0x61-0x62 implementation dependent
157  // 0x64-0x65 implementation dependent
160  // 0x68-0x71 implementation dependent
164  // 0x74-0x7F reserved
165  /* Unpriveleged ASIs */
166  ASI_P = 0x80,
168  ASI_S = 0x81,
170  ASI_PNF = 0x82,
172  ASI_SNF = 0x83,
174  // 0x84-0x87 reserved
175  ASI_PL = 0x88,
177  ASI_SL = 0x89,
179  ASI_PNFL = 0x8A,
181  ASI_SNFL = 0x8B,
183  // 0x8C-0xBF reserved
184  ASI_PST8_P = 0xC0,
186  ASI_PST8_S = 0xC1,
188  ASI_PST16_P = 0xC2,
190  ASI_PST16_S = 0xC3,
192  ASI_PST32_P = 0xC4,
194  ASI_PST32_S = 0xC5,
196  // 0xC6-0xC7 implementation dependent
197  ASI_PST8_PL = 0xC8,
199  ASI_PST8_SL = 0xC9,
201  ASI_PST16_PL = 0xCA,
203  ASI_PST16_SL = 0xCB,
205  ASI_PST32_PL = 0xCC,
207  ASI_PST32_SL = 0xCD,
209  // 0xCE-0xCF implementation dependent
210  ASI_FL8_P = 0xD0,
212  ASI_FL8_S = 0xD1,
214  ASI_FL16_P = 0xD2,
216  ASI_FL16_S = 0xD3,
218  // 0xD4-0xD7 implementation dependent
219  ASI_FL8_PL = 0xD8,
221  ASI_FL8_SL = 0xD9,
223  ASI_FL16_PL = 0xDA,
225  ASI_FL16_SL = 0xDB,
227  // 0xDC-0xDF implementation dependent
228  // 0xE0-0xE1 reserved
229  ASI_LDTX_P = 0xE2,
231  ASI_LDTX_S = 0xE3,
233  // 0xE4-0xE9 implementation dependent
234  ASI_LDTX_PL = 0xEA,
236  ASI_LDTX_SL = 0xEB,
238  // 0xEC-0xEF implementation dependent
239  ASI_BLK_P = 0xF0,
241  ASI_BLK_S = 0xF1,
243  // 0xF2-0xF7 implementation dependent
244  ASI_BLK_PL = 0xF8,
246  ASI_BLK_SL = 0xF9,
248  // 0xFA-0xFF implementation dependent
249  MAX_ASI = 0xFF
250 };
251 
252 // Functions that classify an asi
253 bool asiIsBlock(ASI);
254 bool asiIsPrimary(ASI);
255 bool asiIsSecondary(ASI);
256 bool asiIsNucleus(ASI);
257 bool asiIsAsIfUser(ASI);
258 bool asiIsIO(ASI);
259 bool asiIsReal(ASI);
260 bool asiIsLittle(ASI);
261 bool asiIsTwin(ASI);
262 bool asiIsPartialStore(ASI);
263 bool asiIsFloatingLoad(ASI);
264 bool asiIsNoFault(ASI);
265 bool asiIsScratchPad(ASI);
266 bool asiIsCmt(ASI);
267 bool asiIsQueue(ASI);
269 bool asiIsMmu(ASI);
270 bool asiIsUnPriv(ASI);
271 bool asiIsPriv(ASI);
272 bool asiIsHPriv(ASI);
273 bool asiIsReg(ASI);
274 bool asiIsInterrupt(ASI);
275 bool asiIsSparcError(ASI);
276 };
277 
278 } // namespace gem5
279 
280 #endif // __ARCH_SPARC_ASI_HH__
bool asiIsTwin(ASI asi)
Definition: asi.cc:188
bool asiIsPriv(ASI asi)
Definition: asi.cc:291
bool asiIsNucleus(ASI asi)
Definition: asi.cc:109
bool asiIsReal(ASI asi)
Definition: asi.cc:142
bool asiIsAsIfUser(ASI asi)
Definition: asi.cc:118
bool asiIsCmt(ASI asi)
Definition: asi.cc:249
bool asiIsIO(ASI asi)
Definition: asi.cc:135
bool asiIsUnPriv(ASI asi)
Definition: asi.cc:285
bool asiIsPrimary(ASI asi)
Definition: asi.cc:51
bool asiIsPartialStore(ASI asi)
Definition: asi.cc:203
bool asiIsLittle(ASI asi)
Definition: asi.cc:153
bool asiIsInterrupt(ASI asi)
Definition: asi.cc:262
@ ASI_SECONDARY
Definition: asi.hh:169
@ ASI_LD_TWINX_AS_IF_USER_SECONDARY
Definition: asi.hh:78
@ ASI_DMMU_TSB_PS1_PTR_REG
Definition: asi.hh:148
@ ASI_LD_TWINX_SECONDARY
Definition: asi.hh:232
@ ASI_PST16_SL
Definition: asi.hh:203
@ ASI_DMMU_CTXT_ZERO_TSB_BASE_PS1
Definition: asi.hh:105
@ ASI_IMMU_CTXT_ZERO_CONFIG
Definition: asi.hh:110
@ ASI_BLOCK_AS_IF_USER_PRIMARY
Definition: asi.hh:57
@ ASI_INTR_RECEIVE
Definition: asi.hh:131
@ ASI_FL16_SECONDARY_LITTLE
Definition: asi.hh:226
@ ASI_FL16_SECONDARY
Definition: asi.hh:217
@ ASI_PST8_SL
Definition: asi.hh:199
@ ASI_SWVR_UDB_INTR_W
Definition: asi.hh:162
@ ASI_FL16_PL
Definition: asi.hh:223
@ ASI_DMMU_DEMAP
Definition: asi.hh:153
@ ASI_AS_IF_USER_PRIMARY
Definition: asi.hh:50
@ ASI_FL8_SECONDARY
Definition: asi.hh:213
@ ASI_AS_IF_USER_PRIMARY_LITTLE
Definition: asi.hh:61
@ ASI_LDTX_S
Definition: asi.hh:231
@ ASI_BLOCK_AS_IF_USER_SECONDARY_LITTLE
Definition: asi.hh:72
@ ASI_LD_TWINX_PRIMARY_LITTLE
Definition: asi.hh:235
@ ASI_SECONDARY_NO_FAULT_LITTLE
Definition: asi.hh:182
@ ASI_LDTX_NL
Definition: asi.hh:101
@ ASI_INST_MASK_REG
Definition: asi.hh:123
@ ASI_LDTX_P
Definition: asi.hh:229
@ ASI_AIUP_L
Definition: asi.hh:60
@ ASI_BLOCK_PRIMARY
Definition: asi.hh:240
@ ASI_DMMU_TSB_PS0_PTR_REG
Definition: asi.hh:147
@ ASI_AIUP
Definition: asi.hh:49
@ ASI_DTLB_TAG_READ_REG
Definition: asi.hh:152
@ ASI_STREAM_MA
Definition: asi.hh:119
@ ASI_IMMU_CTXT_ZERO_TSB_BASE_PS0
Definition: asi.hh:108
@ ASI_PST32_S
Definition: asi.hh:194
@ ASI_LDTX_REAL
Definition: asi.hh:82
@ ASI_LDTX_AIUS_L
Definition: asi.hh:92
@ ASI_LDTX_AIUP
Definition: asi.hh:75
@ ASI_IMMU_CTXT_NONZERO_CONFIG
Definition: asi.hh:118
@ ASI_PST8_SECONDARY_LITTLE
Definition: asi.hh:200
@ ASI_ITLB_DATA_IN_REG
Definition: asi.hh:142
@ ASI_BLOCK_AS_IF_USER_PRIMARY_LITTLE
Definition: asi.hh:70
@ ASI_ICACHE_TAG
Definition: asi.hh:159
@ ASI_LSU_DIAG_REG
Definition: asi.hh:124
@ ASI_PST16_PL
Definition: asi.hh:201
@ ASI_NUCLEUS_LITTLE
Definition: asi.hh:47
@ ASI_STBI_AIUS_L
Definition: asi.hh:95
@ ASI_ST_BLKINIT_NUCLEUS
Definition: asi.hh:85
@ ASI_STBI_N
Definition: asi.hh:86
@ ASI_PRIMARY_NO_FAULT_LITTLE
Definition: asi.hh:180
@ ASI_PST16_PRIMARY_LITTLE
Definition: asi.hh:202
@ ASI_SPARC_ERROR_EN_REG
Definition: asi.hh:133
@ ASI_IMMU_CTXT_ZERO_TSB_BASE_PS1
Definition: asi.hh:109
@ ASI_LD_TWINX_NUCLEUS_LITTLE
Definition: asi.hh:102
@ ASI_HYP_SCRATCHPAD
Definition: asi.hh:137
@ ASI_ITLB_DATA_ACCESS_REG
Definition: asi.hh:143
@ ASI_DCACHE_DATA
Definition: asi.hh:128
@ ASI_PST16_SECONDARY
Definition: asi.hh:191
@ ASI_STM_CTL_REG
Definition: asi.hh:126
@ ASI_PST16_S
Definition: asi.hh:190
@ ASI_FL16_PRIMARY_LITTLE
Definition: asi.hh:224
@ ASI_DTLB_DATA_ACCESS_REG
Definition: asi.hh:151
@ ASI_LD_TWINX_AS_IF_USER_PRIMARY
Definition: asi.hh:76
@ ASI_LD_TWINX_REAL_LITTLE
Definition: asi.hh:100
@ ASI_IMMU_TSB_PS0_PTR_REG
Definition: asi.hh:139
@ ASI_FL16_P
Definition: asi.hh:214
@ ASI_FL16_S
Definition: asi.hh:216
@ ASI_TWINX_AS_IF_USER_PRIMARY_LITTLE
Definition: asi.hh:89
@ ASI_PST32_PL
Definition: asi.hh:205
@ ASI_LD_TWINX_SECONDARY_LITTLE
Definition: asi.hh:237
@ ASI_DMMU_CTXT_ZERO_CONFIG
Definition: asi.hh:106
@ ASI_LDTX_SL
Definition: asi.hh:236
@ ASI_SPARC_ERROR_STATUS_REG
Definition: asi.hh:134
@ ASI_PST32_SECONDARY_LITTLE
Definition: asi.hh:208
@ ASI_REAL_LITTLE
Definition: asi.hh:66
@ ASI_ICACHE_INSTR
Definition: asi.hh:158
@ ASI_IMMU_DEMAP
Definition: asi.hh:145
@ ASI_PST8_SECONDARY
Definition: asi.hh:187
@ ASI_DMMU_TSB_DIRECT_PTR_REG
Definition: asi.hh:149
@ ASI_PST16_P
Definition: asi.hh:188
@ ASI_QUAD_LDD_REAL
Definition: asi.hh:81
@ ASI_ECACHE_TAG_DATA
Definition: asi.hh:136
@ ASI_BLK_AIUP
Definition: asi.hh:56
@ ASI_DMMU_CTXT_NONZERO_TSB_BASE_PS0
Definition: asi.hh:112
@ ASI_PRIMARY_LITTLE
Definition: asi.hh:176
@ ASI_PST32_PRIMARY
Definition: asi.hh:193
@ ASI_PST16_PRIMARY
Definition: asi.hh:189
@ ASI_PST8_P
Definition: asi.hh:184
@ ASI_REAL
Definition: asi.hh:54
@ ASI_BLOCK_SECONDARY_LITTLE
Definition: asi.hh:247
@ ASI_LSU_CONTROL_REG
Definition: asi.hh:127
@ ASI_DMMU_CTXT_ZERO_TSB_BASE_PS0
Definition: asi.hh:104
@ ASI_LDTX_REAL_L
Definition: asi.hh:99
@ ASI_AS_IF_USER_SECONDARY
Definition: asi.hh:52
@ ASI_FL16_PRIMARY
Definition: asi.hh:215
@ ASI_SCRATCHPAD
Definition: asi.hh:73
@ ASI_DTLB_DATA_IN_REG
Definition: asi.hh:150
@ ASI_IMMU_TSB_PS1_PTR_REG
Definition: asi.hh:140
@ ASI_LD_TWINX_AS_IF_USER_SECONDARY_LITTLE
Definition: asi.hh:93
@ ASI_AIUS_L
Definition: asi.hh:62
@ ASI_SECONDARY_NO_FAULT
Definition: asi.hh:173
@ ASI_PRIMARY_NO_FAULT
Definition: asi.hh:171
@ ASI_PST8_PL
Definition: asi.hh:197
@ ASI_QUAD_LDD
Definition: asi.hh:79
@ ASI_CMT_PER_STRAND
Definition: asi.hh:156
@ ASI_ST_BLKINIT_AS_IF_USER_PRIMARY_LITTLE
Definition: asi.hh:90
@ ASI_FL8_PRIMARY_LITTLE
Definition: asi.hh:220
@ ASI_PST32_SL
Definition: asi.hh:207
@ ASI_SECONDARY_LITTLE
Definition: asi.hh:178
@ ASI_PST8_PRIMARY_LITTLE
Definition: asi.hh:198
@ ASI_FL8_PL
Definition: asi.hh:219
@ ASI_REAL_IO_L
Definition: asi.hh:67
@ ASI_ITLB_TAG_READ_REG
Definition: asi.hh:144
@ ASI_LD_TWINX_PRIMARY
Definition: asi.hh:230
@ ASI_QUEUE
Definition: asi.hh:80
@ ASI_LDTX_AIUP_L
Definition: asi.hh:88
@ ASI_PRIMARY
Definition: asi.hh:167
@ ASI_BLOCK_AS_IF_USER_SECONDARY
Definition: asi.hh:59
@ ASI_PST32_PRIMARY_LITTLE
Definition: asi.hh:206
@ ASI_REAL_IO_LITTLE
Definition: asi.hh:68
@ ASI_PST16_SECONDARY_LITTLE
Definition: asi.hh:204
@ ASI_LTX_L
Definition: asi.hh:96
@ ASI_LDTX_PL
Definition: asi.hh:234
@ ASI_BLK_SL
Definition: asi.hh:246
@ ASI_PST32_P
Definition: asi.hh:192
@ ASI_SWVR_INTR_RECEIVE
Definition: asi.hh:161
@ ASI_CMT_SHARED
Definition: asi.hh:120
@ ASI_LDTX_AIUS
Definition: asi.hh:77
@ ASI_BLK_AIUP_L
Definition: asi.hh:69
@ ASI_SWVR_UDB_INTR_R
Definition: asi.hh:163
@ ASI_SPARC_BIST_CONTROL
Definition: asi.hh:122
@ ASI_LD_TWINX_NUCLEUS
Definition: asi.hh:84
@ ASI_AS_IF_USER_SECONDARY_LITTLE
Definition: asi.hh:63
@ ASI_BLOCK_SECONDARY
Definition: asi.hh:242
@ ASI_INTR_DISPATCH_STATUS
Definition: asi.hh:130
@ ASI_DMMU_CTXT_NONZERO_CONFIG
Definition: asi.hh:114
@ ASI_LDTX_N
Definition: asi.hh:83
@ ASI_PST32_SECONDARY
Definition: asi.hh:195
@ ASI_PST8_S
Definition: asi.hh:186
@ ASI_ST_BLKINIT_AS_IF_USER_SECONDARY_LITTLE
Definition: asi.hh:94
@ ASI_FL8_PRIMARY
Definition: asi.hh:211
@ ASI_SPARC_ERROR_ADDRESS_REG
Definition: asi.hh:135
@ ASI_FL8_SL
Definition: asi.hh:221
@ ASI_FL8_SECONDARY_LITTLE
Definition: asi.hh:222
@ ASI_IMPLICIT
Definition: asi.hh:40
@ ASI_TWINX_LITTLE
Definition: asi.hh:97
@ ASI_UPA_CONFIG_REGISTER
Definition: asi.hh:132
@ ASI_DCACHE_TAG
Definition: asi.hh:129
@ ASI_STBI_AIUP_L
Definition: asi.hh:91
@ ASI_TLB_INVALIDATE_ALL
Definition: asi.hh:154
@ ASI_FL16_SL
Definition: asi.hh:225
@ ASI_REAL_L
Definition: asi.hh:65
@ ASI_IMMU_CTXT_NONZERO_TSB_BASE_PS0
Definition: asi.hh:116
@ ASI_BLK_PL
Definition: asi.hh:244
@ ASI_REAL_IO
Definition: asi.hh:55
@ ASI_DMMU_CTXT_NONZERO_TSB_BASE_PS1
Definition: asi.hh:113
@ ASI_BLOCK_PRIMARY_LITTLE
Definition: asi.hh:245
@ ASI_PST8_PRIMARY
Definition: asi.hh:185
@ ASI_BLK_AIUS
Definition: asi.hh:58
@ ASI_IMMU_CTXT_NONZERO_TSB_BASE_PS1
Definition: asi.hh:117
@ ASI_NUCLEUS
Definition: asi.hh:43
@ ASI_BLK_AIUS_L
Definition: asi.hh:71
@ ASI_AIUS
Definition: asi.hh:51
bool asiIsNoFault(ASI asi)
Definition: asi.cc:233
bool asiIsQueue(ASI asi)
Definition: asi.cc:256
bool asiIsDtlb(ASI)
bool asiIsFloatingLoad(ASI asi)
Definition: asi.cc:220
bool asiIsScratchPad(ASI asi)
Definition: asi.cc:242
bool asiIsSparcError(ASI asi)
Definition: asi.cc:312
bool asiIsReg(ASI asi)
Definition: asi.cc:304
bool asiIsHPriv(ASI asi)
Definition: asi.cc:298
bool asiIsMmu(ASI asi)
Definition: asi.cc:270
bool asiIsBlock(ASI asi)
Definition: asi.cc:38
bool asiIsSecondary(ASI asi)
Definition: asi.cc:80
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....

Generated on Wed Dec 21 2022 10:22:27 for gem5 by doxygen 1.9.1