| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | /****************************************************************************** | 
|  | 2 | * | 
|  | 3 | * Name:	skgeinit.h | 
|  | 4 | * Project:	Gigabit Ethernet Adapters, Common Modules | 
|  | 5 | * Version:	$Revision: 1.83 $ | 
|  | 6 | * Date:	$Date: 2003/09/16 14:07:37 $ | 
|  | 7 | * Purpose:	Structures and prototypes for the GE Init Module | 
|  | 8 | * | 
|  | 9 | ******************************************************************************/ | 
|  | 10 |  | 
|  | 11 | /****************************************************************************** | 
|  | 12 | * | 
|  | 13 | *	(C)Copyright 1998-2002 SysKonnect. | 
|  | 14 | *	(C)Copyright 2002-2003 Marvell. | 
|  | 15 | * | 
|  | 16 | *	This program is free software; you can redistribute it and/or modify | 
|  | 17 | *	it under the terms of the GNU General Public License as published by | 
|  | 18 | *	the Free Software Foundation; either version 2 of the License, or | 
|  | 19 | *	(at your option) any later version. | 
|  | 20 | * | 
|  | 21 | *	The information in this file is provided "AS IS" without warranty. | 
|  | 22 | * | 
|  | 23 | ******************************************************************************/ | 
|  | 24 |  | 
|  | 25 | #ifndef __INC_SKGEINIT_H_ | 
|  | 26 | #define __INC_SKGEINIT_H_ | 
|  | 27 |  | 
|  | 28 | #ifdef __cplusplus | 
|  | 29 | extern "C" { | 
|  | 30 | #endif	/* __cplusplus */ | 
|  | 31 |  | 
|  | 32 | /* defines ********************************************************************/ | 
|  | 33 |  | 
|  | 34 | #define SK_TEST_VAL		0x11335577UL | 
|  | 35 |  | 
|  | 36 | /* modifying Link LED behaviour (used with SkGeLinkLED()) */ | 
|  | 37 | #define SK_LNK_OFF		LED_OFF | 
|  | 38 | #define SK_LNK_ON		(LED_ON | LED_BLK_OFF | LED_SYNC_OFF) | 
|  | 39 | #define SK_LNK_BLINK	(LED_ON | LED_BLK_ON  | LED_SYNC_ON) | 
|  | 40 | #define SK_LNK_PERM		(LED_ON | LED_BLK_OFF | LED_SYNC_ON) | 
|  | 41 | #define SK_LNK_TST		(LED_ON | LED_BLK_ON  | LED_SYNC_OFF) | 
|  | 42 |  | 
|  | 43 | /* parameter 'Mode' when calling SK_HWAC_LINK_LED() */ | 
|  | 44 | #define SK_LED_OFF		LED_OFF | 
|  | 45 | #define SK_LED_ACTIVE	(LED_ON | LED_BLK_OFF | LED_SYNC_OFF) | 
|  | 46 | #define SK_LED_STANDBY	(LED_ON | LED_BLK_ON  | LED_SYNC_OFF) | 
|  | 47 |  | 
|  | 48 | /* addressing LED Registers in SkGeXmitLED() */ | 
|  | 49 | #define XMIT_LED_INI	0 | 
|  | 50 | #define XMIT_LED_CNT	(RX_LED_VAL - RX_LED_INI) | 
|  | 51 | #define XMIT_LED_CTRL	(RX_LED_CTRL- RX_LED_INI) | 
|  | 52 | #define XMIT_LED_TST	(RX_LED_TST - RX_LED_INI) | 
|  | 53 |  | 
|  | 54 | /* parameter 'Mode' when calling SkGeXmitLED() */ | 
|  | 55 | #define SK_LED_DIS	0 | 
|  | 56 | #define SK_LED_ENA	1 | 
|  | 57 | #define SK_LED_TST	2 | 
|  | 58 |  | 
|  | 59 | /* Counter and Timer constants, for a host clock of 62.5 MHz */ | 
|  | 60 | #define SK_XMIT_DUR		0x002faf08UL	/*  50 ms */ | 
|  | 61 | #define SK_BLK_DUR		0x01dcd650UL	/* 500 ms */ | 
|  | 62 |  | 
|  | 63 | #define SK_DPOLL_DEF	0x00ee6b28UL	/* 250 ms at 62.5 MHz */ | 
|  | 64 |  | 
|  | 65 | #define SK_DPOLL_MAX	0x00ffffffUL	/* 268 ms at 62.5 MHz */ | 
|  | 66 | /* 215 ms at 78.12 MHz */ | 
|  | 67 |  | 
|  | 68 | #define SK_FACT_62		100			/* is given in percent */ | 
|  | 69 | #define SK_FACT_53		 85         /* on GENESIS:	53.12 MHz */ | 
|  | 70 | #define SK_FACT_78		125			/* on YUKON:	78.12 MHz */ | 
|  | 71 |  | 
|  | 72 | /* Timeout values */ | 
|  | 73 | #define SK_MAC_TO_53	72			/* MAC arbiter timeout */ | 
|  | 74 | #define SK_PKT_TO_53	0x2000		/* Packet arbiter timeout */ | 
|  | 75 | #define SK_PKT_TO_MAX	0xffff		/* Maximum value */ | 
|  | 76 | #define SK_RI_TO_53		36			/* RAM interface timeout */ | 
|  | 77 |  | 
|  | 78 | #define SK_PHY_ACC_TO	600000		/* PHY access timeout */ | 
|  | 79 |  | 
|  | 80 | /* RAM Buffer High Pause Threshold values */ | 
|  | 81 | #define SK_RB_ULPP		( 8 * 1024)	/* Upper Level in kB/8 */ | 
|  | 82 | #define SK_RB_LLPP_S	(10 * 1024)	/* Lower Level for small Queues */ | 
|  | 83 | #define SK_RB_LLPP_B	(16 * 1024)	/* Lower Level for big Queues */ | 
|  | 84 |  | 
|  | 85 | #ifndef SK_BMU_RX_WM | 
|  | 86 | #define SK_BMU_RX_WM	0x600		/* BMU Rx Watermark */ | 
|  | 87 | #endif | 
|  | 88 | #ifndef SK_BMU_TX_WM | 
|  | 89 | #define SK_BMU_TX_WM	0x600		/* BMU Tx Watermark */ | 
|  | 90 | #endif | 
|  | 91 |  | 
|  | 92 | /* XMAC II Rx High Watermark */ | 
|  | 93 | #define SK_XM_RX_HI_WM	0x05aa		/* 1450 */ | 
|  | 94 |  | 
|  | 95 | /* XMAC II Tx Threshold */ | 
|  | 96 | #define SK_XM_THR_REDL	0x01fb		/* .. for redundant link usage */ | 
|  | 97 | #define SK_XM_THR_SL	0x01fb		/* .. for single link adapters */ | 
|  | 98 | #define SK_XM_THR_MULL	0x01fb		/* .. for multiple link usage */ | 
|  | 99 | #define SK_XM_THR_JUMBO	0x03fc		/* .. for jumbo frame usage */ | 
|  | 100 |  | 
|  | 101 | /* values for GIPortUsage */ | 
|  | 102 | #define SK_RED_LINK		1		/* redundant link usage */ | 
|  | 103 | #define SK_MUL_LINK		2		/* multiple link usage */ | 
|  | 104 | #define SK_JUMBO_LINK	3		/* driver uses jumbo frames */ | 
|  | 105 |  | 
|  | 106 | /* Minimum RAM Buffer Rx Queue Size */ | 
|  | 107 | #define SK_MIN_RXQ_SIZE	16		/* 16 kB */ | 
|  | 108 |  | 
|  | 109 | /* Minimum RAM Buffer Tx Queue Size */ | 
|  | 110 | #define SK_MIN_TXQ_SIZE	16		/* 16 kB */ | 
|  | 111 |  | 
|  | 112 | /* Queue Size units */ | 
|  | 113 | #define QZ_UNITS		0x7 | 
|  | 114 | #define QZ_STEP			8 | 
|  | 115 |  | 
|  | 116 | /* Percentage of queue size from whole memory */ | 
|  | 117 | /* 80 % for receive */ | 
|  | 118 | #define RAM_QUOTA_RX	80L | 
|  | 119 | /* 0% for sync transfer */ | 
|  | 120 | #define	RAM_QUOTA_SYNC	0L | 
|  | 121 | /* the rest (20%) is taken for async transfer */ | 
|  | 122 |  | 
|  | 123 | /* Get the rounded queue size in Bytes in 8k steps */ | 
|  | 124 | #define ROUND_QUEUE_SIZE(SizeInBytes)					\ | 
|  | 125 | ((((unsigned long) (SizeInBytes) + (QZ_STEP*1024L)-1) / 1024) &	\ | 
|  | 126 | ~(QZ_STEP-1)) | 
|  | 127 |  | 
|  | 128 | /* Get the rounded queue size in KBytes in 8k steps */ | 
|  | 129 | #define ROUND_QUEUE_SIZE_KB(Kilobytes) \ | 
|  | 130 | ROUND_QUEUE_SIZE((Kilobytes) * 1024L) | 
|  | 131 |  | 
|  | 132 | /* Types of RAM Buffer Queues */ | 
|  | 133 | #define SK_RX_SRAM_Q	1	/* small receive queue */ | 
|  | 134 | #define SK_RX_BRAM_Q	2	/* big receive queue */ | 
|  | 135 | #define SK_TX_RAM_Q		3	/* small or big transmit queue */ | 
|  | 136 |  | 
|  | 137 | /* parameter 'Dir' when calling SkGeStopPort() */ | 
|  | 138 | #define SK_STOP_TX	1	/* Stops the transmit path, resets the XMAC */ | 
|  | 139 | #define SK_STOP_RX	2	/* Stops the receive path */ | 
|  | 140 | #define SK_STOP_ALL	3	/* Stops Rx and Tx path, resets the XMAC */ | 
|  | 141 |  | 
|  | 142 | /* parameter 'RstMode' when calling SkGeStopPort() */ | 
|  | 143 | #define SK_SOFT_RST	1	/* perform a software reset */ | 
|  | 144 | #define SK_HARD_RST	2	/* perform a hardware reset */ | 
|  | 145 |  | 
|  | 146 | /* Init Levels */ | 
|  | 147 | #define SK_INIT_DATA	0	/* Init level 0: init data structures */ | 
|  | 148 | #define SK_INIT_IO		1	/* Init level 1: init with IOs */ | 
|  | 149 | #define SK_INIT_RUN		2	/* Init level 2: init for run time */ | 
|  | 150 |  | 
|  | 151 | /* Link Mode Parameter */ | 
|  | 152 | #define SK_LMODE_HALF		1	/* Half Duplex Mode */ | 
|  | 153 | #define SK_LMODE_FULL		2	/* Full Duplex Mode */ | 
|  | 154 | #define SK_LMODE_AUTOHALF	3	/* AutoHalf Duplex Mode */ | 
|  | 155 | #define SK_LMODE_AUTOFULL	4	/* AutoFull Duplex Mode */ | 
|  | 156 | #define SK_LMODE_AUTOBOTH	5	/* AutoBoth Duplex Mode */ | 
|  | 157 | #define SK_LMODE_AUTOSENSE	6	/* configured mode auto sensing */ | 
|  | 158 | #define SK_LMODE_INDETERMINATED	7	/* indeterminated */ | 
|  | 159 |  | 
|  | 160 | /* Auto-negotiation timeout in 100ms granularity */ | 
|  | 161 | #define SK_AND_MAX_TO		6	/* Wait 600 msec before link comes up */ | 
|  | 162 |  | 
|  | 163 | /* Auto-negotiation error codes */ | 
|  | 164 | #define SK_AND_OK			0	/* no error */ | 
|  | 165 | #define SK_AND_OTHER		1	/* other error than below */ | 
|  | 166 | #define SK_AND_DUP_CAP		2	/* Duplex capabilities error */ | 
|  | 167 |  | 
|  | 168 |  | 
|  | 169 | /* Link Speed Capabilities */ | 
|  | 170 | #define SK_LSPEED_CAP_AUTO			(1<<0)	/* Automatic resolution */ | 
|  | 171 | #define SK_LSPEED_CAP_10MBPS		(1<<1)	/* 10 Mbps */ | 
|  | 172 | #define SK_LSPEED_CAP_100MBPS		(1<<2)	/* 100 Mbps */ | 
|  | 173 | #define SK_LSPEED_CAP_1000MBPS		(1<<3)	/* 1000 Mbps */ | 
|  | 174 | #define SK_LSPEED_CAP_INDETERMINATED (1<<4) /* indeterminated */ | 
|  | 175 |  | 
|  | 176 | /* Link Speed Parameter */ | 
|  | 177 | #define SK_LSPEED_AUTO				1	/* Automatic resolution */ | 
|  | 178 | #define SK_LSPEED_10MBPS			2	/* 10 Mbps */ | 
|  | 179 | #define SK_LSPEED_100MBPS			3	/* 100 Mbps */ | 
|  | 180 | #define SK_LSPEED_1000MBPS			4	/* 1000 Mbps */ | 
|  | 181 | #define SK_LSPEED_INDETERMINATED	5	/* indeterminated */ | 
|  | 182 |  | 
|  | 183 | /* Link Speed Current State */ | 
|  | 184 | #define SK_LSPEED_STAT_UNKNOWN		1 | 
|  | 185 | #define SK_LSPEED_STAT_10MBPS		2 | 
|  | 186 | #define SK_LSPEED_STAT_100MBPS 		3 | 
|  | 187 | #define SK_LSPEED_STAT_1000MBPS		4 | 
|  | 188 | #define SK_LSPEED_STAT_INDETERMINATED 5 | 
|  | 189 |  | 
|  | 190 |  | 
|  | 191 | /* Link Capability Parameter */ | 
|  | 192 | #define SK_LMODE_CAP_HALF		(1<<0)	/* Half Duplex Mode */ | 
|  | 193 | #define SK_LMODE_CAP_FULL		(1<<1)	/* Full Duplex Mode */ | 
|  | 194 | #define SK_LMODE_CAP_AUTOHALF	(1<<2)	/* AutoHalf Duplex Mode */ | 
|  | 195 | #define SK_LMODE_CAP_AUTOFULL	(1<<3)	/* AutoFull Duplex Mode */ | 
|  | 196 | #define SK_LMODE_CAP_INDETERMINATED (1<<4) /* indeterminated */ | 
|  | 197 |  | 
|  | 198 | /* Link Mode Current State */ | 
|  | 199 | #define SK_LMODE_STAT_UNKNOWN	1	/* Unknown Duplex Mode */ | 
|  | 200 | #define SK_LMODE_STAT_HALF		2	/* Half Duplex Mode */ | 
|  | 201 | #define SK_LMODE_STAT_FULL		3	/* Full Duplex Mode */ | 
|  | 202 | #define SK_LMODE_STAT_AUTOHALF	4	/* Half Duplex Mode obtained by Auto-Neg */ | 
|  | 203 | #define SK_LMODE_STAT_AUTOFULL	5	/* Full Duplex Mode obtained by Auto-Neg */ | 
|  | 204 | #define SK_LMODE_STAT_INDETERMINATED 6	/* indeterminated */ | 
|  | 205 |  | 
|  | 206 | /* Flow Control Mode Parameter (and capabilities) */ | 
|  | 207 | #define SK_FLOW_MODE_NONE		1	/* No Flow-Control */ | 
|  | 208 | #define SK_FLOW_MODE_LOC_SEND	2	/* Local station sends PAUSE */ | 
|  | 209 | #define SK_FLOW_MODE_SYMMETRIC	3	/* Both stations may send PAUSE */ | 
|  | 210 | #define SK_FLOW_MODE_SYM_OR_REM	4	/* Both stations may send PAUSE or | 
|  | 211 | * just the remote station may send PAUSE | 
|  | 212 | */ | 
|  | 213 | #define SK_FLOW_MODE_INDETERMINATED 5	/* indeterminated */ | 
|  | 214 |  | 
|  | 215 | /* Flow Control Status Parameter */ | 
|  | 216 | #define SK_FLOW_STAT_NONE		1	/* No Flow Control */ | 
|  | 217 | #define SK_FLOW_STAT_REM_SEND	2	/* Remote Station sends PAUSE */ | 
|  | 218 | #define SK_FLOW_STAT_LOC_SEND	3	/* Local station sends PAUSE */ | 
|  | 219 | #define SK_FLOW_STAT_SYMMETRIC	4	/* Both station may send PAUSE */ | 
|  | 220 | #define SK_FLOW_STAT_INDETERMINATED 5	/* indeterminated */ | 
|  | 221 |  | 
|  | 222 | /* Master/Slave Mode Capabilities */ | 
|  | 223 | #define SK_MS_CAP_AUTO		(1<<0)	/* Automatic resolution */ | 
|  | 224 | #define SK_MS_CAP_MASTER	(1<<1)	/* This station is master */ | 
|  | 225 | #define SK_MS_CAP_SLAVE		(1<<2)	/* This station is slave */ | 
|  | 226 | #define SK_MS_CAP_INDETERMINATED (1<<3)	/* indeterminated */ | 
|  | 227 |  | 
|  | 228 | /* Set Master/Slave Mode Parameter (and capabilities) */ | 
|  | 229 | #define SK_MS_MODE_AUTO		1	/* Automatic resolution */ | 
|  | 230 | #define SK_MS_MODE_MASTER	2	/* This station is master */ | 
|  | 231 | #define SK_MS_MODE_SLAVE	3	/* This station is slave */ | 
|  | 232 | #define SK_MS_MODE_INDETERMINATED 4	/* indeterminated */ | 
|  | 233 |  | 
|  | 234 | /* Master/Slave Status Parameter */ | 
|  | 235 | #define SK_MS_STAT_UNSET	1	/* The M/S status is not set */ | 
|  | 236 | #define SK_MS_STAT_MASTER	2	/* This station is master */ | 
|  | 237 | #define SK_MS_STAT_SLAVE	3	/* This station is slave */ | 
|  | 238 | #define SK_MS_STAT_FAULT	4	/* M/S resolution failed */ | 
|  | 239 | #define SK_MS_STAT_INDETERMINATED 5	/* indeterminated */ | 
|  | 240 |  | 
|  | 241 | /* parameter 'Mode' when calling SkXmSetRxCmd() */ | 
|  | 242 | #define SK_STRIP_FCS_ON		(1<<0)	/* Enable  FCS stripping of Rx frames */ | 
|  | 243 | #define SK_STRIP_FCS_OFF	(1<<1)	/* Disable FCS stripping of Rx frames */ | 
|  | 244 | #define SK_STRIP_PAD_ON		(1<<2)	/* Enable  pad byte stripping of Rx fr */ | 
|  | 245 | #define SK_STRIP_PAD_OFF	(1<<3)	/* Disable pad byte stripping of Rx fr */ | 
|  | 246 | #define SK_LENERR_OK_ON		(1<<4)	/* Don't chk fr for in range len error */ | 
|  | 247 | #define SK_LENERR_OK_OFF	(1<<5)	/* Check frames for in range len error */ | 
|  | 248 | #define SK_BIG_PK_OK_ON		(1<<6)	/* Don't set Rx Error bit for big frames */ | 
|  | 249 | #define SK_BIG_PK_OK_OFF	(1<<7)	/* Set Rx Error bit for big frames */ | 
|  | 250 | #define SK_SELF_RX_ON		(1<<8)	/* Enable  Rx of own packets */ | 
|  | 251 | #define SK_SELF_RX_OFF		(1<<9)	/* Disable Rx of own packets */ | 
|  | 252 |  | 
|  | 253 | /* parameter 'Para' when calling SkMacSetRxTxEn() */ | 
|  | 254 | #define SK_MAC_LOOPB_ON		(1<<0)	/* Enable  MAC Loopback Mode */ | 
|  | 255 | #define SK_MAC_LOOPB_OFF	(1<<1)	/* Disable MAC Loopback Mode */ | 
|  | 256 | #define SK_PHY_LOOPB_ON		(1<<2)	/* Enable  PHY Loopback Mode */ | 
|  | 257 | #define SK_PHY_LOOPB_OFF	(1<<3)	/* Disable PHY Loopback Mode */ | 
|  | 258 | #define SK_PHY_FULLD_ON		(1<<4)	/* Enable  GMII Full Duplex */ | 
|  | 259 | #define SK_PHY_FULLD_OFF	(1<<5)	/* Disable GMII Full Duplex */ | 
|  | 260 |  | 
|  | 261 | /* States of PState */ | 
|  | 262 | #define SK_PRT_RESET	0	/* the port is reset */ | 
|  | 263 | #define SK_PRT_STOP		1	/* the port is stopped (similar to SW reset) */ | 
|  | 264 | #define SK_PRT_INIT		2	/* the port is initialized */ | 
|  | 265 | #define SK_PRT_RUN		3	/* the port has an active link */ | 
|  | 266 |  | 
|  | 267 | /* PHY power down modes */ | 
|  | 268 | #define PHY_PM_OPERATIONAL_MODE		0	/* PHY operational mode */ | 
|  | 269 | #define PHY_PM_DEEP_SLEEP			1	/* coma mode --> minimal power */ | 
|  | 270 | #define PHY_PM_IEEE_POWER_DOWN		2	/* IEEE 22.2.4.1.5 compl. power down */ | 
|  | 271 | #define PHY_PM_ENERGY_DETECT		3	/* energy detect */ | 
|  | 272 | #define PHY_PM_ENERGY_DETECT_PLUS	4	/* energy detect plus */ | 
|  | 273 |  | 
|  | 274 | /* Default receive frame limit for Workaround of XMAC Errata */ | 
|  | 275 | #define SK_DEF_RX_WA_LIM	SK_CONSTU64(100) | 
|  | 276 |  | 
|  | 277 | /* values for GILedBlinkCtrl (LED Blink Control) */ | 
|  | 278 | #define SK_ACT_LED_BLINK	(1<<0)	/* Active LED blinking */ | 
|  | 279 | #define SK_DUP_LED_NORMAL	(1<<1)	/* Duplex LED normal */ | 
|  | 280 | #define SK_LED_LINK100_ON	(1<<2)	/* Link 100M LED on */ | 
|  | 281 |  | 
|  | 282 | /* Link Partner Status */ | 
|  | 283 | #define SK_LIPA_UNKNOWN	0	/* Link partner is in unknown state */ | 
|  | 284 | #define SK_LIPA_MANUAL	1	/* Link partner is in detected manual state */ | 
|  | 285 | #define SK_LIPA_AUTO	2	/* Link partner is in auto-negotiation state */ | 
|  | 286 |  | 
|  | 287 | /* Maximum Restarts before restart is ignored (3Com WA) */ | 
|  | 288 | #define SK_MAX_LRESTART	3	/* Max. 3 times the link is restarted */ | 
|  | 289 |  | 
|  | 290 | /* Max. Auto-neg. timeouts before link detection in sense mode is reset */ | 
|  | 291 | #define SK_MAX_ANEG_TO	10	/* Max. 10 times the sense mode is reset */ | 
|  | 292 |  | 
|  | 293 | /* structures *****************************************************************/ | 
|  | 294 |  | 
|  | 295 | /* | 
|  | 296 | * MAC specific functions | 
|  | 297 | */ | 
|  | 298 | typedef struct s_GeMacFunc { | 
|  | 299 | int  (*pFnMacUpdateStats)(SK_AC *pAC, SK_IOC IoC, unsigned int Port); | 
|  | 300 | int  (*pFnMacStatistic)(SK_AC *pAC, SK_IOC IoC, unsigned int Port, | 
|  | 301 | SK_U16 StatAddr, SK_U32 SK_FAR *pVal); | 
|  | 302 | int  (*pFnMacResetCounter)(SK_AC *pAC, SK_IOC IoC, unsigned int Port); | 
|  | 303 | int  (*pFnMacOverflow)(SK_AC *pAC, SK_IOC IoC, unsigned int Port, | 
|  | 304 | SK_U16 IStatus, SK_U64 SK_FAR *pVal); | 
|  | 305 | } SK_GEMACFUNC; | 
|  | 306 |  | 
|  | 307 | /* | 
|  | 308 | * Port Structure | 
|  | 309 | */ | 
|  | 310 | typedef	struct s_GePort { | 
|  | 311 | #ifndef SK_DIAG | 
|  | 312 | SK_TIMER	PWaTimer;	/* Workaround Timer */ | 
|  | 313 | SK_TIMER	HalfDupChkTimer; | 
|  | 314 | #endif /* SK_DIAG */ | 
|  | 315 | SK_U32	PPrevShorts;	/* Previous Short Counter checking */ | 
|  | 316 | SK_U32	PPrevFcs;		/* Previous FCS Error Counter checking */ | 
|  | 317 | SK_U64	PPrevRx;		/* Previous RxOk Counter checking */ | 
|  | 318 | SK_U64	PRxLim;			/* Previous RxOk Counter checking */ | 
|  | 319 | SK_U64	LastOctets;		/* For half duplex hang check */ | 
|  | 320 | int		PLinkResCt;		/* Link Restart Counter */ | 
|  | 321 | int		PAutoNegTimeOut;/* Auto-negotiation timeout current value */ | 
|  | 322 | int		PAutoNegTOCt;	/* Auto-negotiation Timeout Counter */ | 
|  | 323 | int		PRxQSize;		/* Port Rx Queue Size in kB */ | 
|  | 324 | int		PXSQSize;		/* Port Synchronous  Transmit Queue Size in kB */ | 
|  | 325 | int		PXAQSize;		/* Port Asynchronous Transmit Queue Size in kB */ | 
|  | 326 | SK_U32	PRxQRamStart;	/* Receive Queue RAM Buffer Start Address */ | 
|  | 327 | SK_U32	PRxQRamEnd;		/* Receive Queue RAM Buffer End Address */ | 
|  | 328 | SK_U32	PXsQRamStart;	/* Sync Tx Queue RAM Buffer Start Address */ | 
|  | 329 | SK_U32	PXsQRamEnd;		/* Sync Tx Queue RAM Buffer End Address */ | 
|  | 330 | SK_U32	PXaQRamStart;	/* Async Tx Queue RAM Buffer Start Address */ | 
|  | 331 | SK_U32	PXaQRamEnd;		/* Async Tx Queue RAM Buffer End Address */ | 
|  | 332 | SK_U32	PRxOverCnt;		/* Receive Overflow Counter */ | 
|  | 333 | int		PRxQOff;		/* Rx Queue Address Offset */ | 
|  | 334 | int		PXsQOff;		/* Synchronous Tx Queue Address Offset */ | 
|  | 335 | int		PXaQOff;		/* Asynchronous Tx Queue Address Offset */ | 
|  | 336 | int		PhyType;		/* PHY used on this port */ | 
|  | 337 | int		PState;			/* Port status (reset, stop, init, run) */ | 
|  | 338 | SK_U16	PhyId1;			/* PHY Id1 on this port */ | 
|  | 339 | SK_U16	PhyAddr;		/* MDIO/MDC PHY address */ | 
|  | 340 | SK_U16	PIsave;			/* Saved Interrupt status word */ | 
|  | 341 | SK_U16	PSsave;			/* Saved PHY status word */ | 
|  | 342 | SK_U16	PGmANegAdv;		/* Saved GPhy AutoNegAdvertisment register */ | 
|  | 343 | SK_BOOL	PHWLinkUp;		/* The hardware Link is up (wiring) */ | 
|  | 344 | SK_BOOL	PLinkBroken;	/* Is Link broken ? */ | 
|  | 345 | SK_BOOL	PCheckPar;		/* Do we check for parity errors ? */ | 
|  | 346 | SK_BOOL	HalfDupTimerActive; | 
|  | 347 | SK_U8	PLinkCap;		/* Link Capabilities */ | 
|  | 348 | SK_U8	PLinkModeConf;	/* Link Mode configured */ | 
|  | 349 | SK_U8	PLinkMode;		/* Link Mode currently used */ | 
|  | 350 | SK_U8	PLinkModeStatus;/* Link Mode Status */ | 
|  | 351 | SK_U8	PLinkSpeedCap;	/* Link Speed Capabilities(10/100/1000 Mbps) */ | 
|  | 352 | SK_U8	PLinkSpeed;		/* configured Link Speed (10/100/1000 Mbps) */ | 
|  | 353 | SK_U8	PLinkSpeedUsed;	/* current Link Speed (10/100/1000 Mbps) */ | 
|  | 354 | SK_U8	PFlowCtrlCap;	/* Flow Control Capabilities */ | 
|  | 355 | SK_U8	PFlowCtrlMode;	/* Flow Control Mode */ | 
|  | 356 | SK_U8	PFlowCtrlStatus;/* Flow Control Status */ | 
|  | 357 | SK_U8	PMSCap;			/* Master/Slave Capabilities */ | 
|  | 358 | SK_U8	PMSMode;		/* Master/Slave Mode */ | 
|  | 359 | SK_U8	PMSStatus;		/* Master/Slave Status */ | 
|  | 360 | SK_BOOL	PAutoNegFail;	/* Auto-negotiation fail flag */ | 
|  | 361 | SK_U8	PLipaAutoNeg;	/* Auto-negotiation possible with Link Partner */ | 
|  | 362 | SK_U8	PCableLen;		/* Cable Length */ | 
|  | 363 | SK_U8	PMdiPairLen[4];	/* MDI[0..3] Pair Length */ | 
|  | 364 | SK_U8	PMdiPairSts[4];	/* MDI[0..3] Pair Diagnostic Status */ | 
|  | 365 | SK_U8	PPhyPowerState;	/* PHY current power state */ | 
|  | 366 | int		PMacColThres;	/* MAC Collision Threshold */ | 
|  | 367 | int		PMacJamLen;		/* MAC Jam length */ | 
|  | 368 | int		PMacJamIpgVal;	/* MAC Jam IPG */ | 
|  | 369 | int		PMacJamIpgData;	/* MAC IPG Jam to Data */ | 
|  | 370 | int		PMacIpgData;	/* MAC Data IPG */ | 
|  | 371 | SK_BOOL PMacLimit4;		/* reset collision counter and backoff algorithm */ | 
|  | 372 | } SK_GEPORT; | 
|  | 373 |  | 
|  | 374 | /* | 
|  | 375 | * Gigabit Ethernet Initialization Struct | 
|  | 376 | * (has to be included in the adapter context) | 
|  | 377 | */ | 
|  | 378 | typedef	struct s_GeInit { | 
|  | 379 | int			GIChipId;		/* Chip Identification Number */ | 
|  | 380 | int			GIChipRev;		/* Chip Revision Number */ | 
|  | 381 | SK_U8		GIPciHwRev;		/* PCI HW Revision Number */ | 
|  | 382 | SK_BOOL		GIGenesis;		/* Genesis adapter ? */ | 
|  | 383 | SK_BOOL		GIYukon;		/* YUKON-A1/Bx chip */ | 
|  | 384 | SK_BOOL		GIYukonLite;	/* YUKON-Lite chip */ | 
|  | 385 | SK_BOOL		GICopperType;	/* Copper Type adapter ? */ | 
|  | 386 | SK_BOOL		GIPciSlot64;	/* 64-bit PCI Slot */ | 
|  | 387 | SK_BOOL		GIPciClock66;	/* 66 MHz PCI Clock */ | 
|  | 388 | SK_BOOL		GIVauxAvail;	/* VAUX available (YUKON) */ | 
|  | 389 | SK_BOOL		GIYukon32Bit;	/* 32-Bit YUKON adapter */ | 
|  | 390 | SK_U16		GILedBlinkCtrl;	/* LED Blink Control */ | 
|  | 391 | int			GIMacsFound;	/* Number of MACs found on this adapter */ | 
|  | 392 | int			GIMacType;		/* MAC Type used on this adapter */ | 
|  | 393 | int			GIHstClkFact;	/* Host Clock Factor (62.5 / HstClk * 100) */ | 
|  | 394 | int			GIPortUsage;	/* Driver Port Usage */ | 
|  | 395 | int			GILevel;		/* Initialization Level completed */ | 
|  | 396 | int			GIRamSize;		/* The RAM size of the adapter in kB */ | 
|  | 397 | int			GIWolOffs;		/* WOL Register Offset (HW-Bug in Rev. A) */ | 
|  | 398 | SK_U32		GIRamOffs;		/* RAM Address Offset for addr calculation */ | 
|  | 399 | SK_U32		GIPollTimerVal;	/* Descr. Poll Timer Init Val (HstClk ticks) */ | 
|  | 400 | SK_U32		GIValIrqMask;	/* Value for Interrupt Mask */ | 
|  | 401 | SK_U32		GITimeStampCnt;	/* Time Stamp High Counter (YUKON only) */ | 
|  | 402 | SK_GEPORT	GP[SK_MAX_MACS];/* Port Dependent Information */ | 
|  | 403 | SK_GEMACFUNC GIFunc;		/* MAC depedent functions */ | 
|  | 404 | } SK_GEINIT; | 
|  | 405 |  | 
|  | 406 | /* | 
|  | 407 | * Error numbers and messages for skxmac2.c and skgeinit.c | 
|  | 408 | */ | 
|  | 409 | #define SKERR_HWI_E001		(SK_ERRBASE_HWINIT) | 
|  | 410 | #define SKERR_HWI_E001MSG	"SkXmClrExactAddr() has got illegal parameters" | 
|  | 411 | #define SKERR_HWI_E002		(SKERR_HWI_E001+1) | 
|  | 412 | #define SKERR_HWI_E002MSG	"SkGeInit(): Level 1 call missing" | 
|  | 413 | #define SKERR_HWI_E003		(SKERR_HWI_E002+1) | 
|  | 414 | #define SKERR_HWI_E003MSG	"SkGeInit() called with illegal init Level" | 
|  | 415 | #define SKERR_HWI_E004		(SKERR_HWI_E003+1) | 
|  | 416 | #define SKERR_HWI_E004MSG	"SkGeInitPort(): Queue Size illegal configured" | 
|  | 417 | #define SKERR_HWI_E005		(SKERR_HWI_E004+1) | 
|  | 418 | #define SKERR_HWI_E005MSG	"SkGeInitPort(): cannot init running ports" | 
|  | 419 | #define SKERR_HWI_E006		(SKERR_HWI_E005+1) | 
|  | 420 | #define SKERR_HWI_E006MSG	"SkGeMacInit(): PState does not match HW state" | 
|  | 421 | #define SKERR_HWI_E007		(SKERR_HWI_E006+1) | 
|  | 422 | #define SKERR_HWI_E007MSG	"SkXmInitDupMd() called with invalid Dup Mode" | 
|  | 423 | #define SKERR_HWI_E008		(SKERR_HWI_E007+1) | 
|  | 424 | #define SKERR_HWI_E008MSG	"SkXmSetRxCmd() called with invalid Mode" | 
|  | 425 | #define SKERR_HWI_E009		(SKERR_HWI_E008+1) | 
|  | 426 | #define SKERR_HWI_E009MSG	"SkGeCfgSync() called although PXSQSize zero" | 
|  | 427 | #define SKERR_HWI_E010		(SKERR_HWI_E009+1) | 
|  | 428 | #define SKERR_HWI_E010MSG	"SkGeCfgSync() called with invalid parameters" | 
|  | 429 | #define SKERR_HWI_E011		(SKERR_HWI_E010+1) | 
|  | 430 | #define SKERR_HWI_E011MSG	"SkGeInitPort(): Receive Queue Size too small" | 
|  | 431 | #define SKERR_HWI_E012		(SKERR_HWI_E011+1) | 
|  | 432 | #define SKERR_HWI_E012MSG	"SkGeInitPort(): invalid Queue Size specified" | 
|  | 433 | #define SKERR_HWI_E013		(SKERR_HWI_E012+1) | 
|  | 434 | #define SKERR_HWI_E013MSG	"SkGeInitPort(): cfg changed for running queue" | 
|  | 435 | #define SKERR_HWI_E014		(SKERR_HWI_E013+1) | 
|  | 436 | #define SKERR_HWI_E014MSG	"SkGeInitPort(): unknown GIPortUsage specified" | 
|  | 437 | #define SKERR_HWI_E015		(SKERR_HWI_E014+1) | 
|  | 438 | #define SKERR_HWI_E015MSG	"Illegal Link mode parameter" | 
|  | 439 | #define SKERR_HWI_E016		(SKERR_HWI_E015+1) | 
|  | 440 | #define SKERR_HWI_E016MSG	"Illegal Flow control mode parameter" | 
|  | 441 | #define SKERR_HWI_E017		(SKERR_HWI_E016+1) | 
|  | 442 | #define SKERR_HWI_E017MSG	"Illegal value specified for GIPollTimerVal" | 
|  | 443 | #define SKERR_HWI_E018		(SKERR_HWI_E017+1) | 
|  | 444 | #define SKERR_HWI_E018MSG	"FATAL: SkGeStopPort() does not terminate (Tx)" | 
|  | 445 | #define SKERR_HWI_E019		(SKERR_HWI_E018+1) | 
|  | 446 | #define SKERR_HWI_E019MSG	"Illegal Speed parameter" | 
|  | 447 | #define SKERR_HWI_E020		(SKERR_HWI_E019+1) | 
|  | 448 | #define SKERR_HWI_E020MSG	"Illegal Master/Slave parameter" | 
|  | 449 | #define SKERR_HWI_E021		(SKERR_HWI_E020+1) | 
|  | 450 | #define	SKERR_HWI_E021MSG	"MacUpdateStats(): cannot update statistic counter" | 
|  | 451 | #define	SKERR_HWI_E022		(SKERR_HWI_E021+1) | 
|  | 452 | #define	SKERR_HWI_E022MSG	"MacStatistic(): illegal statistic base address" | 
|  | 453 | #define SKERR_HWI_E023		(SKERR_HWI_E022+1) | 
|  | 454 | #define SKERR_HWI_E023MSG	"SkGeInitPort(): Transmit Queue Size too small" | 
|  | 455 | #define SKERR_HWI_E024		(SKERR_HWI_E023+1) | 
|  | 456 | #define SKERR_HWI_E024MSG	"FATAL: SkGeStopPort() does not terminate (Rx)" | 
|  | 457 | #define SKERR_HWI_E025		(SKERR_HWI_E024+1) | 
|  | 458 | #define SKERR_HWI_E025MSG	"" | 
|  | 459 |  | 
|  | 460 | /* function prototypes ********************************************************/ | 
|  | 461 |  | 
|  | 462 | #ifndef	SK_KR_PROTO | 
|  | 463 |  | 
|  | 464 | /* | 
|  | 465 | * public functions in skgeinit.c | 
|  | 466 | */ | 
|  | 467 | extern void	SkGePollRxD( | 
|  | 468 | SK_AC	*pAC, | 
|  | 469 | SK_IOC	IoC, | 
|  | 470 | int		Port, | 
|  | 471 | SK_BOOL	PollRxD); | 
|  | 472 |  | 
|  | 473 | extern void	SkGePollTxD( | 
|  | 474 | SK_AC	*pAC, | 
|  | 475 | SK_IOC	IoC, | 
|  | 476 | int		Port, | 
|  | 477 | SK_BOOL PollTxD); | 
|  | 478 |  | 
|  | 479 | extern void	SkGeYellowLED( | 
|  | 480 | SK_AC	*pAC, | 
|  | 481 | SK_IOC	IoC, | 
|  | 482 | int		State); | 
|  | 483 |  | 
|  | 484 | extern int	SkGeCfgSync( | 
|  | 485 | SK_AC	*pAC, | 
|  | 486 | SK_IOC	IoC, | 
|  | 487 | int		Port, | 
|  | 488 | SK_U32	IntTime, | 
|  | 489 | SK_U32	LimCount, | 
|  | 490 | int		SyncMode); | 
|  | 491 |  | 
|  | 492 | extern void	SkGeLoadLnkSyncCnt( | 
|  | 493 | SK_AC	*pAC, | 
|  | 494 | SK_IOC	IoC, | 
|  | 495 | int		Port, | 
|  | 496 | SK_U32	CntVal); | 
|  | 497 |  | 
|  | 498 | extern void	SkGeStopPort( | 
|  | 499 | SK_AC	*pAC, | 
|  | 500 | SK_IOC	IoC, | 
|  | 501 | int		Port, | 
|  | 502 | int		Dir, | 
|  | 503 | int		RstMode); | 
|  | 504 |  | 
|  | 505 | extern int	SkGeInit( | 
|  | 506 | SK_AC	*pAC, | 
|  | 507 | SK_IOC	IoC, | 
|  | 508 | int		Level); | 
|  | 509 |  | 
|  | 510 | extern void	SkGeDeInit( | 
|  | 511 | SK_AC	*pAC, | 
|  | 512 | SK_IOC	IoC); | 
|  | 513 |  | 
|  | 514 | extern int	SkGeInitPort( | 
|  | 515 | SK_AC	*pAC, | 
|  | 516 | SK_IOC	IoC, | 
|  | 517 | int		Port); | 
|  | 518 |  | 
|  | 519 | extern void	SkGeXmitLED( | 
|  | 520 | SK_AC	*pAC, | 
|  | 521 | SK_IOC	IoC, | 
|  | 522 | int		Led, | 
|  | 523 | int		Mode); | 
|  | 524 |  | 
|  | 525 | extern void	SkGeInitRamIface( | 
|  | 526 | SK_AC	*pAC, | 
|  | 527 | SK_IOC	IoC); | 
|  | 528 |  | 
|  | 529 | extern int	SkGeInitAssignRamToQueues( | 
|  | 530 | SK_AC	*pAC, | 
|  | 531 | int		ActivePort, | 
|  | 532 | SK_BOOL	DualNet); | 
|  | 533 |  | 
|  | 534 | /* | 
|  | 535 | * public functions in skxmac2.c | 
|  | 536 | */ | 
|  | 537 | extern void SkMacRxTxDisable( | 
|  | 538 | SK_AC	*pAC, | 
|  | 539 | SK_IOC	IoC, | 
|  | 540 | int		Port); | 
|  | 541 |  | 
|  | 542 | extern void	SkMacSoftRst( | 
|  | 543 | SK_AC	*pAC, | 
|  | 544 | SK_IOC	IoC, | 
|  | 545 | int		Port); | 
|  | 546 |  | 
|  | 547 | extern void	SkMacHardRst( | 
|  | 548 | SK_AC	*pAC, | 
|  | 549 | SK_IOC	IoC, | 
|  | 550 | int		Port); | 
|  | 551 |  | 
|  | 552 | extern void	SkMacClearRst( | 
|  | 553 | SK_AC	*pAC, | 
|  | 554 | SK_IOC	IoC, | 
|  | 555 | int		Port); | 
|  | 556 |  | 
|  | 557 | extern void	SkXmInitMac( | 
|  | 558 | SK_AC	*pAC, | 
|  | 559 | SK_IOC	IoC, | 
|  | 560 | int		Port); | 
|  | 561 |  | 
|  | 562 | extern void	SkGmInitMac( | 
|  | 563 | SK_AC	*pAC, | 
|  | 564 | SK_IOC	IoC, | 
|  | 565 | int		Port); | 
|  | 566 |  | 
|  | 567 | extern void SkMacInitPhy( | 
|  | 568 | SK_AC	*pAC, | 
|  | 569 | SK_IOC	IoC, | 
|  | 570 | int		Port, | 
|  | 571 | SK_BOOL	DoLoop); | 
|  | 572 |  | 
|  | 573 | extern void SkMacIrqDisable( | 
|  | 574 | SK_AC	*pAC, | 
|  | 575 | SK_IOC	IoC, | 
|  | 576 | int		Port); | 
|  | 577 |  | 
|  | 578 | extern void	SkMacFlushTxFifo( | 
|  | 579 | SK_AC	*pAC, | 
|  | 580 | SK_IOC	IoC, | 
|  | 581 | int		Port); | 
|  | 582 |  | 
|  | 583 | extern void	SkMacFlushRxFifo( | 
|  | 584 | SK_AC	*pAC, | 
|  | 585 | SK_IOC	IoC, | 
|  | 586 | int		Port); | 
|  | 587 |  | 
|  | 588 | extern void	SkMacIrq( | 
|  | 589 | SK_AC	*pAC, | 
|  | 590 | SK_IOC	IoC, | 
|  | 591 | int		Port); | 
|  | 592 |  | 
|  | 593 | extern int	SkMacAutoNegDone( | 
|  | 594 | SK_AC	*pAC, | 
|  | 595 | SK_IOC	IoC, | 
|  | 596 | int		Port); | 
|  | 597 |  | 
|  | 598 | extern void	SkMacAutoNegLipaPhy( | 
|  | 599 | SK_AC	*pAC, | 
|  | 600 | SK_IOC	IoC, | 
|  | 601 | int		Port, | 
|  | 602 | SK_U16	IStatus); | 
|  | 603 |  | 
|  | 604 | extern void  SkMacSetRxTxEn( | 
|  | 605 | SK_AC	*pAC, | 
|  | 606 | SK_IOC	IoC, | 
|  | 607 | int		Port, | 
|  | 608 | int		Para); | 
|  | 609 |  | 
|  | 610 | extern int  SkMacRxTxEnable( | 
|  | 611 | SK_AC	*pAC, | 
|  | 612 | SK_IOC	IoC, | 
|  | 613 | int		Port); | 
|  | 614 |  | 
|  | 615 | extern void	SkMacPromiscMode( | 
|  | 616 | SK_AC	*pAC, | 
|  | 617 | SK_IOC	IoC, | 
|  | 618 | int		Port, | 
|  | 619 | SK_BOOL	Enable); | 
|  | 620 |  | 
|  | 621 | extern void	SkMacHashing( | 
|  | 622 | SK_AC	*pAC, | 
|  | 623 | SK_IOC	IoC, | 
|  | 624 | int		Port, | 
|  | 625 | SK_BOOL	Enable); | 
|  | 626 |  | 
|  | 627 | extern void	SkXmPhyRead( | 
|  | 628 | SK_AC	*pAC, | 
|  | 629 | SK_IOC	IoC, | 
|  | 630 | int		Port, | 
|  | 631 | int		Addr, | 
|  | 632 | SK_U16	SK_FAR *pVal); | 
|  | 633 |  | 
|  | 634 | extern void	SkXmPhyWrite( | 
|  | 635 | SK_AC	*pAC, | 
|  | 636 | SK_IOC	IoC, | 
|  | 637 | int		Port, | 
|  | 638 | int		Addr, | 
|  | 639 | SK_U16	Val); | 
|  | 640 |  | 
|  | 641 | extern void	SkGmPhyRead( | 
|  | 642 | SK_AC	*pAC, | 
|  | 643 | SK_IOC	IoC, | 
|  | 644 | int		Port, | 
|  | 645 | int		Addr, | 
|  | 646 | SK_U16	SK_FAR *pVal); | 
|  | 647 |  | 
|  | 648 | extern void	SkGmPhyWrite( | 
|  | 649 | SK_AC	*pAC, | 
|  | 650 | SK_IOC	IoC, | 
|  | 651 | int		Port, | 
|  | 652 | int		Addr, | 
|  | 653 | SK_U16	Val); | 
|  | 654 |  | 
|  | 655 | extern void	SkXmClrExactAddr( | 
|  | 656 | SK_AC	*pAC, | 
|  | 657 | SK_IOC	IoC, | 
|  | 658 | int		Port, | 
|  | 659 | int		StartNum, | 
|  | 660 | int		StopNum); | 
|  | 661 |  | 
|  | 662 | extern void	SkXmInitDupMd( | 
|  | 663 | SK_AC	*pAC, | 
|  | 664 | SK_IOC	IoC, | 
|  | 665 | int		Port); | 
|  | 666 |  | 
|  | 667 | extern void	SkXmInitPauseMd( | 
|  | 668 | SK_AC	*pAC, | 
|  | 669 | SK_IOC	IoC, | 
|  | 670 | int		Port); | 
|  | 671 |  | 
|  | 672 | extern void	SkXmAutoNegLipaXmac( | 
|  | 673 | SK_AC	*pAC, | 
|  | 674 | SK_IOC	IoC, | 
|  | 675 | int		Port, | 
|  | 676 | SK_U16	IStatus); | 
|  | 677 |  | 
|  | 678 | extern int SkXmUpdateStats( | 
|  | 679 | SK_AC	*pAC, | 
|  | 680 | SK_IOC	IoC, | 
|  | 681 | unsigned int Port); | 
|  | 682 |  | 
|  | 683 | extern int SkGmUpdateStats( | 
|  | 684 | SK_AC	*pAC, | 
|  | 685 | SK_IOC	IoC, | 
|  | 686 | unsigned int Port); | 
|  | 687 |  | 
|  | 688 | extern int SkXmMacStatistic( | 
|  | 689 | SK_AC	*pAC, | 
|  | 690 | SK_IOC	IoC, | 
|  | 691 | unsigned int Port, | 
|  | 692 | SK_U16	StatAddr, | 
|  | 693 | SK_U32	SK_FAR *pVal); | 
|  | 694 |  | 
|  | 695 | extern int SkGmMacStatistic( | 
|  | 696 | SK_AC	*pAC, | 
|  | 697 | SK_IOC	IoC, | 
|  | 698 | unsigned int Port, | 
|  | 699 | SK_U16	StatAddr, | 
|  | 700 | SK_U32	SK_FAR *pVal); | 
|  | 701 |  | 
|  | 702 | extern int SkXmResetCounter( | 
|  | 703 | SK_AC	*pAC, | 
|  | 704 | SK_IOC	IoC, | 
|  | 705 | unsigned int Port); | 
|  | 706 |  | 
|  | 707 | extern int SkGmResetCounter( | 
|  | 708 | SK_AC	*pAC, | 
|  | 709 | SK_IOC	IoC, | 
|  | 710 | unsigned int Port); | 
|  | 711 |  | 
|  | 712 | extern int SkXmOverflowStatus( | 
|  | 713 | SK_AC	*pAC, | 
|  | 714 | SK_IOC	IoC, | 
|  | 715 | unsigned int Port, | 
|  | 716 | SK_U16  IStatus, | 
|  | 717 | SK_U64	SK_FAR *pStatus); | 
|  | 718 |  | 
|  | 719 | extern int SkGmOverflowStatus( | 
|  | 720 | SK_AC	*pAC, | 
|  | 721 | SK_IOC	IoC, | 
|  | 722 | unsigned int Port, | 
|  | 723 | SK_U16	MacStatus, | 
|  | 724 | SK_U64	SK_FAR *pStatus); | 
|  | 725 |  | 
|  | 726 | extern int SkGmCableDiagStatus( | 
|  | 727 | SK_AC	*pAC, | 
|  | 728 | SK_IOC	IoC, | 
|  | 729 | int		Port, | 
|  | 730 | SK_BOOL	StartTest); | 
|  | 731 |  | 
|  | 732 | extern int SkGmEnterLowPowerMode( | 
|  | 733 | SK_AC	*pAC, | 
|  | 734 | SK_IOC	IoC, | 
|  | 735 | int		Port, | 
|  | 736 | SK_U8	Mode); | 
|  | 737 |  | 
|  | 738 | extern int SkGmLeaveLowPowerMode( | 
|  | 739 | SK_AC	*pAC, | 
|  | 740 | SK_IOC	IoC, | 
|  | 741 | int		Port); | 
|  | 742 |  | 
|  | 743 | #ifdef SK_DIAG | 
|  | 744 | extern void	SkGePhyRead( | 
|  | 745 | SK_AC	*pAC, | 
|  | 746 | SK_IOC	IoC, | 
|  | 747 | int		Port, | 
|  | 748 | int		Addr, | 
|  | 749 | SK_U16	*pVal); | 
|  | 750 |  | 
|  | 751 | extern void	SkGePhyWrite( | 
|  | 752 | SK_AC	*pAC, | 
|  | 753 | SK_IOC	IoC, | 
|  | 754 | int		Port, | 
|  | 755 | int		Addr, | 
|  | 756 | SK_U16	Val); | 
|  | 757 |  | 
|  | 758 | extern void	SkMacSetRxCmd( | 
|  | 759 | SK_AC	*pAC, | 
|  | 760 | SK_IOC	IoC, | 
|  | 761 | int		Port, | 
|  | 762 | int		Mode); | 
|  | 763 | extern void	SkMacCrcGener( | 
|  | 764 | SK_AC	*pAC, | 
|  | 765 | SK_IOC	IoC, | 
|  | 766 | int		Port, | 
|  | 767 | SK_BOOL	Enable); | 
|  | 768 | extern void	SkMacTimeStamp( | 
|  | 769 | SK_AC	*pAC, | 
|  | 770 | SK_IOC	IoC, | 
|  | 771 | int		Port, | 
|  | 772 | SK_BOOL	Enable); | 
|  | 773 | extern void	SkXmSendCont( | 
|  | 774 | SK_AC	*pAC, | 
|  | 775 | SK_IOC	IoC, | 
|  | 776 | int		Port, | 
|  | 777 | SK_BOOL	Enable); | 
|  | 778 | #endif /* SK_DIAG */ | 
|  | 779 |  | 
|  | 780 | #else	/* SK_KR_PROTO */ | 
|  | 781 |  | 
|  | 782 | /* | 
|  | 783 | * public functions in skgeinit.c | 
|  | 784 | */ | 
|  | 785 | extern void	SkGePollRxD(); | 
|  | 786 | extern void	SkGePollTxD(); | 
|  | 787 | extern void	SkGeYellowLED(); | 
|  | 788 | extern int	SkGeCfgSync(); | 
|  | 789 | extern void	SkGeLoadLnkSyncCnt(); | 
|  | 790 | extern void	SkGeStopPort(); | 
|  | 791 | extern int	SkGeInit(); | 
|  | 792 | extern void	SkGeDeInit(); | 
|  | 793 | extern int	SkGeInitPort(); | 
|  | 794 | extern void	SkGeXmitLED(); | 
|  | 795 | extern void	SkGeInitRamIface(); | 
|  | 796 | extern int	SkGeInitAssignRamToQueues(); | 
|  | 797 |  | 
|  | 798 | /* | 
|  | 799 | * public functions in skxmac2.c | 
|  | 800 | */ | 
|  | 801 | extern void SkMacRxTxDisable(); | 
|  | 802 | extern void	SkMacSoftRst(); | 
|  | 803 | extern void	SkMacHardRst(); | 
|  | 804 | extern void	SkMacClearRst(); | 
|  | 805 | extern void SkMacInitPhy(); | 
|  | 806 | extern int  SkMacRxTxEnable(); | 
|  | 807 | extern void SkMacPromiscMode(); | 
|  | 808 | extern void SkMacHashing(); | 
|  | 809 | extern void SkMacIrqDisable(); | 
|  | 810 | extern void	SkMacFlushTxFifo(); | 
|  | 811 | extern void	SkMacFlushRxFifo(); | 
|  | 812 | extern void	SkMacIrq(); | 
|  | 813 | extern int	SkMacAutoNegDone(); | 
|  | 814 | extern void	SkMacAutoNegLipaPhy(); | 
|  | 815 | extern void SkMacSetRxTxEn(); | 
|  | 816 | extern void	SkXmInitMac(); | 
|  | 817 | extern void	SkXmPhyRead(); | 
|  | 818 | extern void	SkXmPhyWrite(); | 
|  | 819 | extern void	SkGmInitMac(); | 
|  | 820 | extern void	SkGmPhyRead(); | 
|  | 821 | extern void	SkGmPhyWrite(); | 
|  | 822 | extern void	SkXmClrExactAddr(); | 
|  | 823 | extern void	SkXmInitDupMd(); | 
|  | 824 | extern void	SkXmInitPauseMd(); | 
|  | 825 | extern void	SkXmAutoNegLipaXmac(); | 
|  | 826 | extern int	SkXmUpdateStats(); | 
|  | 827 | extern int	SkGmUpdateStats(); | 
|  | 828 | extern int	SkXmMacStatistic(); | 
|  | 829 | extern int	SkGmMacStatistic(); | 
|  | 830 | extern int	SkXmResetCounter(); | 
|  | 831 | extern int	SkGmResetCounter(); | 
|  | 832 | extern int	SkXmOverflowStatus(); | 
|  | 833 | extern int	SkGmOverflowStatus(); | 
|  | 834 | extern int	SkGmCableDiagStatus(); | 
|  | 835 | extern int	SkGmEnterLowPowerMode(); | 
|  | 836 | extern int	SkGmLeaveLowPowerMode(); | 
|  | 837 |  | 
|  | 838 | #ifdef SK_DIAG | 
|  | 839 | extern void	SkGePhyRead(); | 
|  | 840 | extern void	SkGePhyWrite(); | 
|  | 841 | extern void	SkMacSetRxCmd(); | 
|  | 842 | extern void	SkMacCrcGener(); | 
|  | 843 | extern void	SkMacTimeStamp(); | 
|  | 844 | extern void	SkXmSendCont(); | 
|  | 845 | #endif /* SK_DIAG */ | 
|  | 846 |  | 
|  | 847 | #endif	/* SK_KR_PROTO */ | 
|  | 848 |  | 
|  | 849 | #ifdef __cplusplus | 
|  | 850 | } | 
|  | 851 | #endif	/* __cplusplus */ | 
|  | 852 |  | 
|  | 853 | #endif	/* __INC_SKGEINIT_H_ */ |