blob: 7c2597d22b43c905426ef86d56107532b4b4cdf8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
|
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _SYS_OBERON_REGS_H
#define _SYS_OBERON_REGS_H
#ifdef __cplusplus
extern "C" {
#endif
#define UBC_ERROR_LOG_ENABLE 0x471000
#define UBC_ERROR_STATUS_CLEAR 0x471018
#define UBC_INTERRUPT_ENABLE 0x471008
#define UBC_INTERRUPT_STATUS 0x471010
#define UBC_INTERRUPT_STATUS_DMARDUEA_P 0
#define UBC_INTERRUPT_STATUS_DMAWTUEA_P 1
#define UBC_INTERRUPT_STATUS_MEMRDAXA_P 2
#define UBC_INTERRUPT_STATUS_MEMWTAXA_P 3
#define UBC_INTERRUPT_STATUS_DMARDUEB_P 8
#define UBC_INTERRUPT_STATUS_DMAWTUEB_P 9
#define UBC_INTERRUPT_STATUS_MEMRDAXB_P 10
#define UBC_INTERRUPT_STATUS_MEMWTAXB_P 11
#define UBC_INTERRUPT_STATUS_PIOWTUE_P 16
#define UBC_INTERRUPT_STATUS_PIOWBEUE_P 17
#define UBC_INTERRUPT_STATUS_PIORBEUE_P 18
#define UBC_INTERRUPT_STATUS_DMARDUEA_S 32
#define UBC_INTERRUPT_STATUS_DMAWTUEA_S 33
#define UBC_INTERRUPT_STATUS_MEMRDAXA_S 34
#define UBC_INTERRUPT_STATUS_MEMWTAXA_S 35
#define UBC_INTERRUPT_STATUS_DMARDUEB_S 40
#define UBC_INTERRUPT_STATUS_DMAWTUEB_S 41
#define UBC_INTERRUPT_STATUS_MEMRDAXB_S 42
#define UBC_INTERRUPT_STATUS_MEMWTAXB_S 43
#define UBC_INTERRUPT_STATUS_PIOWTUE_S 48
#define UBC_INTERRUPT_STATUS_PIOWBEUE_S 49
#define UBC_INTERRUPT_STATUS_PIORBEUE_S 50
#define UBC_ERROR_STATUS_SET 0x471020
#define UBC_PERFORMANCE_COUNTER_SELECT 0x472000
#define UBC_PERFORMANCE_COUNTER_ZERO 0x472008
#define UBC_PERFORMANCE_COUNTER_ONE 0x472010
#define UBC_PERFORMANCE_COUNTER_SEL_MASKS 0x3f3f
#define UBC_MEMORY_UE_LOG 0x471028
#define UBC_MEMORY_UE_LOG_EID 60
#define UBC_MEMORY_UE_LOG_EID_MASK 0x3
#define UBC_MEMORY_UE_LOG_MARKED 48
#define UBC_MEMORY_UE_LOG_MARKED_MASK 0x3fff
#define UBC_MARKED_MAX_CPUID_MASK 0x1ff
/*
* Class qualifiers on errors for which EID is valid.
*/
#define UBC_EID_MEM 0
#define UBC_EID_CHANNEL 1
#define UBC_EID_CPU 2
#define UBC_EID_PATH 3
/*
* Mask within UBC_INTERRUPT_STATUS for Leaf-A errors
*/
#define UBC_INTERRUPT_STATUS_LEAFA \
((1UL << UBC_INTERRUPT_STATUS_DMARDUEA_P) |\
(1UL << UBC_INTERRUPT_STATUS_DMAWTUEA_P) |\
(1UL << UBC_INTERRUPT_STATUS_MEMRDAXA_P) |\
(1UL << UBC_INTERRUPT_STATUS_MEMWTAXA_P) |\
(1UL << UBC_INTERRUPT_STATUS_DMARDUEA_S) |\
(1UL << UBC_INTERRUPT_STATUS_DMAWTUEA_S) |\
(1UL << UBC_INTERRUPT_STATUS_MEMRDAXA_S) |\
(1UL << UBC_INTERRUPT_STATUS_MEMWTAXA_S))
/*
* Mask within UBC_INTERRUPT_STATUS for Leaf-B errors
*/
#define UBC_INTERRUPT_STATUS_LEAFB \
((1UL << UBC_INTERRUPT_STATUS_DMARDUEB_P) |\
(1UL << UBC_INTERRUPT_STATUS_DMAWTUEB_P) |\
(1UL << UBC_INTERRUPT_STATUS_MEMRDAXB_P) |\
(1UL << UBC_INTERRUPT_STATUS_MEMWTAXB_P) |\
(1UL << UBC_INTERRUPT_STATUS_DMARDUEB_S) |\
(1UL << UBC_INTERRUPT_STATUS_DMAWTUEB_S) |\
(1UL << UBC_INTERRUPT_STATUS_MEMRDAXB_S) |\
(1UL << UBC_INTERRUPT_STATUS_MEMWTAXB_S))
#define OBERON_UBC_ID_MAX 64
#define OBERON_UBC_ID_IOC 0
#define OBERON_UBC_ID_LSB 2
#define OBERON_PORT_ID_LEAF 0
#define OBERON_PORT_ID_LEAF_MASK 0x1
#define OBERON_PORT_ID_IOC 1
#define OBERON_PORT_ID_IOC_MASK 0x03
#define OBERON_PORT_ID_LSB 4
#define OBERON_PORT_ID_LSB_MASK 0x0F
/* values for OBERON_PORT_ID_LEAF field */
#define OBERON_PORT_ID_LEAF_A 0
#define OBERON_PORT_ID_LEAF_B 1
#define INTERRUPT_MAPPING_ENTRIES_T_DESTID 21
#define INTERRUPT_MAPPING_ENTRIES_T_DESTID_MASK 0x3ff
#define OBERON_TLU_CONTROL_DRN_TR_DIS 35
#define OBERON_TLU_CONTROL_CPLEP_DEN 34
#define OBERON_TLU_CONTROL_ECRCCHK_DIS 33
#define OBERON_TLU_CONTROL_ECRCGEN_DIS 32
#define TLU_SLOT_CAPABILITIES_HP 6
#define TLU_SLOT_CAPABILITIES_HPSUP 5
#define TLU_SLOT_CAPABILITIES_PWINDP 4
#define TLU_SLOT_CAPABILITIES_ATINDP 3
#define TLU_SLOT_CAPABILITIES_MRLSP 2
#define TLU_SLOT_CAPABILITIES_PWCNTLP 1
#define TLU_SLOT_CAPABILITIES_ATBTNP 0
#define DLU_INTERRUPT_MASK 0xe2048
#define DLU_INTERRUPT_MASK_MSK_INTERRUPT_EN 31
#define DLU_INTERRUPT_MASK_MSK_LINK_LAYER 5
#define DLU_INTERRUPT_MASK_MSK_PHY_ERROR 4
#define DLU_LINK_LAYER_CONFIG 0xe2200
#define DLU_LINK_LAYER_CONFIG_VC0_EN 8
#define DLU_LINK_LAYER_CONFIG_TLP_XMIT_FC_EN 3
#define DLU_LINK_LAYER_CONFIG_FREQ_ACK_ENABLE 2
#define DLU_LINK_LAYER_CONFIG_RETRY_DISABLE 1
#define DLU_LINK_LAYER_STATUS 0xe2208
#define DLU_LINK_LAYER_STATUS_LNK_STATE_MACH_STS_MASK 0x7
#define DLU_LINK_LAYER_STATUS_LNK_STATE_MACH_STS_DL_INACTIVE 0x1
#define DLU_LINK_LAYER_STATUS_LNK_STATE_MACH_STS_DL_INIT 0x2
#define DLU_LINK_LAYER_STATUS_LNK_STATE_MACH_STS_DL_ACTIVE 0x4
#define DLU_LINK_LAYER_STATUS_DLUP_STS 3
#define DLU_LINK_LAYER_STATUS_INIT_FC_SM_STS 4
#define DLU_LINK_LAYER_STATUS_INIT_FC_SM_STS_MASK 0x3
#define DLU_LINK_LAYER_STATUS_INIT_FC_SM_STS_FC_IDLE 0x0
#define DLU_LINK_LAYER_STATUS_INIT_FC_SM_STS_FC_INIT_1 0x1
#define DLU_LINK_LAYER_STATUS_INIT_FC_SM_STS_FC_INIT_2 0x3
#define DLU_LINK_LAYER_STATUS_INIT_FC_SM_STS_FC_INIT_DONE 0x2
#define DLU_LINK_LAYER_INTERRUPT_AND_STATUS 0xe2210
#define DLU_LINK_LAYER_INTERRUPT_AND_STATUS_INT_LINK_ERR_ACT 31
#define DLU_LINK_LAYER_INTERRUPT_AND_STATUS_INT_PARABUS_PE 23
#define DLU_LINK_LAYER_INTERRUPT_AND_STATUS_INT_UNSPRTD_DLLP 22
#define DLU_LINK_LAYER_INTERRUPT_AND_STATUS_INT_SRC_ERR_TLP 17
#define DLU_LINK_LAYER_INTERRUPT_MASK 0xe2220
#define DLU_LINK_LAYER_INTERRUPT_MASK_MSK_LINK_ERR_ACT 31
#define DLU_LINK_LAYER_INTERRUPT_MASK_MSK_PARABUS_PE 23
#define DLU_LINK_LAYER_INTERRUPT_MASK_MSK_UNSPRTD_DLLP 22
#define DLU_LINK_LAYER_INTERRUPT_MASK_MSK_SRC_ERR_TLP 17
#define DLU_FLOW_CONTROL_UPDATE_CONTROL 0xe2240
#define DLU_FLOW_CONTROL_UPDATE_CONTROL_FC0_U_C_EN 2
#define DLU_FLOW_CONTROL_UPDATE_CONTROL_FC0_U_NP_EN 1
#define DLU_FLOW_CONTROL_UPDATE_CONTROL_FC0_U_P_EN 0
#define DLU_TXLINK_REPLAY_TIMER_THRESHOLD 0xe2410
#define DLU_TXLINK_REPLAY_TIMER_THRESHOLD_RPLAY_TMR_THR 0
#define DLU_TXLINK_REPLAY_TIMER_THRESHOLD_RPLAY_TMR_THR_MASK 0xfffff
#define DLU_TXLINK_REPLAY_TIMER_THRESHOLD_DEFAULT 0xc9
#define DLU_PORT_CONTROL 0xe2b00
#define DLU_PORT_CONTROL_CK_EN 0
#define DLU_PORT_STATUS 0xe2b08
#define MMU_INTERRUPT_STATUS_TTC_DUE_P 8
#define MMU_INTERRUPT_STATUS_TTC_DUE_S 40
#define ILU_INTERRUPT_STATUS_IHB_UE_P 4
#define ILU_INTERRUPT_STATUS_IHB_UE_S 36
#define TLU_UNCORRECTABLE_ERROR_STATUS_CLEAR_ECRC_P 19
#define TLU_UNCORRECTABLE_ERROR_STATUS_CLEAR_ECRC_S 51
#define TLU_UNCORRECTABLE_ERROR_STATUS_CLEAR_POIS_P 12
#define TLU_UNCORRECTABLE_ERROR_STATUS_CLEAR_POIS_S 44
#define TLU_OTHER_EVENT_STATUS_CLEAR_EIUE_P 0
#define TLU_OTHER_EVENT_STATUS_CLEAR_EIUE_S 32
#define TLU_OTHER_EVENT_STATUS_CLEAR_ERBUE_P 1
#define TLU_OTHER_EVENT_STATUS_CLEAR_ERBUE_S 33
#define TLU_OTHER_EVENT_STATUS_CLEAR_TLUEITMO_P 7
#define TLU_OTHER_EVENT_STATUS_CLEAR_TLUEITMO_S 39
#define TLU_OTHER_EVENT_STATUS_CLEAR_EHBUE_P 12
#define TLU_OTHER_EVENT_STATUS_CLEAR_EHBUE_S 44
#define TLU_OTHER_EVENT_STATUS_CLEAR_EDBUE_P 12
#define TLU_OTHER_EVENT_STATUS_CLEAR_EDBUE_S 44
#define TLU_CONTROL_DRN_TR_DIS 35
#define TLU_SLOT_CONTROL 0x90038
#define TLU_SLOT_CONTROL_PWFDEN 1
#define TLU_SLOT_STATUS 0x90040
#define TLU_SLOT_STATUS_PSD 6
#define TLU_SLOT_STATUS_MRLS 5
#define TLU_SLOT_STATUS_CMDCPLT 4
#define TLU_SLOT_STATUS_PSDC 3
#define TLU_SLOT_STATUS_MRLC 2
#define TLU_SLOT_STATUS_PWFD 1
#define TLU_SLOT_STATUS_ABTN 0
#define FLP_PORT_LINK_CONTROL 0xe5008
#define FLP_PORT_LINK_CONTROL_RETRAIN 5
#define FLP_PORT_CONTROL 0xe5200
#define FLP_PORT_CONTROL_PORT_DIS 0
#define FLP_PORT_ACTIVE_STATUS 0xe5240
#define FLP_PORT_ACTIVE_STATUS_TRAIN_ERROR 1
#define HOTPLUG_CONTROL 0x88000
#define HOTPLUG_CONTROL_SLOTPON 3
#define HOTPLUG_CONTROL_PWREN 2
#define HOTPLUG_CONTROL_CLKEN 1
#define HOTPLUG_CONTROL_N_PERST 0
#define DRAIN_CONTROL_STATUS 0x51100
#define DRAIN_CONTROL_STATUS_DRAIN 0
#ifdef __cplusplus
}
#endif
#endif /* _SYS_OBERON_REGS_H */
|