Commit | Line | Data |
---|---|---|
920dae64 AT |
1 | /* |
2 | * ========== Copyright Header Begin ========================================== | |
3 | * | |
4 | * OpenSPARC T2 Processor File: SS_Asi.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 | ||
24 | #ifndef __SS_Asi_h__ | |
25 | #define __SS_Asi_h__ | |
26 | ||
27 | #include "SS_Types.h" | |
28 | ||
29 | class SS_Asi | |
30 | { | |
31 | public: | |
32 | enum Limits | |
33 | { | |
34 | MAX = 256 | |
35 | }; | |
36 | ||
37 | enum | |
38 | { | |
39 | ASI_NUCLEUS = 0x04, | |
40 | ASI_NUCLEUS_LITTLE = 0x0c, | |
41 | ASI_AS_IF_USER_PRIMARY = 0x10, | |
42 | ASI_AS_IF_USER_SECONDARY = 0x11, | |
43 | ASI_REAL_MEM = 0x14, | |
44 | ASI_REAL_IO = 0x15, | |
45 | ASI_BLOCK_AS_IF_USER_PRIMARY = 0x16, | |
46 | ASI_BLOCK_AS_IF_USER_SECONDARY = 0x17, | |
47 | ASI_AS_IF_USER_PRIMARY_LITTLE = 0x18, | |
48 | ASI_AS_IF_USER_SECONDARY_LITTLE = 0x19, | |
49 | ASI_REAL_MEM_LITTLE = 0x1c, | |
50 | ASI_REAL_IO_LITTLE = 0x1d, | |
51 | ASI_BLOCK_AS_IF_USER_PRIMARY_LITTLE = 0x1e, | |
52 | ASI_BLOCK_AS_IF_USER_SECONDARY_LITTLE = 0x1f, | |
53 | ||
54 | ASI_QUAD_LDD = 0x24, | |
55 | ASI_QUAD_LDD_REAL = 0x26, | |
56 | ASI_QUAD_LDD_LITTLE = 0x2c, | |
57 | ASI_QUAD_LDD_REAL_LITTLE = 0x2e, | |
58 | ||
59 | ASI_AS_IF_PRIV_PRIMARY = 0x30, | |
60 | ASI_AS_IF_PRIV_SECONDARY = 0x31, | |
61 | ASI_AS_IF_PRIV_NUCLEUS = 0x36, | |
62 | ASI_AS_IF_PRIV_PRIMARY_LITTLE = 0x38, | |
63 | ASI_AS_IF_PRIV_SECONDARY_LITTLE = 0x39, | |
64 | ASI_AS_IF_PRIV_NUCLEUS_LITTLE = 0x3e, | |
65 | ||
66 | ASI_PRIMARY = 0x80, | |
67 | ASI_SECONDARY = 0x81, | |
68 | ASI_PRIMARY_NO_FAULT = 0x82, | |
69 | ASI_SECONDARY_NO_FAULT = 0x83, | |
70 | ASI_PRIMARY_LITTLE = 0x88, | |
71 | ASI_SECONDARY_LITTLE = 0x89, | |
72 | ASI_PRIMARY_NO_FAULT_LITTLE = 0x8a, | |
73 | ASI_SECONDARY_NO_FAULT_LITTLE = 0x8b, | |
74 | ||
75 | ASI_PST8_PRIMARY = 0xc0, | |
76 | ASI_PST8_SECONDARY = 0xc1, | |
77 | ASI_PST16_PRIMARY = 0xc2, | |
78 | ASI_PST16_SECONDARY = 0xc3, | |
79 | ASI_PST32_PRIMARY = 0xc4, | |
80 | ASI_PST32_SECONDARY = 0xc5, | |
81 | ASI_PST8_PRIMARY_LITTLE = 0xc8, | |
82 | ASI_PST8_SECONDARY_LITTLE = 0xc9, | |
83 | ASI_PST16_PRIMARY_LITTLE = 0xca, | |
84 | ASI_PST16_SECONDARY_LITTLE = 0xcb, | |
85 | ASI_PST32_PRIMARY_LITTLE = 0xcc, | |
86 | ASI_PST32_SECONDARY_LITTLE = 0xcd, | |
87 | ||
88 | ASI_FL8_PRIMARY = 0xd0, | |
89 | ASI_FL8_SECONDARY = 0xd1, | |
90 | ASI_FL16_PRIMARY = 0xd2, | |
91 | ASI_FL16_SECONDARY = 0xd3, | |
92 | ASI_FL8_PRIMARY_LITTLE = 0xd8, | |
93 | ASI_FL8_SECONDARY_LITTLE = 0xd9, | |
94 | ASI_FL16_PRIMARY_LITTLE = 0xda, | |
95 | ASI_FL16_SECONDARY_LITTLE = 0xdb, | |
96 | ||
97 | ASI_BLOCK_COMMIT_PRIMARY = 0xe0, | |
98 | ASI_BLOCK_COMMIT_SECONDARY = 0xe1, | |
99 | ASI_BLOCK_PRIMARY = 0xf0, | |
100 | ASI_BLOCK_SECONDARY = 0xf1, | |
101 | ASI_BLOCK_PRIMARY_LITTLE = 0xf8, | |
102 | ASI_BLOCK_SECONDARY_LITTLE = 0xf9, | |
103 | ||
104 | ASI_SCRATCHPAD = 0x20, | |
105 | ASI_HYP_SCRATCHPAD = 0x4f, | |
106 | ||
107 | ASI_CMP = 0x41, | |
108 | ASI_CMP_CORE = 0x63 | |
109 | }; | |
110 | ||
111 | SS_Asi( uint8_t a ) : asi(a) {} | |
112 | ||
113 | uint8_t operator()() { return asi; } | |
114 | SS_Asi& operator=( uint8_t v ) { asi = v; return *this; } | |
115 | SS_Asi& operator=( SS_Asi& a ) { asi = a.asi; return *this; } | |
116 | ||
117 | protected: | |
118 | uint8_t asi; | |
119 | }; | |
120 | ||
121 | #endif | |
122 | ||
123 |