19a5557fdSlucy wang - Sun Microsystems - Beijing China /*
29a5557fdSlucy wang - Sun Microsystems - Beijing China  * CDDL HEADER START
39a5557fdSlucy wang - Sun Microsystems - Beijing China  *
49a5557fdSlucy wang - Sun Microsystems - Beijing China  * The contents of this file are subject to the terms of the
59a5557fdSlucy wang - Sun Microsystems - Beijing China  * Common Development and Distribution License (the "License").
69a5557fdSlucy wang - Sun Microsystems - Beijing China  * You may not use this file except in compliance with the License.
79a5557fdSlucy wang - Sun Microsystems - Beijing China  *
89a5557fdSlucy wang - Sun Microsystems - Beijing China  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
99a5557fdSlucy wang - Sun Microsystems - Beijing China  * or http://www.opensolaris.org/os/licensing.
109a5557fdSlucy wang - Sun Microsystems - Beijing China  * See the License for the specific language governing permissions
119a5557fdSlucy wang - Sun Microsystems - Beijing China  * and limitations under the License.
129a5557fdSlucy wang - Sun Microsystems - Beijing China  *
139a5557fdSlucy wang - Sun Microsystems - Beijing China  * When distributing Covered Code, include this CDDL HEADER in each
149a5557fdSlucy wang - Sun Microsystems - Beijing China  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
159a5557fdSlucy wang - Sun Microsystems - Beijing China  * If applicable, add the following below this CDDL HEADER, with the
169a5557fdSlucy wang - Sun Microsystems - Beijing China  * fields enclosed by brackets "[]" replaced with your own identifying
179a5557fdSlucy wang - Sun Microsystems - Beijing China  * information: Portions Copyright [yyyy] [name of copyright owner]
189a5557fdSlucy wang - Sun Microsystems - Beijing China  *
199a5557fdSlucy wang - Sun Microsystems - Beijing China  * CDDL HEADER END
209a5557fdSlucy wang - Sun Microsystems - Beijing China  */
21*93833965Sjing xiong ERI-SUN 
229a5557fdSlucy wang - Sun Microsystems - Beijing China /*
239a5557fdSlucy wang - Sun Microsystems - Beijing China  * Copyright 2008 NetXen, Inc.  All rights reserved.
249a5557fdSlucy wang - Sun Microsystems - Beijing China  * Use is subject to license terms.
259a5557fdSlucy wang - Sun Microsystems - Beijing China  */
26*93833965Sjing xiong ERI-SUN 
27*93833965Sjing xiong ERI-SUN #ifndef _NIC_PHAN_REG_H_
28*93833965Sjing xiong ERI-SUN #define	_NIC_PHAN_REG_H_
29*93833965Sjing xiong ERI-SUN 
30*93833965Sjing xiong ERI-SUN #ifdef __cplusplus
31*93833965Sjing xiong ERI-SUN extern "C" {
32*93833965Sjing xiong ERI-SUN #endif
339a5557fdSlucy wang - Sun Microsystems - Beijing China 
349a5557fdSlucy wang - Sun Microsystems - Beijing China #define	NIC_CRB_BASE				UNM_CAM_RAM(0x200)
359a5557fdSlucy wang - Sun Microsystems - Beijing China #define	NIC_CRB_BASE_2				UNM_CAM_RAM(0x700)
369a5557fdSlucy wang - Sun Microsystems - Beijing China #define	UNM_NIC_REG(X)				(NIC_CRB_BASE+(X))
379a5557fdSlucy wang - Sun Microsystems - Beijing China #define	UNM_NIC_REG_2(X)			(NIC_CRB_BASE_2+(X))
389a5557fdSlucy wang - Sun Microsystems - Beijing China 
399a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_CUT_THRU_PAGE_SIZE		UNM_CAM_RAM(0x170)
409a5557fdSlucy wang - Sun Microsystems - Beijing China 
419a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_CMD_PRODUCER_OFFSET		UNM_NIC_REG(0x08)
429a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_CMD_CONSUMER_OFFSET		UNM_NIC_REG(0x0c)
439a5557fdSlucy wang - Sun Microsystems - Beijing China /* C0 EPG BUG  */
449a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_PAUSE_ADDR_LO			UNM_NIC_REG(0x10)
459a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_PAUSE_ADDR_HI			UNM_NIC_REG(0x14)
469a5557fdSlucy wang - Sun Microsystems - Beijing China #define	NX_CDRP_CRB_OFFSET			UNM_NIC_REG(0x18)
479a5557fdSlucy wang - Sun Microsystems - Beijing China #define	NX_ARG1_CRB_OFFSET			UNM_NIC_REG(0x1c)
489a5557fdSlucy wang - Sun Microsystems - Beijing China #define	NX_ARG2_CRB_OFFSET			UNM_NIC_REG(0x20)
499a5557fdSlucy wang - Sun Microsystems - Beijing China #define	NX_ARG3_CRB_OFFSET			UNM_NIC_REG(0x24)
509a5557fdSlucy wang - Sun Microsystems - Beijing China #define	NX_SIGN_CRB_OFFSET			UNM_NIC_REG(0x28)
519a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_CMDPEG_CMDRING			UNM_NIC_REG(0x38)
529a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_HOST_DUMMY_BUF_ADDR_HI  UNM_NIC_REG(0x3c)
539a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_HOST_DUMMY_BUF_ADDR_LO  UNM_NIC_REG(0x40)
549a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_CMDPEG_STATE			UNM_NIC_REG(0x50)
559a5557fdSlucy wang - Sun Microsystems - Beijing China /* interrupt coalescing */
569a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_GLOBAL_INT_COAL			UNM_NIC_REG(0x64)
579a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_INT_COAL_MODE			UNM_NIC_REG(0x68)
589a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_MAX_RCV_BUFS			UNM_NIC_REG(0x6c)
599a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_TX_INT_THRESHOLD		UNM_NIC_REG(0x70)
609a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_RX_PKT_TIMER			UNM_NIC_REG(0x74)
619a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_TX_PKT_TIMER			UNM_NIC_REG(0x78)
629a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_RX_PKT_CNT				UNM_NIC_REG(0x7c)
639a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_RX_TMR_CNT				UNM_NIC_REG(0x80)
649a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_RCV_INTR_COUNT			UNM_NIC_REG(0x84)
659a5557fdSlucy wang - Sun Microsystems - Beijing China /* XG Link status */
669a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_XG_STATE				UNM_NIC_REG(0x94)
679a5557fdSlucy wang - Sun Microsystems - Beijing China /* XG PF Link status */
689a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_XG_STATE_P3				UNM_NIC_REG(0x98)
699a5557fdSlucy wang - Sun Microsystems - Beijing China /* Debug -performance */
709a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_TX_STATE				UNM_NIC_REG(0xac)
719a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_TX_COUNT				UNM_NIC_REG(0xb0)
729a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_RX_STATE				UNM_NIC_REG(0xb4)
739a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_RX_PERF_DEBUG_1			UNM_NIC_REG(0xb8)
749a5557fdSlucy wang - Sun Microsystems - Beijing China /* LRO On/OFF */
759a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_RX_LRO_CONTROL			UNM_NIC_REG(0xbc)
769a5557fdSlucy wang - Sun Microsystems - Beijing China /* Multiport Mode */
779a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_MPORT_MODE				UNM_NIC_REG(0xc4)
789a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_INT_VECTOR				UNM_NIC_REG(0xd4)
799a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_PF_LINK_SPEED_1			UNM_NIC_REG(0xe8)
809a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_PF_LINK_SPEED_2			UNM_NIC_REG(0xec)
819a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_HOST_DUMMY_BUF			UNM_NIC_REG(0xfc)
829a5557fdSlucy wang - Sun Microsystems - Beijing China 
839a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_SCRATCHPAD_TEST			UNM_NIC_REG(0x280)
849a5557fdSlucy wang - Sun Microsystems - Beijing China 
859a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_RCVPEG_STATE			UNM_NIC_REG(0x13c)
869a5557fdSlucy wang - Sun Microsystems - Beijing China 
879a5557fdSlucy wang - Sun Microsystems - Beijing China /* 12 registers to store MAC addresses for 8 PCI functions */
889a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_MAC_BLOCK_START			UNM_CAM_RAM(0x1c0)
899a5557fdSlucy wang - Sun Microsystems - Beijing China 
909a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_CMD_PRODUCER_OFFSET_1   UNM_NIC_REG(0x1ac)
919a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_CMD_CONSUMER_OFFSET_1   UNM_NIC_REG(0x1b0)
929a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_TEMP_STATE				UNM_NIC_REG(0x1b4)
939a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_CMD_PRODUCER_OFFSET_2	UNM_NIC_REG(0x1b8)
949a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_CMD_CONSUMER_OFFSET_2	UNM_NIC_REG(0x1bc)
959a5557fdSlucy wang - Sun Microsystems - Beijing China 
969a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_CMD_PRODUCER_OFFSET_3	UNM_NIC_REG(0x1d0)
979a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_CMD_CONSUMER_OFFSET_3	UNM_NIC_REG(0x1d4)
989a5557fdSlucy wang - Sun Microsystems - Beijing China /*   sw int status/mask registers */
999a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_SW_INT_MASK_OFFSET_0   0x1d8
1009a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_SW_INT_MASK_OFFSET_1   0x1e0
1019a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_SW_INT_MASK_OFFSET_2   0x1e4
1029a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_SW_INT_MASK_OFFSET_3   0x1e8
1039a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_SW_INT_MASK_OFFSET_4   0x450
1049a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_SW_INT_MASK_OFFSET_5   0x454
1059a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_SW_INT_MASK_OFFSET_6   0x458
1069a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_SW_INT_MASK_OFFSET_7   0x45c
1079a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_SW_INT_MASK_0		UNM_NIC_REG(CRB_SW_INT_MASK_OFFSET_0)
1089a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_SW_INT_MASK_1		UNM_NIC_REG(CRB_SW_INT_MASK_OFFSET_1)
1099a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_SW_INT_MASK_2		UNM_NIC_REG(CRB_SW_INT_MASK_OFFSET_2)
1109a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_SW_INT_MASK_3		UNM_NIC_REG(CRB_SW_INT_MASK_OFFSET_3)
1119a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_SW_INT_MASK_4		UNM_NIC_REG(CRB_SW_INT_MASK_OFFSET_4)
1129a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_SW_INT_MASK_5		UNM_NIC_REG(CRB_SW_INT_MASK_OFFSET_5)
1139a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_SW_INT_MASK_6		UNM_NIC_REG(CRB_SW_INT_MASK_OFFSET_6)
1149a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_SW_INT_MASK_7		UNM_NIC_REG(CRB_SW_INT_MASK_OFFSET_7)
1159a5557fdSlucy wang - Sun Microsystems - Beijing China 
1169a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_NIC_DEBUG_STRUCT_BASE	UNM_NIC_REG(0x288)
1179a5557fdSlucy wang - Sun Microsystems - Beijing China 
1189a5557fdSlucy wang - Sun Microsystems - Beijing China /*
1199a5557fdSlucy wang - Sun Microsystems - Beijing China  * capabilities register, can be used to selectively enable/disable features
1209a5557fdSlucy wang - Sun Microsystems - Beijing China  * for backward compability
1219a5557fdSlucy wang - Sun Microsystems - Beijing China  */
1229a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_NIC_CAPABILITIES_HOST	UNM_NIC_REG(0x1a8)
1239a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_NIC_MSI_MODE_HOST		UNM_NIC_REG(0x270)
1249a5557fdSlucy wang - Sun Microsystems - Beijing China #define	INTR_SCHEME_PERPORT		0x1
1259a5557fdSlucy wang - Sun Microsystems - Beijing China #define	MSI_MODE_MULTIFUNC		0x1
1269a5557fdSlucy wang - Sun Microsystems - Beijing China 
1279a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_EPG_QUEUE_BUSY_COUNT    UNM_NIC_REG(0x200)
1289a5557fdSlucy wang - Sun Microsystems - Beijing China 
1299a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_V2P_0					UNM_NIC_REG(0x290)
1309a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_V2P_1					UNM_NIC_REG(0x294)
1319a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_V2P_2					UNM_NIC_REG(0x298)
1329a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_V2P_3					UNM_NIC_REG(0x29c)
1339a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_V2P(port)				(CRB_V2P_0+((port)*4))
1349a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_DRIVER_VERSION			UNM_NIC_REG(0x2a0)
1359a5557fdSlucy wang - Sun Microsystems - Beijing China 
1369a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_CNT_DBG1				UNM_NIC_REG(0x2a4)
1379a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_CNT_DBG2				UNM_NIC_REG(0x2a8)
1389a5557fdSlucy wang - Sun Microsystems - Beijing China #define	CRB_CNT_DBG3				UNM_NIC_REG(0x2ac)
1399a5557fdSlucy wang - Sun Microsystems - Beijing China 
1409a5557fdSlucy wang - Sun Microsystems - Beijing China 	/*
1419a5557fdSlucy wang - Sun Microsystems - Beijing China 	 * Driver must set the version number register as follows:
1429a5557fdSlucy wang - Sun Microsystems - Beijing China 	 *	(major << 16) | (minor << 8) | (subminor)
1439a5557fdSlucy wang - Sun Microsystems - Beijing China 	 */
1449a5557fdSlucy wang - Sun Microsystems - Beijing China 
1459a5557fdSlucy wang - Sun Microsystems - Beijing China /* last -> 0x2a0 */
1469a5557fdSlucy wang - Sun Microsystems - Beijing China 
1479a5557fdSlucy wang - Sun Microsystems - Beijing China /* Upper 16 bits of CRB_TEMP_STATE:temperature value. Lower 16 bits: state */
1489a5557fdSlucy wang - Sun Microsystems - Beijing China #define	nx_get_temp_val(x)				((x) >> 16)
1499a5557fdSlucy wang - Sun Microsystems - Beijing China #define	nx_get_temp_state(x)			((x) & 0xffff)
1509a5557fdSlucy wang - Sun Microsystems - Beijing China #define	nx_encode_temp(val, state)		(((val) << 16) | (state))
1519a5557fdSlucy wang - Sun Microsystems - Beijing China 
1529a5557fdSlucy wang - Sun Microsystems - Beijing China #define	lower32(x)	((__uint32_t)((x) & 0xffffffff))
1539a5557fdSlucy wang - Sun Microsystems - Beijing China #define	upper32(x)	((__uint32_t)(((unsigned long long)(x) >> 32) &	\
1549a5557fdSlucy wang - Sun Microsystems - Beijing China 			0xffffffff))
1559a5557fdSlucy wang - Sun Microsystems - Beijing China 
1569a5557fdSlucy wang - Sun Microsystems - Beijing China /*
1579a5557fdSlucy wang - Sun Microsystems - Beijing China  * Temperature control.
1589a5557fdSlucy wang - Sun Microsystems - Beijing China  */
1599a5557fdSlucy wang - Sun Microsystems - Beijing China enum {
1609a5557fdSlucy wang - Sun Microsystems - Beijing China     NX_TEMP_NORMAL = 0x1,	/* Normal operating range */
1619a5557fdSlucy wang - Sun Microsystems - Beijing China     NX_TEMP_WARN,		/* Sound alert, temperature getting high */
1629a5557fdSlucy wang - Sun Microsystems - Beijing China     NX_TEMP_PANIC		/* Fatal error, hardware has shut down. */
1639a5557fdSlucy wang - Sun Microsystems - Beijing China };
1649a5557fdSlucy wang - Sun Microsystems - Beijing China 
1659a5557fdSlucy wang - Sun Microsystems - Beijing China #define	D3_CRB_REG_FUN2		(UNM_PCIX_PS_REG(0x2084))
1669a5557fdSlucy wang - Sun Microsystems - Beijing China #define	D3_CRB_REG_FUN3		(UNM_PCIX_PS_REG(0x3084))
167*93833965Sjing xiong ERI-SUN 
168*93833965Sjing xiong ERI-SUN #ifdef __cplusplus
169*93833965Sjing xiong ERI-SUN }
170*93833965Sjing xiong ERI-SUN #endif
171*93833965Sjing xiong ERI-SUN 
172*93833965Sjing xiong ERI-SUN #endif /* !_NIC_PHAN_REG_H_ */
173