xref: /onnv-gate/usr/src/uts/sun4u/io/px/oberon_regs.h (revision 10923:df470fd79c3c)
11772Sjl139090 /*
21772Sjl139090  * CDDL HEADER START
31772Sjl139090  *
41772Sjl139090  * The contents of this file are subject to the terms of the
51772Sjl139090  * Common Development and Distribution License (the "License").
61772Sjl139090  * You may not use this file except in compliance with the License.
71772Sjl139090  *
81772Sjl139090  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
91772Sjl139090  * or http://www.opensolaris.org/os/licensing.
101772Sjl139090  * See the License for the specific language governing permissions
111772Sjl139090  * and limitations under the License.
121772Sjl139090  *
131772Sjl139090  * When distributing Covered Code, include this CDDL HEADER in each
141772Sjl139090  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
151772Sjl139090  * If applicable, add the following below this CDDL HEADER, with the
161772Sjl139090  * fields enclosed by brackets "[]" replaced with your own identifying
171772Sjl139090  * information: Portions Copyright [yyyy] [name of copyright owner]
181772Sjl139090  *
191772Sjl139090  * CDDL HEADER END
201772Sjl139090  */
211772Sjl139090 /*
22*10923SEvan.Yan@Sun.COM  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
231772Sjl139090  * Use is subject to license terms.
241772Sjl139090  */
251772Sjl139090 
261772Sjl139090 #ifndef _SYS_OBERON_REGS_H
271772Sjl139090 #define	_SYS_OBERON_REGS_H
281772Sjl139090 
291772Sjl139090 #ifdef	__cplusplus
301772Sjl139090 extern "C" {
311772Sjl139090 #endif
321772Sjl139090 
331772Sjl139090 
341772Sjl139090 #define	UBC_ERROR_LOG_ENABLE			0x471000
351772Sjl139090 #define	UBC_ERROR_STATUS_CLEAR			0x471018
361772Sjl139090 #define	UBC_INTERRUPT_ENABLE			0x471008
371772Sjl139090 #define	UBC_INTERRUPT_STATUS			0x471010
381772Sjl139090 #define	UBC_INTERRUPT_STATUS_DMARDUEA_P		0
391772Sjl139090 #define	UBC_INTERRUPT_STATUS_DMAWTUEA_P		1
401772Sjl139090 #define	UBC_INTERRUPT_STATUS_MEMRDAXA_P		2
411772Sjl139090 #define	UBC_INTERRUPT_STATUS_MEMWTAXA_P		3
421772Sjl139090 #define	UBC_INTERRUPT_STATUS_DMARDUEB_P		8
431772Sjl139090 #define	UBC_INTERRUPT_STATUS_DMAWTUEB_P		9
441772Sjl139090 #define	UBC_INTERRUPT_STATUS_MEMRDAXB_P		10
451772Sjl139090 #define	UBC_INTERRUPT_STATUS_MEMWTAXB_P		11
461772Sjl139090 #define	UBC_INTERRUPT_STATUS_PIOWTUE_P		16
471772Sjl139090 #define	UBC_INTERRUPT_STATUS_PIOWBEUE_P		17
481772Sjl139090 #define	UBC_INTERRUPT_STATUS_PIORBEUE_P		18
491772Sjl139090 #define	UBC_INTERRUPT_STATUS_DMARDUEA_S		32
501772Sjl139090 #define	UBC_INTERRUPT_STATUS_DMAWTUEA_S		33
511772Sjl139090 #define	UBC_INTERRUPT_STATUS_MEMRDAXA_S		34
521772Sjl139090 #define	UBC_INTERRUPT_STATUS_MEMWTAXA_S		35
531772Sjl139090 #define	UBC_INTERRUPT_STATUS_DMARDUEB_S		40
541772Sjl139090 #define	UBC_INTERRUPT_STATUS_DMAWTUEB_S		41
551772Sjl139090 #define	UBC_INTERRUPT_STATUS_MEMRDAXB_S		42
561772Sjl139090 #define	UBC_INTERRUPT_STATUS_MEMWTAXB_S		43
571772Sjl139090 #define	UBC_INTERRUPT_STATUS_PIOWTUE_S		48
581772Sjl139090 #define	UBC_INTERRUPT_STATUS_PIOWBEUE_S		49
591772Sjl139090 #define	UBC_INTERRUPT_STATUS_PIORBEUE_S		50
601772Sjl139090 #define	UBC_ERROR_STATUS_SET			0x471020
611772Sjl139090 #define	UBC_PERFORMANCE_COUNTER_SELECT		0x472000
621772Sjl139090 #define	UBC_PERFORMANCE_COUNTER_ZERO		0x472008
631772Sjl139090 #define	UBC_PERFORMANCE_COUNTER_ONE		0x472010
641772Sjl139090 #define	UBC_PERFORMANCE_COUNTER_SEL_MASKS	0x3f3f
651772Sjl139090 #define	UBC_MEMORY_UE_LOG			0x471028
661772Sjl139090 #define	UBC_MEMORY_UE_LOG_EID			60
671772Sjl139090 #define	UBC_MEMORY_UE_LOG_EID_MASK		0x3
681772Sjl139090 #define	UBC_MEMORY_UE_LOG_MARKED		48
691772Sjl139090 #define	UBC_MEMORY_UE_LOG_MARKED_MASK		0x3fff
701772Sjl139090 #define	UBC_MARKED_MAX_CPUID_MASK		0x1ff
711772Sjl139090 /*
721772Sjl139090  * Class qualifiers on errors for which EID is valid.
731772Sjl139090  */
741772Sjl139090 #define	UBC_EID_MEM	0
751772Sjl139090 #define	UBC_EID_CHANNEL	1
761772Sjl139090 #define	UBC_EID_CPU	2
771772Sjl139090 #define	UBC_EID_PATH	3
785168Sarutz /*
795168Sarutz  * Mask within UBC_INTERRUPT_STATUS for Leaf-A errors
805168Sarutz  */
815168Sarutz #define	UBC_INTERRUPT_STATUS_LEAFA	\
825168Sarutz 	((1UL << UBC_INTERRUPT_STATUS_DMARDUEA_P) |\
835168Sarutz 	(1UL << UBC_INTERRUPT_STATUS_DMAWTUEA_P) |\
845168Sarutz 	(1UL << UBC_INTERRUPT_STATUS_MEMRDAXA_P) |\
855168Sarutz 	(1UL << UBC_INTERRUPT_STATUS_MEMWTAXA_P) |\
865168Sarutz 	(1UL << UBC_INTERRUPT_STATUS_DMARDUEA_S) |\
875168Sarutz 	(1UL << UBC_INTERRUPT_STATUS_DMAWTUEA_S) |\
885168Sarutz 	(1UL << UBC_INTERRUPT_STATUS_MEMRDAXA_S) |\
895168Sarutz 	(1UL << UBC_INTERRUPT_STATUS_MEMWTAXA_S))
905168Sarutz /*
915168Sarutz  * Mask within UBC_INTERRUPT_STATUS for Leaf-B errors
925168Sarutz  */
935168Sarutz #define	UBC_INTERRUPT_STATUS_LEAFB	\
945168Sarutz 	((1UL << UBC_INTERRUPT_STATUS_DMARDUEB_P) |\
955168Sarutz 	(1UL << UBC_INTERRUPT_STATUS_DMAWTUEB_P) |\
965168Sarutz 	(1UL << UBC_INTERRUPT_STATUS_MEMRDAXB_P) |\
975168Sarutz 	(1UL << UBC_INTERRUPT_STATUS_MEMWTAXB_P) |\
985168Sarutz 	(1UL << UBC_INTERRUPT_STATUS_DMARDUEB_S) |\
995168Sarutz 	(1UL << UBC_INTERRUPT_STATUS_DMAWTUEB_S) |\
1005168Sarutz 	(1UL << UBC_INTERRUPT_STATUS_MEMRDAXB_S) |\
1015168Sarutz 	(1UL << UBC_INTERRUPT_STATUS_MEMWTAXB_S))
1021772Sjl139090 
1031772Sjl139090 #define	OBERON_UBC_ID_MAX		64
1041772Sjl139090 #define	OBERON_UBC_ID_IOC		0
1051772Sjl139090 #define	OBERON_UBC_ID_LSB		2
1061772Sjl139090 
1075168Sarutz #define	OBERON_PORT_ID_LEAF		0
1085168Sarutz #define	OBERON_PORT_ID_LEAF_MASK	0x1
1091772Sjl139090 #define	OBERON_PORT_ID_IOC		1
1101772Sjl139090 #define	OBERON_PORT_ID_IOC_MASK		0x03
1111772Sjl139090 #define	OBERON_PORT_ID_LSB		4
1121772Sjl139090 #define	OBERON_PORT_ID_LSB_MASK		0x0F
1131772Sjl139090 
1145168Sarutz /* values for OBERON_PORT_ID_LEAF field */
1155168Sarutz #define	OBERON_PORT_ID_LEAF_A		0
1165168Sarutz #define	OBERON_PORT_ID_LEAF_B		1
1175168Sarutz 
1181772Sjl139090 #define	INTERRUPT_MAPPING_ENTRIES_T_DESTID	21
1191772Sjl139090 #define	INTERRUPT_MAPPING_ENTRIES_T_DESTID_MASK	0x3ff
1201772Sjl139090 
1211772Sjl139090 #define	OBERON_TLU_CONTROL_DRN_TR_DIS		35
1221772Sjl139090 #define	OBERON_TLU_CONTROL_CPLEP_DEN		34
1231772Sjl139090 #define	OBERON_TLU_CONTROL_ECRCCHK_DIS		33
1241772Sjl139090 #define	OBERON_TLU_CONTROL_ECRCGEN_DIS		32
1251772Sjl139090 
1261772Sjl139090 #define	TLU_SLOT_CAPABILITIES_HP		6
1271772Sjl139090 #define	TLU_SLOT_CAPABILITIES_HPSUP		5
1281772Sjl139090 #define	TLU_SLOT_CAPABILITIES_PWINDP		4
1291772Sjl139090 #define	TLU_SLOT_CAPABILITIES_ATINDP		3
1301772Sjl139090 #define	TLU_SLOT_CAPABILITIES_MRLSP		2
1311772Sjl139090 #define	TLU_SLOT_CAPABILITIES_PWCNTLP		1
1321772Sjl139090 #define	TLU_SLOT_CAPABILITIES_ATBTNP		0
1331772Sjl139090 
1341772Sjl139090 #define	DLU_INTERRUPT_MASK					0xe2048
1351772Sjl139090 #define	DLU_INTERRUPT_MASK_MSK_INTERRUPT_EN			31
1361772Sjl139090 #define	DLU_INTERRUPT_MASK_MSK_LINK_LAYER			5
1371772Sjl139090 #define	DLU_INTERRUPT_MASK_MSK_PHY_ERROR			4
1381772Sjl139090 #define	DLU_LINK_LAYER_CONFIG					0xe2200
1391772Sjl139090 #define	DLU_LINK_LAYER_CONFIG_VC0_EN				8
1401772Sjl139090 #define	DLU_LINK_LAYER_CONFIG_TLP_XMIT_FC_EN			3
1411772Sjl139090 #define	DLU_LINK_LAYER_CONFIG_FREQ_ACK_ENABLE			2
1421772Sjl139090 #define	DLU_LINK_LAYER_CONFIG_RETRY_DISABLE			1
1431983Sjj156685 #define	DLU_LINK_LAYER_STATUS					0xe2208
1441983Sjj156685 #define	DLU_LINK_LAYER_STATUS_LNK_STATE_MACH_STS_MASK		0x7
1451983Sjj156685 #define	DLU_LINK_LAYER_STATUS_LNK_STATE_MACH_STS_DL_INACTIVE	0x1
1461983Sjj156685 #define	DLU_LINK_LAYER_STATUS_LNK_STATE_MACH_STS_DL_INIT	0x2
1471983Sjj156685 #define	DLU_LINK_LAYER_STATUS_LNK_STATE_MACH_STS_DL_ACTIVE	0x4
1481983Sjj156685 #define	DLU_LINK_LAYER_STATUS_DLUP_STS				3
1491983Sjj156685 #define	DLU_LINK_LAYER_STATUS_INIT_FC_SM_STS			4
1501983Sjj156685 #define	DLU_LINK_LAYER_STATUS_INIT_FC_SM_STS_MASK		0x3
1511983Sjj156685 #define	DLU_LINK_LAYER_STATUS_INIT_FC_SM_STS_FC_IDLE		0x0
1521983Sjj156685 #define	DLU_LINK_LAYER_STATUS_INIT_FC_SM_STS_FC_INIT_1		0x1
1531983Sjj156685 #define	DLU_LINK_LAYER_STATUS_INIT_FC_SM_STS_FC_INIT_2		0x3
1541983Sjj156685 #define	DLU_LINK_LAYER_STATUS_INIT_FC_SM_STS_FC_INIT_DONE	0x2
1551772Sjl139090 #define	DLU_LINK_LAYER_INTERRUPT_AND_STATUS			0xe2210
1561772Sjl139090 #define	DLU_LINK_LAYER_INTERRUPT_AND_STATUS_INT_LINK_ERR_ACT	31
1571772Sjl139090 #define	DLU_LINK_LAYER_INTERRUPT_AND_STATUS_INT_PARABUS_PE	23
1581772Sjl139090 #define	DLU_LINK_LAYER_INTERRUPT_AND_STATUS_INT_UNSPRTD_DLLP	22
1591772Sjl139090 #define	DLU_LINK_LAYER_INTERRUPT_AND_STATUS_INT_SRC_ERR_TLP	17
1601772Sjl139090 #define	DLU_LINK_LAYER_INTERRUPT_MASK				0xe2220
1611772Sjl139090 #define	DLU_LINK_LAYER_INTERRUPT_MASK_MSK_LINK_ERR_ACT		31
1621772Sjl139090 #define	DLU_LINK_LAYER_INTERRUPT_MASK_MSK_PARABUS_PE		23
1631772Sjl139090 #define	DLU_LINK_LAYER_INTERRUPT_MASK_MSK_UNSPRTD_DLLP		22
1641772Sjl139090 #define	DLU_LINK_LAYER_INTERRUPT_MASK_MSK_SRC_ERR_TLP		17
1651772Sjl139090 #define	DLU_FLOW_CONTROL_UPDATE_CONTROL				0xe2240
1661772Sjl139090 #define	DLU_FLOW_CONTROL_UPDATE_CONTROL_FC0_U_C_EN		2
1671772Sjl139090 #define	DLU_FLOW_CONTROL_UPDATE_CONTROL_FC0_U_NP_EN		1
1681772Sjl139090 #define	DLU_FLOW_CONTROL_UPDATE_CONTROL_FC0_U_P_EN		0
1691772Sjl139090 #define	DLU_TXLINK_REPLAY_TIMER_THRESHOLD			0xe2410
1701772Sjl139090 #define	DLU_TXLINK_REPLAY_TIMER_THRESHOLD_RPLAY_TMR_THR		0
1711772Sjl139090 #define	DLU_TXLINK_REPLAY_TIMER_THRESHOLD_RPLAY_TMR_THR_MASK	0xfffff
1721772Sjl139090 #define	DLU_TXLINK_REPLAY_TIMER_THRESHOLD_DEFAULT		0xc9
1731772Sjl139090 #define	DLU_PORT_CONTROL					0xe2b00
1741772Sjl139090 #define	DLU_PORT_CONTROL_CK_EN					0
1751772Sjl139090 #define	DLU_PORT_STATUS						0xe2b08
1761772Sjl139090 
1771772Sjl139090 #define	MMU_INTERRUPT_STATUS_TTC_DUE_P				8
1781772Sjl139090 #define	MMU_INTERRUPT_STATUS_TTC_DUE_S				40
1791772Sjl139090 #define	ILU_INTERRUPT_STATUS_IHB_UE_P				4
1801772Sjl139090 #define	ILU_INTERRUPT_STATUS_IHB_UE_S				36
1811772Sjl139090 #define	TLU_UNCORRECTABLE_ERROR_STATUS_CLEAR_ECRC_P		19
1821772Sjl139090 #define	TLU_UNCORRECTABLE_ERROR_STATUS_CLEAR_ECRC_S		51
1831772Sjl139090 #define	TLU_UNCORRECTABLE_ERROR_STATUS_CLEAR_POIS_P		12
1841772Sjl139090 #define	TLU_UNCORRECTABLE_ERROR_STATUS_CLEAR_POIS_S		44
1851772Sjl139090 #define	TLU_OTHER_EVENT_STATUS_CLEAR_EIUE_P			0
1861772Sjl139090 #define	TLU_OTHER_EVENT_STATUS_CLEAR_EIUE_S			32
1871772Sjl139090 #define	TLU_OTHER_EVENT_STATUS_CLEAR_ERBUE_P			1
1881772Sjl139090 #define	TLU_OTHER_EVENT_STATUS_CLEAR_ERBUE_S			33
1891772Sjl139090 #define	TLU_OTHER_EVENT_STATUS_CLEAR_TLUEITMO_P			7
1901772Sjl139090 #define	TLU_OTHER_EVENT_STATUS_CLEAR_TLUEITMO_S			39
1911772Sjl139090 #define	TLU_OTHER_EVENT_STATUS_CLEAR_EHBUE_P			12
1921772Sjl139090 #define	TLU_OTHER_EVENT_STATUS_CLEAR_EHBUE_S			44
1931772Sjl139090 #define	TLU_OTHER_EVENT_STATUS_CLEAR_EDBUE_P			12
1941772Sjl139090 #define	TLU_OTHER_EVENT_STATUS_CLEAR_EDBUE_S			44
1951772Sjl139090 
1961772Sjl139090 #define	TLU_CONTROL_DRN_TR_DIS					35
1971772Sjl139090 
1981772Sjl139090 #define	TLU_SLOT_CONTROL					0x90038
1991772Sjl139090 #define	TLU_SLOT_CONTROL_PWFDEN					1
2001772Sjl139090 #define	TLU_SLOT_STATUS						0x90040
2011772Sjl139090 #define	TLU_SLOT_STATUS_PSD					6
2021772Sjl139090 #define	TLU_SLOT_STATUS_MRLS					5
2031772Sjl139090 #define	TLU_SLOT_STATUS_CMDCPLT					4
2041772Sjl139090 #define	TLU_SLOT_STATUS_PSDC					3
2051772Sjl139090 #define	TLU_SLOT_STATUS_MRLC					2
2061772Sjl139090 #define	TLU_SLOT_STATUS_PWFD					1
2071772Sjl139090 #define	TLU_SLOT_STATUS_ABTN					0
2081772Sjl139090 
2091983Sjj156685 #define	FLP_PORT_LINK_CONTROL					0xe5008
2101983Sjj156685 #define	FLP_PORT_LINK_CONTROL_RETRAIN				5
2111983Sjj156685 
2121772Sjl139090 #define	FLP_PORT_CONTROL					0xe5200
2131772Sjl139090 #define	FLP_PORT_CONTROL_PORT_DIS				0
2141772Sjl139090 
2151983Sjj156685 #define	FLP_PORT_ACTIVE_STATUS					0xe5240
2161983Sjj156685 #define	FLP_PORT_ACTIVE_STATUS_TRAIN_ERROR			1
2171983Sjj156685 
2181772Sjl139090 #define	HOTPLUG_CONTROL						0x88000
2191772Sjl139090 #define	HOTPLUG_CONTROL_SLOTPON					3
2201772Sjl139090 #define	HOTPLUG_CONTROL_PWREN					2
2211772Sjl139090 #define	HOTPLUG_CONTROL_CLKEN					1
2221772Sjl139090 #define	HOTPLUG_CONTROL_N_PERST					0
2231772Sjl139090 
2242476Sdwoods #define	DRAIN_CONTROL_STATUS					0x51100
2252476Sdwoods #define	DRAIN_CONTROL_STATUS_DRAIN				0
2262476Sdwoods 
2271772Sjl139090 #ifdef	__cplusplus
2281772Sjl139090 }
2291772Sjl139090 #endif
2301772Sjl139090 
2311772Sjl139090 #endif	/* _SYS_OBERON_REGS_H */
232