Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / sam-t2 / sam / cpus / vonk / ss / lib / cpu / src / SS_Asi.h
CommitLineData
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
29class 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