gem5 v24.0.0.0
Loading...
Searching...
No Matches
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
32namespace gem5
33{
34
35namespace SparcISA
36{
37
38enum ASI
39{
41 /* Priveleged ASIs */
42 // 0x00-0x03 implementation dependent
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,
60 ASI_AIUP_L = 0x18,
62 ASI_AIUS_L = 0x19,
64 // 0x1A-0x1B implementation dependent
65 ASI_REAL_L = 0x1C,
74 ASI_MMU = 0x21,
80 ASI_QUEUE = 0x25,
83 ASI_LDTX_N = 0x27,
87 // 0x28-0x29 implementation dependent
96 ASI_LTX_L = 0x2C,
98 // 0x2D implementation dependent
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
196 // 0xC6-0xC7 implementation dependent
209 // 0xCE-0xCF implementation dependent
210 ASI_FL8_P = 0xD0,
212 ASI_FL8_S = 0xD1,
218 // 0xD4-0xD7 implementation dependent
227 // 0xDC-0xDF implementation dependent
228 // 0xE0-0xE1 reserved
233 // 0xE4-0xE9 implementation dependent
238 // 0xEC-0xEF implementation dependent
239 ASI_BLK_P = 0xF0,
241 ASI_BLK_S = 0xF1,
243 // 0xF2-0xF7 implementation dependent
248 // 0xFA-0xFF implementation dependent
249 MAX_ASI = 0xFF
251
252// Functions that classify an asi
253bool asiIsBlock(ASI);
254bool asiIsPrimary(ASI);
255bool asiIsSecondary(ASI);
256bool asiIsNucleus(ASI);
257bool asiIsAsIfUser(ASI);
258bool asiIsIO(ASI);
259bool asiIsReal(ASI);
260bool asiIsLittle(ASI);
261bool asiIsTwin(ASI);
264bool asiIsNoFault(ASI);
265bool asiIsScratchPad(ASI);
266bool asiIsCmt(ASI);
267bool asiIsQueue(ASI);
269bool asiIsMmu(ASI);
270bool asiIsUnPriv(ASI);
271bool asiIsPriv(ASI);
272bool asiIsHPriv(ASI);
273bool asiIsReg(ASI);
274bool asiIsInterrupt(ASI);
275bool 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_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_SWVR_UDB_INTR_W
Definition asi.hh:162
@ 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_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_INST_MASK_REG
Definition asi.hh:123
@ ASI_BLOCK_PRIMARY
Definition asi.hh:240
@ ASI_DMMU_TSB_PS0_PTR_REG
Definition asi.hh:147
@ 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_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_NUCLEUS_LITTLE
Definition asi.hh:47
@ ASI_STBI_AIUS_L
Definition asi.hh:95
@ ASI_ST_BLKINIT_NUCLEUS
Definition asi.hh:85
@ 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_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_TWINX_AS_IF_USER_PRIMARY_LITTLE
Definition asi.hh:89
@ ASI_LD_TWINX_SECONDARY_LITTLE
Definition asi.hh:237
@ ASI_DMMU_CTXT_ZERO_CONFIG
Definition asi.hh:106
@ 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_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_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_SECONDARY_NO_FAULT
Definition asi.hh:173
@ ASI_PRIMARY_NO_FAULT
Definition asi.hh:171
@ 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_SECONDARY_LITTLE
Definition asi.hh:178
@ ASI_PST8_PRIMARY_LITTLE
Definition asi.hh:198
@ 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_LDTX_AIUP_L
Definition asi.hh:88
@ 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_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_PST32_SECONDARY
Definition asi.hh:195
@ 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_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_IMMU_CTXT_NONZERO_TSB_BASE_PS0
Definition asi.hh:116
@ 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
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
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
Definition binary32.hh:36

Generated on Tue Jun 18 2024 16:24:00 for gem5 by doxygen 1.11.0