/****************************************************************************** * * Name: skgeinit.h * Project: GEnesis, PCI Gigabit Ethernet Adapter * Version: $Revision: 1.51 $ * Date: $Date: 2001/02/09 12:26:38 $ * Purpose: Structures and prototypes for the GE Init Module * ******************************************************************************/ /****************************************************************************** * * (C)Copyright 1998-2001 SysKonnect GmbH. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * The information in this file is provided "AS IS" without warranty. * ******************************************************************************/ /****************************************************************************** * * History: * * $Log: skgeinit.h,v $ * Revision 1.51 2001/02/09 12:26:38 cgoos * Inserted #ifdef DIAG for half duplex workaround timer. * * Revision 1.50 2001/02/07 07:56:40 rassmann * Corrected copyright. * * Revision 1.49 2001/01/31 15:32:18 gklug * fix: problem with autosensing an SR8800 switch * add: counter for autoneg timeouts * * Revision 1.48 2000/11/09 11:30:10 rassmann * WA: Waiting after releasing reset until BCom chip is accessible. * * Revision 1.47 2000/10/18 12:22:40 cgoos * Added workaround for half duplex hangup. * * Revision 1.46 2000/08/10 11:28:00 rassmann * Editorial changes. * Preserving 32-bit alignment in structs for the adapter context. * * Revision 1.45 1999/11/22 13:56:19 cgoos * Changed license header to GPL. * * Revision 1.44 1999/10/26 07:34:15 malthoff * The define SK_LNK_ON has been lost in v1.41. * * Revision 1.43 1999/10/06 09:30:16 cgoos * Changed SK_XM_THR_JUMBO. * * Revision 1.42 1999/09/16 12:58:26 cgoos * Changed SK_LED_STANDY macro to be independent of HW link sync. * * Revision 1.41 1999/07/30 06:56:14 malthoff * Correct comment for SK_MS_STAT_UNSET. * * Revision 1.40 1999/05/27 13:38:46 cgoos * Added SK_BMU_TX_WM. * Made SK_BMU_TX_WM and SK_BMU_RX_WM user-definable. * Changed XMAC Tx treshold to max. values. * * Revision 1.39 1999/05/20 14:35:26 malthoff * Remove prototypes for SkGeLinkLED(). * * Revision 1.38 1999/05/19 11:59:12 cgoos * Added SK_MS_CAP_INDETERMINATED define. * * Revision 1.37 1999/05/19 07:32:33 cgoos * Changes for 1000Base-T. * LED-defines for HWAC_LINK_LED macro. * * Revision 1.36 1999/04/08 14:00:24 gklug * add:Port struct field PLinkResCt * * Revision 1.35 1999/03/25 07:43:07 malthoff * Add error string for SKERR_HWI_E018MSG. * * Revision 1.34 1999/03/12 16:25:57 malthoff * Remove PPollRxD and PPollTxD. * Add SKERR_HWI_E017MSG. and SK_DPOLL_MAX. * * Revision 1.33 1999/03/12 13:34:41 malthoff * Add Autonegotiation error codes. * Change defines for parameter Mode in SkXmSetRxCmd(). * Replace __STDC__ by SK_KR_PROTO. * * Revision 1.32 1999/01/25 14:40:20 mhaveman * Added new return states for the virtual management port if multiple * ports are active but differently configured. * * Revision 1.31 1998/12/11 15:17:02 gklug * add: Link partnet autoneg states : Unknown Manual and Autonegotiation * * Revision 1.30 1998/12/07 12:17:04 gklug * add: Link Partner autonegotiation flag * * Revision 1.29 1998/12/01 10:54:42 gklug * add: variables for XMAC Errata * * Revision 1.28 1998/12/01 10:14:15 gklug * add: PIsave saves the Interrupt status word * * Revision 1.27 1998/11/26 15:24:52 mhaveman * Added link status states SK_LMODE_STAT_AUTOHALF and * SK_LMODE_STAT_AUTOFULL which are used by PNMI. * * Revision 1.26 1998/11/26 14:53:01 gklug * add:autoNeg Timeout variable * * Revision 1.25 1998/11/26 08:58:50 gklug * add: Link Mode configuration (AUTO Sense mode) * * Revision 1.24 1998/11/24 13:30:27 gklug * add: PCheckPar to port struct * * Revision 1.23 1998/11/18 13:23:26 malthoff * Add SK_PKT_TO_MAX. * * Revision 1.22 1998/11/18 13:19:54 gklug * add: PPrevShorts and PLinkBroken to port struct for WA XMAC Errata #C1 * * Revision 1.21 1998/10/26 08:02:57 malthoff * Add GIRamOffs. * * Revision 1.20 1998/10/19 07:28:37 malthoff * Add prototyp for SkGeInitRamIface(). * * Revision 1.19 1998/10/14 14:47:48 malthoff * SK_TIMER should not be defined for Diagnostics. * Add SKERR_HWI_E015MSG and SKERR_HWI_E016MSG. * * Revision 1.18 1998/10/14 14:00:03 gklug * add: timer to port struct for workaround of Errata #2 * * Revision 1.17 1998/10/14 11:23:09 malthoff * Add prototype for SkXmAutoNegDone(). * Fix SkXmSetRxCmd() prototype statement. * * Revision 1.16 1998/10/14 05:42:29 gklug * add: HWLinkUp flag to Port struct * * Revision 1.15 1998/10/09 08:26:33 malthoff * Rename SK_RB_ULPP_B to SK_RB_LLPP_B. * * Revision 1.14 1998/10/09 07:11:13 malthoff * bug fix: SK_FACT_53 is 85 not 117. * Rework time out init values. * Add GIPortUsage and corresponding defines. * Add some error log messages. * * Revision 1.13 1998/10/06 14:13:14 malthoff * Add prototyp for SkGeLoadLnkSyncCnt(). * * Revision 1.12 1998/10/05 11:29:53 malthoff * bug fix: A comment was not closed. * * Revision 1.11 1998/10/05 08:01:59 malthoff * Add default Timeout- Threshold- and * Watermark constants. Add QRam start and end * variables. Also add vars to store the polling * mode and receive command. Add new Error Log * Messages and function prototypes. * * Revision 1.10 1998/09/28 13:34:48 malthoff * Add mode bits for LED functions. * Move Autoneg and Flow Ctrl bits from shgesirq.h * Add the required Error Log Entries * and Function Prototypes. * * Revision 1.9 1998/09/16 14:38:41 malthoff * Rework the SK_LNK_xxx defines. * Add error log message defines. * Add prototypes for skxmac2.c * * Revision 1.8 1998/09/11 05:29:18 gklug * add: init state of a port * * Revision 1.7 1998/09/08 08:35:52 gklug * add: defines of the Init Levels * * Revision 1.6 1998/09/03 13:48:42 gklug * add: Link strati, capabilities to Port struct * * Revision 1.5 1998/09/03 13:30:59 malthoff * Add SK_LNK_BLINK and SK_LNK_PERM. * * Revision 1.4 1998/09/03 09:55:31 malthoff * Add constants for parameters Dir and RstMode * when calling SkGeStopPort(). * Rework the prototyp section. * Add Queue Address offsets PRxQOff, PXsQOff, and PXaQOff. * Remove Ioc with IoC. * * Revision 1.3 1998/08/19 09:11:54 gklug * fix: struct are removed from c-source (see CCC) * add: typedefs for all structs * * Revision 1.2 1998/07/28 12:38:26 malthoff * The prototypes got the parameter 'IoC'. * * Revision 1.1 1998/07/23 09:50:24 malthoff * Created. * * ******************************************************************************/ #ifndef __INC_SKGEINIT_H_ #define __INC_SKGEINIT_H_ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ /* defines ********************************************************************/ /* * defines for modifying Link LED behaviour (has been used with SkGeLinkLED()) */ #define SK_LNK_OFF LED_OFF #define SK_LNK_ON (LED_ON | LED_BLK_OFF| LED_SYNC_OFF) #define SK_LNK_BLINK (LED_ON | LED_BLK_ON | LED_SYNC_ON) #define SK_LNK_PERM (LED_ON | LED_BLK_OFF| LED_SYNC_ON) #define SK_LNK_TST (LED_ON | LED_BLK_ON | LED_SYNC_OFF) /* * defines for parameter 'Mode' when calling SK_HWAC_LINK_LED() */ #define SK_LED_OFF LED_OFF #define SK_LED_ACTIVE (LED_ON | LED_BLK_OFF| LED_SYNC_OFF) #define SK_LED_STANDBY (LED_ON | LED_BLK_ON| LED_SYNC_OFF) /* * defines for parameter 'Mode' when calling SkGeXmitLED() */ #define SK_LED_DIS 0 #define SK_LED_ENA 1 #define SK_LED_TST 2 /* * Counter and Timer constants, for a host clock of 62.5 MHz */ #define SK_XMIT_DUR 0x002faf08L /* 50 ms */ #define SK_BLK_DUR 0x01dcd650L /* 500 ms */ #define SK_DPOLL_DEF 0x00EE6B28L /* 250 ms */ #define SK_DPOLL_MAX 0x00FFFFFFL /* ca. 268ms */ #define SK_FACT_62 100 /* is given in percent */ #define SK_FACT_53 85 /* * Timeout values */ #define SK_MAC_TO_53 72 /* MAC arbiter timeout */ #define SK_PKT_TO_53 0x2000 /* Packet arbiter timeout */ #define SK_PKT_TO_MAX 0xffff /* Maximum value */ #define SK_RI_TO_53 36 /* RAM interface timeout */ /* * RAM Buffer High Pause Threshold values */ #define SK_RB_ULPP ( 8 * 1024) /* Upper Level in kB/8 */ #define SK_RB_LLPP_S (10 * 1024) /* Lower Level for small Queues */ #define SK_RB_LLPP_B (16 * 1024) /* Lower Level for big Queues */ #ifndef SK_BMU_RX_WM #define SK_BMU_RX_WM 0x600 /* BMU Rx Watermark */ #endif #ifndef SK_BMU_TX_WM #define SK_BMU_TX_WM 0x600 /* BMU Rx Watermark */ #endif /* XMAC II Tx Threshold */ #define SK_XM_THR_REDL 0x01fb /* .. for redundant link usage */ #define SK_XM_THR_SL 0x01fb /* .. for single link adapters */ #define SK_XM_THR_MULL 0x01fb /* .. for multiple link usage */ #define SK_XM_THR_JUMBO 0x03fc /* .. for jumbo frame usage */ /* values for GIPortUsage */ #define SK_RED_LINK 1 /* redundant link usage */ #define SK_MUL_LINK 2 /* multiple link usage */ #define SK_JUMBO_LINK 3 /* driver uses jumbo frames */ /* Minimum RAM Buffer Receive Queue Size */ #define SK_MIN_RXQ_SIZE 16 /* 16 kB */ /* * defines for parameter 'Dir' when calling SkGeStopPort() */ #define SK_STOP_TX 1 /* Stops the transmit path, resets the XMAC */ #define SK_STOP_RX 2 /* Stops the receive path */ #define SK_STOP_ALL 3 /* Stops rx and tx path, resets the XMAC */ /* * defines for parameter 'RstMode' when calling SkGeStopPort() */ #define SK_SOFT_RST 1 /* perform a software reset */ #define SK_HARD_RST 2 /* perform a hardware reset */ /* * Define Init Levels */ #define SK_INIT_DATA 0 /* Init level 0: init data structures */ #define SK_INIT_IO 1 /* Init level 1: init with IOs */ #define SK_INIT_RUN 2 /* Init level 2: init for run time */ /* * Set Link Mode Parameter */ #define SK_LMODE_HALF 1 /* Half Duplex Mode */ #define SK_LMODE_FULL 2 /* Full Duplex Mode */ #define SK_LMODE_AUTOHALF 3 /* AutoHalf Duplex Mode */ #define SK_LMODE_AUTOFULL 4 /* AutoFull Duplex Mode */ #define SK_LMODE_AUTOBOTH 5 /* AutoBoth Duplex Mode */ #define SK_LMODE_AUTOSENSE 6 /* configured mode auto sensing */ #define SK_LMODE_INDETERMINATED 7 /* Return value for virtual port if * multiple ports are differently * configured. */ /* * Autonegotiation timeout in 100ms granularity. */ #define SK_AND_MAX_TO 6 /* Wait 600 msec before link comes up */ /* * Define Autonegotiation error codes here */ #define SK_AND_OK 0 /* no error */ #define SK_AND_OTHER 1 /* other error than below */ #define SK_AND_DUP_CAP 2 /* Duplex capabilities error */ /* * Link Capability value */ #define SK_LMODE_CAP_HALF (1<<0) /* Half Duplex Mode */ #define SK_LMODE_CAP_FULL (1<<1) /* Full Duplex Mode */ #define SK_LMODE_CAP_AUTOHALF (1<<2) /* AutoHalf Duplex Mode */ #define SK_LMODE_CAP_AUTOFULL (1<<3) /* AutoFull Duplex Mode */ #define SK_LMODE_CAP_INDETERMINATED (1<<4) /* Return value for virtual port if * multiple ports are differently * configured. */ /* * Link mode current state */ #define SK_LMODE_STAT_UNKNOWN 1 /* Unknown Duplex Mode */ #define SK_LMODE_STAT_HALF 2 /* Half Duplex Mode */ #define SK_LMODE_STAT_FULL 3 /* Full Duplex Mode */ #define SK_LMODE_STAT_AUTOHALF 4 /* Half Duplex Mode obtained by AutoNeg */ #define SK_LMODE_STAT_AUTOFULL 5 /* Half Duplex Mode obtained by AutoNeg */ #define SK_LMODE_STAT_INDETERMINATED 6 /* Return value for virtual port if * multiple ports are differently * configured. */ /* * Set Flow Control Mode Parameter (and capabilities) */ #define SK_FLOW_MODE_NONE 1 /* No Flow Control */ #define SK_FLOW_MODE_LOC_SEND 2 /* Local station sends PAUSE */ #define SK_FLOW_MODE_SYMMETRIC 3 /* Both station may send PAUSE */ #define SK_FLOW_MODE_SYM_OR_REM 4 /* Both station may send PAUSE or * just the remote station may send * PAUSE */ #define SK_FLOW_MODE_INDETERMINATED 5 /* Return value for virtual port if * multiple ports are differently * configured. */ /* * Flow Control Status Parameter */ #define SK_FLOW_STAT_NONE 1 /* No Flow Control */ #define SK_FLOW_STAT_REM_SEND 2 /* Remote Station sends PAUSE */ #define SK_FLOW_STAT_LOC_SEND 3 /* Local station sends PAUSE */ #define SK_FLOW_STAT_SYMMETRIC 4 /* Both station may send PAUSE */ #define SK_FLOW_STAT_INDETERMINATED 5 /* Return value for virtual port if * multiple ports are differently * configured. */ /* * Master/Slave Mode capabilities */ #define SK_MS_CAP_AUTO (1<<0) /* Automatic resolution */ #define SK_MS_CAP_MASTER (1<<1) /* This station is master */ #define SK_MS_CAP_SLAVE (1<<2) /* This station is slave */ #define SK_MS_CAP_INDETERMINATED (1<<3) /* Return value for virtual port if * multiple ports are differently * configured. */ /* * Set Master/Slave Mode Parameter (and capabilities) */ #define SK_MS_MODE_AUTO 1 /* Automatic resolution */ #define SK_MS_MODE_MASTER 2 /* This station is master */ #define SK_MS_MODE_SLAVE 3 /* This station is slave */ #define SK_MS_MODE_INDETERMINATED 4 /* Return value for virtual port if * multiple ports are differently */ /* * Master/Slave Status Parameter */ #define SK_MS_STAT_UNSET 1 /* The MS status is never been determ*/ #define SK_MS_STAT_MASTER 2 /* This station is master */ #define SK_MS_STAT_SLAVE 3 /* This station is slave */ #define SK_MS_STAT_FAULT 4 /* MS resolution failed */ #define SK_MS_STAT_INDETERMINATED 5 /* Return value for virtual port if * multiple ports are differently */ /* * defines for parameter 'Mode' when calling SkXmSetRxCmd() */ #define SK_STRIP_FCS_ON (1<<0) /* Enable FCS stripping of rx frames */ #define SK_STRIP_FCS_OFF (1<<1) /* Disable FCS stripping of rx frames */ #define SK_STRIP_PAD_ON (1<<2) /* Enable pad byte stripping of rx f */ #define SK_STRIP_PAD_OFF (1<<3) /* Disable pad byte stripping of rx f */ #define SK_LENERR_OK_ON (1<<4) /* Don't chk fr for in range len error*/ #define SK_LENERR_OK_OFF (1<<5) /* Check frames for in range len error*/ #define SK_BIG_PK_OK_ON (1<<6) /* Don't set rcvError bit for big fr */ #define SK_BIG_PK_OK_OFF (1<<7) /* Set rcvError bit for big frames */ /* * States of PState */ #define SK_PRT_RESET 0 /* the port is reset */ #define SK_PRT_STOP 1 /* the port is stopped (similar to sw reset) */ #define SK_PRT_INIT 2 /* the port is initialized */ #define SK_PRT_RUN 3 /* the port has an active link */ /* * Default receive frame limit for Workaround of XMAC Errata */ #define SK_DEF_RX_WA_LIM SK_CONSTU64(100) /* * Define link partner Status */ #define SK_LIPA_UNKNOWN 0 /* Link partner is in unknown state */ #define SK_LIPA_MANUAL 1 /* Link partner is in detected manual state */ #define SK_LIPA_AUTO 2 /* Link partner is in autonegotiation state */ /* * Define Maximum Restarts before restart is ignored (3com WA) */ #define SK_MAX_LRESTART 3 /* Max. 3 times the link is restarted */ /* * define max. autonegotiation timeouts before link detection in sense mode is * reset. */ #define SK_MAX_ANEG_TO 10 /* Max. 10 times the sense mode is reset */ /* structures *****************************************************************/ /* * Port Structure */ typedef struct s_GePort { #ifndef SK_DIAG SK_TIMER PWaTimer; /* Workaround Timer */ #endif SK_U64 PPrevShorts; /* Previous short Counter checking */ SK_U64 PPrevRx; /* Previous RxOk Counter checking */ SK_U64 PPrevFcs; /* Previous FCS Error Counter checking */ SK_U64 PRxLim; /* Previous RxOk Counter checking */ SK_U64 LastOctets; /* For half duplex hang check */ #ifndef SK_DIAG SK_TIMER HalfDupChkTimer; #endif int PLinkResCt; /* Link Restart Counter */ int PAutoNegTimeOut;/* AutoNegotiation timeout current value */ int PAutoNegTOCt; /* AutoNeg Timeout Counter */ int PRxQSize; /* Port Rx Queue Size in kB */ int PXSQSize; /* Port Synchronous Transmit Queue Size in kB */ int PXAQSize; /* Port Asynchronous Transmit Queue Size in kB*/ SK_U32 PRxQRamStart; /* Receive Queue RAM Buffer Start Address */ SK_U32 PRxQRamEnd; /* Receive Queue RAM Buffer End Address */ SK_U32 PXsQRamStart; /* Sync Tx Queue RAM Buffer Start Address */ SK_U32 PXsQRamEnd; /* Sync Tx Queue RAM Buffer End Address */ SK_U32 PXaQRamStart; /* Async Tx Queue RAM Buffer Start Address */ SK_U32 PXaQRamEnd; /* Async Tx Queue RAM Buffer End Address */ int PRxQOff; /* Rx Queue Address Offset */ int PXsQOff; /* Synchronous Tx Queue Address Offset */ int PXaQOff; /* Asynchronous Tx Queue Address Offset */ int PhyType; /* PHY used on this port */ SK_U16 PhyAddr; /* MDIO/MDC PHY address */ SK_U16 PRxCmd; /* Port Receive Command Configuration Value */ SK_U16 PIsave; /* Saved Interrupt status word */ SK_U16 PSsave; /* Saved PHY status word */ SK_U16 Align01; SK_BOOL PHWLinkUp; /* The hardware Link is up (wireing) */ SK_BOOL PState; /* Is port initialized ? */ SK_BOOL PLinkBroken; /* Is Link broken ? */ SK_BOOL PCheckPar; /* Do we check for parity errors ? */ SK_BOOL HalfDupTimerActive; SK_U8 PLinkCap; /* Link Capabilities */ SK_U8 PLinkModeConf; /* Link Mode configured */ SK_U8 PLinkMode; /* Link Mode currently used */ SK_U8 PLinkModeStatus;/* Link Mode Status */ SK_U8 PFlowCtrlCap; /* Flow Control Capabilities */ SK_U8 PFlowCtrlMode; /* Flow Control Mode */ SK_U8 PFlowCtrlStatus;/* Flow Control Status */ SK_U8 PMSCap; /* Master/Slave Capabilities */ SK_U8 PMSMode; /* Master/Slave Mode */ SK_U8 PMSStatus; /* Master/Slave Status */ SK_U8 PAutoNegFail; /* Autonegotiation fail flag */ SK_U8 PLipaAutoNeg; /* Autonegotiation possible with Link Partner */ SK_U8 Align02; } SK_GEPORT; /* * Gigabit Ethernet Initalization Struct * (has to be included in the adapter context) */ typedef struct s_GeInit { int GIMacsFound; /* Number of MACs found on this adapter */ int GIPciHwRev; /* PCI HW Revision Number */ SK_U32 GIRamOffs; /* RAM Address Offset for addr calculation */ int GIRamSize; /* The RAM size of the adapter in kB */ int GIHstClkFact; /* Host Clock Factor (62.5 / HstClk * 100) */ int GIPortUsage; /* driver port usage: SK_RED_LINK/SK_MUL_LINK */ SK_U32 GIPollTimerVal; /* Descriptor Poll Timer Init Val in clk ticks*/ int GILevel; /* Initialization Level Completed */ SK_GEPORT GP[SK_MAX_MACS];/* Port Dependent Information */ SK_BOOL GIAnyPortAct; /* Is True if one or more port is initialized */ SK_U8 Align01; SK_U16 Align02; } SK_GEINIT; /* * Define the error numbers and messages for xmac_ii.c and skgeinit.c */ #define SKERR_HWI_E001 (SK_ERRBASE_HWINIT) #define SKERR_HWI_E001MSG "SkXmClrExactAddr() has got illegal parameters" #define SKERR_HWI_E002 (SKERR_HWI_E001+1) #define SKERR_HWI_E002MSG "SkGeInit() Level 1 call missing" #define SKERR_HWI_E003 (SKERR_HWI_E002+1) #define SKERR_HWI_E003MSG "SkGeInit() called with illegal init Level" #define SKERR_HWI_E004 (SKERR_HWI_E003+1) #define SKERR_HWI_E004MSG "SkGeInitPort() Queue size illegal configured" #define SKERR_HWI_E005 (SKERR_HWI_E004+1) #define SKERR_HWI_E005MSG "SkGeInitPort() cannot init running ports" #define SKERR_HWI_E006 (SKERR_HWI_E005+1) #define SKERR_HWI_E006MSG "SkGeXmInit(): PState does not match HW state" #define SKERR_HWI_E007 (SKERR_HWI_E006+1) #define SKERR_HWI_E007MSG "SkXmInitDupMd() called with invalid Dup Mode" #define SKERR_HWI_E008 (SKERR_HWI_E007+1) #define SKERR_HWI_E008MSG "SkXmSetRxCmd() called with invalid Mode" #define SKERR_HWI_E009 (SKERR_HWI_E008+1) #define SKERR_HWI_E009MSG "SkGeCfgSync() called although PXSQSize zero" #define SKERR_HWI_E010 (SKERR_HWI_E009+1) #define SKERR_HWI_E010MSG "SkGeCfgSync() called with invalid parameters" #define SKERR_HWI_E011 (SKERR_HWI_E010+1) #define SKERR_HWI_E011MSG "SkGeInitPort() Receive Queue Size to small" #define SKERR_HWI_E012 (SKERR_HWI_E011+1) #define SKERR_HWI_E012MSG "SkGeInitPort() invalid Queue Size specified" #define SKERR_HWI_E013 (SKERR_HWI_E012+1) #define SKERR_HWI_E013MSG "SkGeInitPort() cfg changed for running queue" #define SKERR_HWI_E014 (SKERR_HWI_E013+1) #define SKERR_HWI_E014MSG "SkGeInitPort() unknown GIPortUsage specified" #define SKERR_HWI_E015 (SKERR_HWI_E014+1) #define SKERR_HWI_E015MSG "Illegal Link mode parameter" #define SKERR_HWI_E016 (SKERR_HWI_E015+1) #define SKERR_HWI_E016MSG "Illegal Flow control mode parameter" #define SKERR_HWI_E017 (SKERR_HWI_E016+1) #define SKERR_HWI_E017MSG "Illegal value specified for GIPollTimerVal" #define SKERR_HWI_E018 (SKERR_HWI_E017+1) #define SKERR_HWI_E018MSG "FATAL: SkGeStopPort() does not terminate" #define SKERR_HWI_E019 (SKERR_HWI_E018+1) #define SKERR_HWI_E019MSG "" /* function prototypes ********************************************************/ #ifndef SK_KR_PROTO /* * public functions in skgeinit.c */ extern void SkGePollRxD( SK_AC *pAC, SK_IOC IoC, int Port, SK_BOOL PollRxD); extern void SkGePollTxD( SK_AC *pAC, SK_IOC IoC, int Port, SK_BOOL PollTxD); extern void SkGeYellowLED( SK_AC *pAC, SK_IOC IoC, int State); extern int SkGeCfgSync( SK_AC *pAC, SK_IOC IoC, int Port, SK_U32 IntTime, SK_U32 LimCount, int SyncMode); extern void SkGeLoadLnkSyncCnt( SK_AC *pAC, SK_IOC IoC, int Port, SK_U32 CntVal); extern void SkGeStopPort( SK_AC *pAC, SK_IOC IoC, int Port, int Dir, int RstMode); extern int SkGeInit( SK_AC *pAC, SK_IOC IoC, int Level); extern void SkGeDeInit( SK_AC *pAC, SK_IOC IoC); extern int SkGeInitPort( SK_AC *pAC, SK_IOC IoC, int Port); extern void SkGeXmitLED( SK_AC *pAC, SK_IOC IoC, int Led, int Mode); extern void SkGeInitRamIface( SK_AC *pAC, SK_IOC IoC); /* * public functions in skxmac2.c */ extern void SkXmSetRxCmd( SK_AC *pAC, SK_IOC IoC, int Port, int Mode); extern void SkXmClrExactAddr( SK_AC *pAC, SK_IOC IoC, int Port, int StartNum, int StopNum); extern void SkXmFlushTxFifo( SK_AC *pAC, SK_IOC IoC, int Port); extern void SkXmFlushRxFifo( SK_AC *pAC, SK_IOC IoC, int Port); extern void SkXmSoftRst( SK_AC *pAC, SK_IOC IoC, int Port); extern void SkXmHardRst( SK_AC *pAC, SK_IOC IoC, int Port); extern void SkXmInitMac( SK_AC *pAC, SK_IOC IoC, int Port); extern void SkXmInitDupMd( SK_AC *pAC, SK_IOC IoC, int Port); extern void SkXmInitPauseMd( SK_AC *pAC, SK_IOC IoC, int Port); extern int SkXmAutoNegDone( SK_AC *pAC, SK_IOC IoC, int Port); extern void SkXmAutoNegLipaXmac( SK_AC *pAC, SK_IOC IoC, int Port, SK_U16 IStatus); extern void SkXmAutoNegLipaBcom( SK_AC *pAC, SK_IOC IoC, int Port, SK_U16 IStatus); extern void SkXmAutoNegLipaLone( SK_AC *pAC, SK_IOC IoC, int Port, SK_U16 IStatus); extern void SkXmIrq( SK_AC *pAC, SK_IOC IoC, int Port, SK_U16 IStatus); #else /* SK_KR_PROTO */ /* * public functions in skgeinit.c */ extern void SkGePollRxD(); extern void SkGePollTxD(); extern void SkGeYellowLED(); extern int SkGeCfgSync(); extern void SkGeLoadLnkSyncCnt(); extern void SkGeStopPort(); extern int SkGeInit(); extern void SkGeDeInit(); extern int SkGeInitPort(); extern void SkGeXmitLED(); extern void SkGeInitRamIface(); /* * public functions in skxmac2.c */ extern void SkXmSetRxCmd(); extern void SkXmClrExactAddr(); extern void SkXmFlushTxFifo(); extern void SkXmFlushRxFifo(); extern void SkXmSoftRst(); extern void SkXmHardRst(); extern void SkXmInitMac(); extern void SkXmInitDupMd(); extern void SkXmInitPauseMd(); extern int SkXmAutoNegDone(); extern void SkXmAutoNegLipa(); extern void SkXmIrq(); #endif /* SK_KR_PROTO */ #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* __INC_SKGEINIT_H_ */