Commit e06cf18f authored by Mirko Lindner's avatar Mirko Lindner Committed by Stephen Hemminger

[PATCH] sk98lin-2.6: Kernel Update to Driver Version v6.21

Patch 1/4 (Update to version 6.21)
* Add: Common module update
* Add: New function for PCI initialization (SkGeInitPCI)
* Add: Yukon Plus changes (ChipID, PCI...)
* Add: Code for DIAG tool
* Fix: Problems while unloading the linux driver
* Fix: PrefPort=B not allowed on single NICs
* Fix: Fixed Linux System crash when using vlans
* Fix: Remove useless register_netdev
* Fix: Initalize Board before network configuration
* Fix: Modifications regarding try_module_get() and capable()
parent 4576b4fa
...@@ -76,7 +76,7 @@ endif ...@@ -76,7 +76,7 @@ endif
# SK_DBGCAT_DRV_INT_SRC 0x04000000 interrupts sources # SK_DBGCAT_DRV_INT_SRC 0x04000000 interrupts sources
# SK_DBGCAT_DRV_EVENT 0x08000000 driver events # SK_DBGCAT_DRV_EVENT 0x08000000 driver events
EXTRA_CFLAGS += -Idrivers/net/sk98lin -DSK_USE_CSUM -DGENESIS -DYUKON $(DBGDEF) $(SKPARAM) EXTRA_CFLAGS += -Idrivers/net/sk98lin -DSK_DIAG_SUPPORT -DSK_USE_CSUM -DGENESIS -DYUKON $(DBGDEF) $(SKPARAM)
clean: clean:
rm -f core *.o *.a *.s rm -f core *.o *.a *.s
......
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
* *
* Name: skcsum.h * Name: skcsum.h
* Project: GEnesis - SysKonnect SK-NET Gigabit Ethernet (SK-98xx) * Project: GEnesis - SysKonnect SK-NET Gigabit Ethernet (SK-98xx)
* Version: $Revision: 1.9 $ * Version: $Revision: 1.10 $
* Date: $Date: 2001/02/06 11:21:39 $ * Date: $Date: 2003/08/20 13:59:57 $
* Purpose: Store/verify Internet checksum in send/receive packets. * Purpose: Store/verify Internet checksum in send/receive packets.
* *
******************************************************************************/ ******************************************************************************/
...@@ -26,6 +26,10 @@ ...@@ -26,6 +26,10 @@
* History: * History:
* *
* $Log: skcsum.h,v $ * $Log: skcsum.h,v $
* Revision 1.10 2003/08/20 13:59:57 mschmid
* Changed notation of #ifndef SkCsCalculateChecksum to
* #ifndef SK_CS_CALCULATE_CHECKSUM
*
* Revision 1.9 2001/02/06 11:21:39 rassmann * Revision 1.9 2001/02/06 11:21:39 rassmann
* Editorial changes. * Editorial changes.
* *
...@@ -226,11 +230,11 @@ typedef struct s_CsPacketInfo { ...@@ -226,11 +230,11 @@ typedef struct s_CsPacketInfo {
/* function prototypes ********************************************************/ /* function prototypes ********************************************************/
#ifndef SkCsCalculateChecksum #ifndef SK_CS_CALCULATE_CHECKSUM
extern unsigned SkCsCalculateChecksum( extern unsigned SkCsCalculateChecksum(
void *pData, void *pData,
unsigned Length); unsigned Length);
#endif #endif /* SK_CS_CALCULATE_CHECKSUM */
extern int SkCsEvent( extern int SkCsEvent(
SK_AC *pAc, SK_AC *pAc,
......
...@@ -2,15 +2,16 @@ ...@@ -2,15 +2,16 @@
* *
* Name: skdrv1st.h * Name: skdrv1st.h
* Project: GEnesis, PCI Gigabit Ethernet Adapter * Project: GEnesis, PCI Gigabit Ethernet Adapter
* Version: $Revision: 1.1 $ * Version: $Revision: 1.4 $
* Date: $Date: 2003/07/21 07:22:43 $ * Date: $Date: 2003/11/12 14:28:14 $
* Purpose: First header file for driver and all other modules * Purpose: First header file for driver and all other modules
* *
******************************************************************************/ ******************************************************************************/
/****************************************************************************** /******************************************************************************
* *
* (C)Copyright 1998-2003 SysKonnect GmbH. * (C)Copyright 1998-2002 SysKonnect GmbH.
* (C)Copyright 2002-2003 Marvell.
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
...@@ -26,6 +27,15 @@ ...@@ -26,6 +27,15 @@
* History: * History:
* *
* $Log: skdrv1st.h,v $ * $Log: skdrv1st.h,v $
* Revision 1.4 2003/11/12 14:28:14 rroesler
* Fix: use dedicated ip_fast_csum() on X86_64 systems
*
* Revision 1.3 2003/10/07 08:16:52 mlindner
* Fix: Copyright changes
*
* Revision 1.2 2003/09/29 12:05:59 mlindner
* Fix: Added define SK_CS_CALCULSTE_CHECKSUM
*
* Revision 1.1 2003/07/21 07:22:43 rroesler * Revision 1.1 2003/07/21 07:22:43 rroesler
* Fix: Re-Enter after CVS crash * Fix: Re-Enter after CVS crash
* *
...@@ -110,6 +120,9 @@ ...@@ -110,6 +120,9 @@
#ifndef __INC_SKDRV1ST_H #ifndef __INC_SKDRV1ST_H
#define __INC_SKDRV1ST_H #define __INC_SKDRV1ST_H
/* Check kernel version */
#include <linux/version.h>
typedef struct s_AC SK_AC; typedef struct s_AC SK_AC;
/* Set card versions */ /* Set card versions */
...@@ -124,17 +137,15 @@ typedef struct s_AC SK_AC; ...@@ -124,17 +137,15 @@ typedef struct s_AC SK_AC;
#define SK_PNMI_READ_U32(p,v) memcpy((char*)&(v),(char*)(p),4) #define SK_PNMI_READ_U32(p,v) memcpy((char*)&(v),(char*)(p),4)
#define SK_PNMI_READ_U64(p,v) memcpy((char*)&(v),(char*)(p),8) #define SK_PNMI_READ_U64(p,v) memcpy((char*)&(v),(char*)(p),8)
#define SkCsCalculateChecksum(p,l) ((~ip_compute_csum(p, l)) & 0xffff)
#define SK_ADDR_EQUAL(a1,a2) (!memcmp(a1,a2,6)) #define SK_ADDR_EQUAL(a1,a2) (!memcmp(a1,a2,6))
#if !defined(__OPTIMIZE__) || !defined(__KERNEL__) #if !defined(__OPTIMIZE__) || !defined(__KERNEL__)
#warning You must compile this file with the correct options! #warning You must compile this file with the correct options!
#warning See the last lines of the source file. #warning See the last lines of the source file.
#error You must compile this driver with "-O". #error You must compile this driver with "-O".
#endif #endif
#include <linux/version.h>
#include <linux/types.h> #include <linux/types.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/string.h> #include <linux/string.h>
...@@ -154,6 +165,13 @@ typedef struct s_AC SK_AC; ...@@ -154,6 +165,13 @@ typedef struct s_AC SK_AC;
#include <asm/uaccess.h> #include <asm/uaccess.h>
#include <net/checksum.h> #include <net/checksum.h>
#define SK_CS_CALCULATE_CHECKSUM
#ifndef CONFIG_X86_64
#define SkCsCalculateChecksum(p,l) ((~ip_compute_csum(p, l)) & 0xffff)
#else
#define SkCsCalculateChecksum(p,l) ((~ip_fast_csum(p, l)) & 0xffff)
#endif
#include "h/sktypes.h" #include "h/sktypes.h"
#include "h/skerror.h" #include "h/skerror.h"
#include "h/skdebug.h" #include "h/skdebug.h"
......
...@@ -2,15 +2,16 @@ ...@@ -2,15 +2,16 @@
* *
* Name: skdrv2nd.h * Name: skdrv2nd.h
* Project: GEnesis, PCI Gigabit Ethernet Adapter * Project: GEnesis, PCI Gigabit Ethernet Adapter
* Version: $Revision: 1.3 $ * Version: $Revision: 1.10 $
* Date: $Date: 2003/08/12 16:51:18 $ * Date: $Date: 2003/12/11 16:04:45 $
* Purpose: Second header file for driver and all other modules * Purpose: Second header file for driver and all other modules
* *
******************************************************************************/ ******************************************************************************/
/****************************************************************************** /******************************************************************************
* *
* (C)Copyright 1998-2003 SysKonnect GmbH. * (C)Copyright 1998-2002 SysKonnect GmbH.
* (C)Copyright 2002-2003 Marvell.
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
...@@ -26,6 +27,27 @@ ...@@ -26,6 +27,27 @@
* History: * History:
* *
* $Log: skdrv2nd.h,v $ * $Log: skdrv2nd.h,v $
* Revision 1.10 2003/12/11 16:04:45 mlindner
* Add: New pnmi data backup structure
*
* Revision 1.9 2003/11/10 09:31:37 rroesler
* Add: pnmiBackup structure for DIAG backup restore
*
* Revision 1.8 2003/10/22 14:18:32 rroesler
* Fix: DIAG handling for DualNet cards
*
* Revision 1.7 2003/10/07 09:34:59 mlindner
* Add: New defines for lower and upper range values (interrupt moderation)
*
* Revision 1.6 2003/10/07 08:16:51 mlindner
* Fix: Copyright changes
*
* Revision 1.5 2003/09/01 13:10:39 rroesler
* Add: Prototypes for DIAG Attach/Detach functions
*
* Revision 1.4 2003/09/01 12:33:38 rroesler
* Add: Defines for optimized DIAG interaction
*
* Revision 1.3 2003/08/12 16:51:18 mlindner * Revision 1.3 2003/08/12 16:51:18 mlindner
* Fix: UDP and TCP Proto checks * Fix: UDP and TCP Proto checks
* Fix: UDP header offset * Fix: UDP header offset
...@@ -206,6 +228,11 @@ extern int SkPciWriteCfgWord(SK_AC*, int, SK_U16); ...@@ -206,6 +228,11 @@ extern int SkPciWriteCfgWord(SK_AC*, int, SK_U16);
extern int SkPciWriteCfgByte(SK_AC*, int, SK_U8); extern int SkPciWriteCfgByte(SK_AC*, int, SK_U8);
extern int SkDrvEvent(SK_AC*, SK_IOC IoC, SK_U32, SK_EVPARA); extern int SkDrvEvent(SK_AC*, SK_IOC IoC, SK_U32, SK_EVPARA);
#ifdef SK_DIAG_SUPPORT
extern int SkDrvEnterDiagMode(SK_AC *pAc);
extern int SkDrvLeaveDiagMode(SK_AC *pAc);
#endif
struct s_DrvRlmtMbuf { struct s_DrvRlmtMbuf {
SK_MBUF *pNext; /* Pointer to next RLMT Mbuf. */ SK_MBUF *pNext; /* Pointer to next RLMT Mbuf. */
SK_U8 *pData; /* Data buffer (virtually contig.). */ SK_U8 *pData; /* Data buffer (virtually contig.). */
...@@ -247,6 +274,7 @@ struct s_DrvRlmtMbuf { ...@@ -247,6 +274,7 @@ struct s_DrvRlmtMbuf {
#define SK_IOCTL_SETMIB (SK_IOCTL_BASE + 1) #define SK_IOCTL_SETMIB (SK_IOCTL_BASE + 1)
#define SK_IOCTL_PRESETMIB (SK_IOCTL_BASE + 2) #define SK_IOCTL_PRESETMIB (SK_IOCTL_BASE + 2)
#define SK_IOCTL_GEN (SK_IOCTL_BASE + 3) #define SK_IOCTL_GEN (SK_IOCTL_BASE + 3)
#define SK_IOCTL_DIAG (SK_IOCTL_BASE + 4)
typedef struct s_IOCTL SK_GE_IOCTL; typedef struct s_IOCTL SK_GE_IOCTL;
...@@ -462,6 +490,9 @@ struct s_RxPort { ...@@ -462,6 +490,9 @@ struct s_RxPort {
#define C_INTS_PER_SEC_DEFAULT 2000 #define C_INTS_PER_SEC_DEFAULT 2000
#define C_INT_MOD_ENABLE_PERCENTAGE 50 /* if higher 50% enable */ #define C_INT_MOD_ENABLE_PERCENTAGE 50 /* if higher 50% enable */
#define C_INT_MOD_DISABLE_PERCENTAGE 50 /* if lower 50% disable */ #define C_INT_MOD_DISABLE_PERCENTAGE 50 /* if lower 50% disable */
#define C_INT_MOD_IPS_LOWER_RANGE 30
#define C_INT_MOD_IPS_UPPER_RANGE 40000
typedef struct s_DynIrqModInfo DIM_INFO; typedef struct s_DynIrqModInfo DIM_INFO;
struct s_DynIrqModInfo { struct s_DynIrqModInfo {
...@@ -493,6 +524,11 @@ typedef struct s_PerStrm PER_STRM; ...@@ -493,6 +524,11 @@ typedef struct s_PerStrm PER_STRM;
#define SK_ALLOC_IRQ 0x00000001 #define SK_ALLOC_IRQ 0x00000001
#ifdef SK_DIAG_SUPPORT
#define DIAG_ACTIVE 1
#define DIAG_NOTACTIVE 0
#endif
/**************************************************************************** /****************************************************************************
* Per board structure / Adapter Context structure: * Per board structure / Adapter Context structure:
* Allocated within attach(9e) and freed within detach(9e). * Allocated within attach(9e) and freed within detach(9e).
...@@ -563,9 +599,18 @@ struct s_AC { ...@@ -563,9 +599,18 @@ struct s_AC {
int PortUp; int PortUp;
int PortDown; int PortDown;
int ChipsetType; /* Chipset family type int ChipsetType; /* Chipset family type
* 0 == Genesis family support * 0 == Genesis family support
* 1 == Yukon family support * 1 == Yukon family support
*/ */
#ifdef SK_DIAG_SUPPORT
SK_U32 DiagModeActive; /* is diag active? */
SK_BOOL DiagFlowCtrl; /* for control purposes */
SK_PNMI_STRUCT_DATA PnmiBackup; /* backup structure for all Pnmi-Data */
SK_BOOL WasIfUp[SK_MAX_MACS]; /* for OpenClose while
* DIAG is busy with NIC
*/
#endif
}; };
......
This diff is collapsed.
/****************************************************************************** /******************************************************************************
* *
* Name: skhwt.h * Name: skhwt.h
* Project: Gigabit Ethernet Adapters, Schedule-Modul * Project: Gigabit Ethernet Adapters, Event Scheduler Module
* Version: $Revision: 1.6 $ * Version: $Revision: 1.7 $
* Date: $Date: 2003/05/13 17:57:48 $ * Date: $Date: 2003/09/16 12:55:08 $
* Purpose: Defines for the hardware timer functions * Purpose: Defines for the hardware timer functions
* *
******************************************************************************/ ******************************************************************************/
...@@ -27,6 +27,9 @@ ...@@ -27,6 +27,9 @@
* History: * History:
* *
* $Log: skgehwt.h,v $ * $Log: skgehwt.h,v $
* Revision 1.7 2003/09/16 12:55:08 rschmidt
* Editorial changes
*
* Revision 1.6 2003/05/13 17:57:48 mkarl * Revision 1.6 2003/05/13 17:57:48 mkarl
* Editorial changes. * Editorial changes.
* *
...@@ -34,7 +37,7 @@ ...@@ -34,7 +37,7 @@
* Changed license header to GPL. * Changed license header to GPL.
* *
* Revision 1.4 1998/08/19 09:50:58 gklug * Revision 1.4 1998/08/19 09:50:58 gklug
* fix: remove struct keyword from c-code (see CCC) add typedefs * fix: remove struct keyword from C-code (see CCC) add typedefs
* *
* Revision 1.3 1998/08/14 07:09:29 gklug * Revision 1.3 1998/08/14 07:09:29 gklug
* fix: chg pAc -> pAC * fix: chg pAc -> pAC
...@@ -44,10 +47,6 @@ ...@@ -44,10 +47,6 @@
* *
* Revision 1.1 1998/08/07 09:32:58 gklug * Revision 1.1 1998/08/07 09:32:58 gklug
* first version * first version
*
*
*
*
* *
******************************************************************************/ ******************************************************************************/
...@@ -64,14 +63,14 @@ ...@@ -64,14 +63,14 @@
* - use in Adapters context name pAC->Hwt * - use in Adapters context name pAC->Hwt
*/ */
typedef struct s_Hwt { typedef struct s_Hwt {
SK_U32 TStart ; /* HWT start */ SK_U32 TStart; /* HWT start */
SK_U32 TStop ; /* HWT stop */ SK_U32 TStop; /* HWT stop */
int TActive ; /* HWT: flag : active/inactive */ int TActive; /* HWT: flag : active/inactive */
} SK_HWT; } SK_HWT;
extern void SkHwtInit(SK_AC *pAC, SK_IOC Ioc); extern void SkHwtInit(SK_AC *pAC, SK_IOC Ioc);
extern void SkHwtStart(SK_AC *pAC, SK_IOC Ioc, SK_U32 Time); extern void SkHwtStart(SK_AC *pAC, SK_IOC Ioc, SK_U32 Time);
extern void SkHwtStop(SK_AC *pAC, SK_IOC Ioc); extern void SkHwtStop(SK_AC *pAC, SK_IOC Ioc);
extern SK_U32 SkHwtRead(SK_AC *pAC,SK_IOC Ioc); extern SK_U32 SkHwtRead(SK_AC *pAC, SK_IOC Ioc);
extern void SkHwtIsr(SK_AC *pAC, SK_IOC Ioc); extern void SkHwtIsr(SK_AC *pAC, SK_IOC Ioc);
#endif /* _SKGEHWT_H_ */ #endif /* _SKGEHWT_H_ */
/****************************************************************************** /******************************************************************************
* *
* Name: skgei2c.h * Name: skgei2c.h
* Project: GEnesis, PCI Gigabit Ethernet Adapter * Project: Gigabit Ethernet Adapters, TWSI-Module
* Version: $Revision: 1.23 $ * Version: $Revision: 1.25 $
* Date: $Date: 2002/12/19 14:34:27 $ * Date: $Date: 2003/10/20 09:06:05 $
* Purpose: Special GEnesis defines for TWSI * Purpose: Special defines for TWSI
* *
******************************************************************************/ ******************************************************************************/
/****************************************************************************** /******************************************************************************
* *
* (C)Copyright 1998-2002 SysKonnect GmbH. * (C)Copyright 1998-2002 SysKonnect.
* (C)Copyright 2002-2003 Marvell.
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
...@@ -26,6 +27,12 @@ ...@@ -26,6 +27,12 @@
* History: * History:
* *
* $Log: skgei2c.h,v $ * $Log: skgei2c.h,v $
* Revision 1.25 2003/10/20 09:06:05 rschmidt
* Editorial changes.
*
* Revision 1.24 2003/09/23 09:31:15 malthoff
* Parameter dev_size added to macro definition of SK_I2C_CTL.
*
* Revision 1.23 2002/12/19 14:34:27 rschmidt * Revision 1.23 2002/12/19 14:34:27 rschmidt
* Added cast in macros SK_I2C_SET_BIT() and SK_I2C_CLR_BIT() * Added cast in macros SK_I2C_SET_BIT() and SK_I2C_CLR_BIT()
* Editorial changes (TWSI) * Editorial changes (TWSI)
...@@ -107,8 +114,6 @@ ...@@ -107,8 +114,6 @@
* Revision 1.1 1998/07/17 11:27:56 gklug * Revision 1.1 1998/07/17 11:27:56 gklug
* Created. * Created.
* *
*
*
******************************************************************************/ ******************************************************************************/
/* /*
...@@ -121,12 +126,13 @@ ...@@ -121,12 +126,13 @@
/* /*
* Macros to access the B2_I2C_CTRL * Macros to access the B2_I2C_CTRL
*/ */
#define SK_I2C_CTL(IoC, flag, dev, reg, burst) \ #define SK_I2C_CTL(IoC, flag, dev, dev_size, reg, burst) \
SK_OUT32(IoC, B2_I2C_CTRL,\ SK_OUT32(IoC, B2_I2C_CTRL,\
(flag ? 0x80000000UL : 0x0L) | \ (flag ? 0x80000000UL : 0x0L) | \
(((SK_U32) reg << 16) & I2C_ADDR) | \ (((SK_U32)reg << 16) & I2C_ADDR) | \
(((SK_U32) dev << 9) & I2C_DEV_SEL) | \ (((SK_U32)dev << 9) & I2C_DEV_SEL) | \
(( burst << 4) & I2C_BURST_LEN)) (dev_size & I2C_DEV_SIZE) | \
((burst << 4) & I2C_BURST_LEN))
#define SK_I2C_STOP(IoC) { \ #define SK_I2C_STOP(IoC) { \
SK_U32 I2cCtrl; \ SK_U32 I2cCtrl; \
...@@ -166,42 +172,42 @@ ...@@ -166,42 +172,42 @@
*/ */
#define SK_LM80_VT_LSB 22 /* 22mV LSB resolution */ #define SK_LM80_VT_LSB 22 /* 22mV LSB resolution */
#define SK_LM80_TEMP_LSB 10 /* 1 degree LSB resolution */ #define SK_LM80_TEMP_LSB 10 /* 1 degree LSB resolution */
#define SK_LM80_TEMPEXT_LSB 5 /* 0.5 degree LSB resolution for the #define SK_LM80_TEMPEXT_LSB 5 /* 0.5 degree LSB resolution for ext. val. */
* extension value
*/ /*
#define SK_LM80_FAN_FAKTOR ((22500L*60)/(1*2)) * formula: counter = (22500*60)/(rpm * divisor * pulses/2)
/* formula: counter = (22500*60)/(rpm * divisor * pulses/2)
* assuming: 6500rpm, 4 pulses, divisor 1 * assuming: 6500rpm, 4 pulses, divisor 1
*/ */
#define SK_LM80_FAN_FAKTOR ((22500L*60)/(1*2))
/* /*
* Define sensor management data * Define sensor management data
* Maximum is reached on copperfield with dual Broadcom. * Maximum is reached on Genesis copper dual port and Yukon-64
* Board specific maximum is in pAC->I2c.MaxSens * Board specific maximum is in pAC->I2c.MaxSens
*/ */
#define SK_MAX_SENSORS 8 /* maximal no. of installed sensors */ #define SK_MAX_SENSORS 8 /* maximal no. of installed sensors */
#define SK_MIN_SENSORS 5 /* minimal no. of installed sensors */ #define SK_MIN_SENSORS 5 /* minimal no. of installed sensors */
/* /*
* To watch the statemachine (JS) use the timer in two ways instead of one as hitherto * To watch the state machine (SM) use the timer in two ways
* instead of one as hitherto
*/ */
#define SK_TIMER_WATCH_STATEMACHINE 0 /* Watch the statemachine to finish in a specific time */ #define SK_TIMER_WATCH_SM 0 /* Watch the SM to finish in a spec. time */
#define SK_TIMER_NEW_GAUGING 1 /* Start a new gauging when timer expires */ #define SK_TIMER_NEW_GAUGING 1 /* Start a new gauging when timer expires */
/* /*
* Defines for the individual Thresholds * Defines for the individual thresholds
*/ */
/* Temperature sensor */ /* Temperature sensor */
#define SK_SEN_TEMP_HIGH_ERR 800 /* Temperature High Err Threshold */ #define SK_SEN_TEMP_HIGH_ERR 800 /* Temperature High Err Threshold */
#define SK_SEN_TEMP_HIGH_WARN 700 /* Temperature High Warn Threshold */ #define SK_SEN_TEMP_HIGH_WARN 700 /* Temperature High Warn Threshold */
#define SK_SEN_TEMP_LOW_WARN 100 /* Temperature Low Warn Threshold */ #define SK_SEN_TEMP_LOW_WARN 100 /* Temperature Low Warn Threshold */
#define SK_SEN_TEMP_LOW_ERR 0 /* Temperature Low Err Threshold */ #define SK_SEN_TEMP_LOW_ERR 0 /* Temperature Low Err Threshold */
/* VCC which should be 5 V */ /* VCC which should be 5 V */
#define SK_SEN_PCI_5V_HIGH_ERR 5588 /* Voltage PCI High Err Threshold */ #define SK_SEN_PCI_5V_HIGH_ERR 5588 /* Voltage PCI High Err Threshold */
#define SK_SEN_PCI_5V_HIGH_WARN 5346 /* Voltage PCI High Warn Threshold */ #define SK_SEN_PCI_5V_HIGH_WARN 5346 /* Voltage PCI High Warn Threshold */
#define SK_SEN_PCI_5V_LOW_WARN 4664 /* Voltage PCI Low Warn Threshold */ #define SK_SEN_PCI_5V_LOW_WARN 4664 /* Voltage PCI Low Warn Threshold */
#define SK_SEN_PCI_5V_LOW_ERR 4422 /* Voltage PCI Low Err Threshold */ #define SK_SEN_PCI_5V_LOW_ERR 4422 /* Voltage PCI Low Err Threshold */
...@@ -229,17 +235,16 @@ ...@@ -229,17 +235,16 @@
#define SK_SEN_PCI_IO_3V3_HIGH_ERR 3850 /* + 15% V PCI-IO High Err Threshold */ #define SK_SEN_PCI_IO_3V3_HIGH_ERR 3850 /* + 15% V PCI-IO High Err Threshold */
#define SK_SEN_PCI_IO_3V3_HIGH_WARN 3674 /* + 10% V PCI-IO High Warn Threshold */ #define SK_SEN_PCI_IO_3V3_HIGH_WARN 3674 /* + 10% V PCI-IO High Warn Threshold */
/* 3300 mVolt */ /* 3300 mVolt */
#define SK_SEN_PCI_IO_3V3_LOW_WARN 2926 /* - 10% V PCI-IO Low Warn Threshold */ #define SK_SEN_PCI_IO_3V3_LOW_WARN 2926 /* - 10% V PCI-IO Low Warn Threshold */
#define SK_SEN_PCI_IO_3V3_LOW_ERR 2772 /* - 15% V PCI-IO Low Err Threshold */ #define SK_SEN_PCI_IO_3V3_LOW_ERR 2772 /* - 15% V PCI-IO Low Err Threshold */
/* /*
* VDD voltage * VDD voltage
*/ */
#define SK_SEN_VDD_HIGH_ERR 3630 /* Voltage ASIC High Err Threshold */ #define SK_SEN_VDD_HIGH_ERR 3630 /* Voltage ASIC High Err Threshold */
#define SK_SEN_VDD_HIGH_WARN 3476 /* Voltage ASIC High Warn Threshold */ #define SK_SEN_VDD_HIGH_WARN 3476 /* Voltage ASIC High Warn Threshold */
#define SK_SEN_VDD_LOW_WARN 3146 /* Voltage ASIC Low Warn Threshold */ #define SK_SEN_VDD_LOW_WARN 3146 /* Voltage ASIC Low Warn Threshold */
#define SK_SEN_VDD_LOW_ERR 2970 /* Voltage ASIC Low Err Threshold */ #define SK_SEN_VDD_LOW_ERR 2970 /* Voltage ASIC Low Err Threshold */
/* /*
* PHY PLL 3V3 voltage * PHY PLL 3V3 voltage
...@@ -255,8 +260,8 @@ ...@@ -255,8 +260,8 @@
#define SK_SEN_VAUX_3V3_HIGH_ERR 3630 /* Voltage VAUX High Err Threshold */ #define SK_SEN_VAUX_3V3_HIGH_ERR 3630 /* Voltage VAUX High Err Threshold */
#define SK_SEN_VAUX_3V3_HIGH_WARN 3476 /* Voltage VAUX High Warn Threshold */ #define SK_SEN_VAUX_3V3_HIGH_WARN 3476 /* Voltage VAUX High Warn Threshold */
#define SK_SEN_VAUX_3V3_LOW_WARN 3146 /* Voltage VAUX Low Warn Threshold */ #define SK_SEN_VAUX_3V3_LOW_WARN 3146 /* Voltage VAUX Low Warn Threshold */
#define SK_SEN_VAUX_3V3_LOW_ERR 2970 /* Voltage VAUX Low Err Threshold */ #define SK_SEN_VAUX_3V3_LOW_ERR 2970 /* Voltage VAUX Low Err Threshold */
#define SK_SEN_VAUX_0V_WARN_ERR 0 /* if VAUX not present */ #define SK_SEN_VAUX_0V_WARN_ERR 0 /* if VAUX not present */
#define SK_SEN_VAUX_RANGE_LIMITER 1000 /* 1000 mV range delimiter */ #define SK_SEN_VAUX_RANGE_LIMITER 1000 /* 1000 mV range delimiter */
/* /*
...@@ -270,7 +275,7 @@ ...@@ -270,7 +275,7 @@
/* /*
* ASIC Core 1V5 voltage (YUKON only) * ASIC Core 1V5 voltage (YUKON only)
*/ */
#define SK_SEN_CORE_1V5_HIGH_ERR 1650 /* Voltage ASIC Core High Err Threshold */ #define SK_SEN_CORE_1V5_HIGH_ERR 1650 /* Voltage ASIC Core High Err Threshold */
#define SK_SEN_CORE_1V5_HIGH_WARN 1575 /* Voltage ASIC Core High Warn Threshold */ #define SK_SEN_CORE_1V5_HIGH_WARN 1575 /* Voltage ASIC Core High Warn Threshold */
#define SK_SEN_CORE_1V5_LOW_WARN 1425 /* Voltage ASIC Core Low Warn Threshold */ #define SK_SEN_CORE_1V5_LOW_WARN 1425 /* Voltage ASIC Core Low Warn Threshold */
#define SK_SEN_CORE_1V5_LOW_ERR 1350 /* Voltage ASIC Core Low Err Threshold */ #define SK_SEN_CORE_1V5_LOW_ERR 1350 /* Voltage ASIC Core Low Err Threshold */
...@@ -285,8 +290,8 @@ ...@@ -285,8 +290,8 @@
*/ */
#define SK_SEN_FAN_HIGH_ERR 20000 /* FAN Speed High Err Threshold */ #define SK_SEN_FAN_HIGH_ERR 20000 /* FAN Speed High Err Threshold */
#define SK_SEN_FAN_HIGH_WARN 20000 /* FAN Speed High Warn Threshold */ #define SK_SEN_FAN_HIGH_WARN 20000 /* FAN Speed High Warn Threshold */
#define SK_SEN_FAN_LOW_WARN 5200 /* FAN Speed Low Warn Threshold */ #define SK_SEN_FAN_LOW_WARN 5200 /* FAN Speed Low Warn Threshold */
#define SK_SEN_FAN_LOW_ERR 4550 /* FAN Speed Low Err Threshold */ #define SK_SEN_FAN_LOW_ERR 4550 /* FAN Speed Low Err Threshold */
/* /*
* Some Voltages need dynamic thresholds * Some Voltages need dynamic thresholds
......
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
* *
* Name: skgeinit.h * Name: skgeinit.h
* Project: Gigabit Ethernet Adapters, Common Modules * Project: Gigabit Ethernet Adapters, Common Modules
* Version: $Revision: 1.81 $ * Version: $Revision: 1.83 $
* Date: $Date: 2003/07/04 12:30:38 $ * Date: $Date: 2003/09/16 14:07:37 $
* Purpose: Structures and prototypes for the GE Init Module * Purpose: Structures and prototypes for the GE Init Module
* *
******************************************************************************/ ******************************************************************************/
...@@ -27,6 +27,23 @@ ...@@ -27,6 +27,23 @@
* History: * History:
* *
* $Log: skgeinit.h,v $ * $Log: skgeinit.h,v $
* Revision 1.83 2003/09/16 14:07:37 rschmidt
* Moved defines for PHY power down modes from skgehw.h
* Added prototypes for SkMacClearRst()
* Editorial changes
*
* Revision 1.82 2003/09/16 07:18:36 mschmid
* Added members to port structure for MAC control
* - PMacColThres
* - PMacJamLen
* - PMacJamIpgVal
* - PMacJamIpgData
* - PMacIpgData
* - PMacLimit4
* Added PHY power state to port structure
* - PPhyPowerState
* Added function prototypes to enter and leave low power modes
*
* Revision 1.81 2003/07/04 12:30:38 rschmidt * Revision 1.81 2003/07/04 12:30:38 rschmidt
* Added SK_FAR to pointers in MAC statistic functions (for PXE) * Added SK_FAR to pointers in MAC statistic functions (for PXE)
* Editorial changes * Editorial changes
...@@ -594,6 +611,13 @@ extern "C" { ...@@ -594,6 +611,13 @@ extern "C" {
#define SK_PRT_INIT 2 /* the port is initialized */ #define SK_PRT_INIT 2 /* the port is initialized */
#define SK_PRT_RUN 3 /* the port has an active link */ #define SK_PRT_RUN 3 /* the port has an active link */
/* PHY power down modes */
#define PHY_PM_OPERATIONAL_MODE 0 /* PHY operational mode */
#define PHY_PM_DEEP_SLEEP 1 /* coma mode --> minimal power */
#define PHY_PM_IEEE_POWER_DOWN 2 /* IEEE 22.2.4.1.5 compl. power down */
#define PHY_PM_ENERGY_DETECT 3 /* energy detect */
#define PHY_PM_ENERGY_DETECT_PLUS 4 /* energy detect plus */
/* Default receive frame limit for Workaround of XMAC Errata */ /* Default receive frame limit for Workaround of XMAC Errata */
#define SK_DEF_RX_WA_LIM SK_CONSTU64(100) #define SK_DEF_RX_WA_LIM SK_CONSTU64(100)
...@@ -685,6 +709,13 @@ typedef struct s_GePort { ...@@ -685,6 +709,13 @@ typedef struct s_GePort {
SK_U8 PCableLen; /* Cable Length */ SK_U8 PCableLen; /* Cable Length */
SK_U8 PMdiPairLen[4]; /* MDI[0..3] Pair Length */ SK_U8 PMdiPairLen[4]; /* MDI[0..3] Pair Length */
SK_U8 PMdiPairSts[4]; /* MDI[0..3] Pair Diagnostic Status */ SK_U8 PMdiPairSts[4]; /* MDI[0..3] Pair Diagnostic Status */
SK_U8 PPhyPowerState; /* PHY current power state */
int PMacColThres; /* MAC Collision Threshold */
int PMacJamLen; /* MAC Jam length */
int PMacJamIpgVal; /* MAC Jam IPG */
int PMacJamIpgData; /* MAC IPG Jam to Data */
int PMacIpgData; /* MAC Data IPG */
SK_BOOL PMacLimit4; /* reset collision counter and backoff algorithm */
} SK_GEPORT; } SK_GEPORT;
/* /*
...@@ -865,6 +896,11 @@ extern void SkMacHardRst( ...@@ -865,6 +896,11 @@ extern void SkMacHardRst(
SK_IOC IoC, SK_IOC IoC,
int Port); int Port);
extern void SkMacClearRst(
SK_AC *pAC,
SK_IOC IoC,
int Port);
extern void SkXmInitMac( extern void SkXmInitMac(
SK_AC *pAC, SK_AC *pAC,
SK_IOC IoC, SK_IOC IoC,
...@@ -1040,6 +1076,17 @@ extern int SkGmCableDiagStatus( ...@@ -1040,6 +1076,17 @@ extern int SkGmCableDiagStatus(
int Port, int Port,
SK_BOOL StartTest); SK_BOOL StartTest);
extern int SkGmEnterLowPowerMode(
SK_AC *pAC,
SK_IOC IoC,
int Port,
SK_U8 Mode);
extern int SkGmLeaveLowPowerMode(
SK_AC *pAC,
SK_IOC IoC,
int Port);
#ifdef SK_DIAG #ifdef SK_DIAG
extern void SkGePhyRead( extern void SkGePhyRead(
SK_AC *pAC, SK_AC *pAC,
...@@ -1101,6 +1148,7 @@ extern int SkGeInitAssignRamToQueues(); ...@@ -1101,6 +1148,7 @@ extern int SkGeInitAssignRamToQueues();
extern void SkMacRxTxDisable(); extern void SkMacRxTxDisable();
extern void SkMacSoftRst(); extern void SkMacSoftRst();
extern void SkMacHardRst(); extern void SkMacHardRst();
extern void SkMacClearRst();
extern void SkMacInitPhy(); extern void SkMacInitPhy();
extern int SkMacRxTxEnable(); extern int SkMacRxTxEnable();
extern void SkMacPromiscMode(); extern void SkMacPromiscMode();
...@@ -1131,6 +1179,8 @@ extern int SkGmResetCounter(); ...@@ -1131,6 +1179,8 @@ extern int SkGmResetCounter();
extern int SkXmOverflowStatus(); extern int SkXmOverflowStatus();
extern int SkGmOverflowStatus(); extern int SkGmOverflowStatus();
extern int SkGmCableDiagStatus(); extern int SkGmCableDiagStatus();
extern int SkGmEnterLowPowerMode();
extern int SkGmLeaveLowPowerMode();
#ifdef SK_DIAG #ifdef SK_DIAG
extern void SkGePhyRead(); extern void SkGePhyRead();
......
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
* *
* Name: skgepnmi.h * Name: skgepnmi.h
* Project: GEnesis, PCI Gigabit Ethernet Adapter * Project: GEnesis, PCI Gigabit Ethernet Adapter
* Version: $Revision: 1.61 $ * Version: $Revision: 1.62 $
* Date: $Date: 2003/05/23 12:53:52 $ * Date: $Date: 2003/08/15 12:31:52 $
* Purpose: Defines for Private Network Management Interface * Purpose: Defines for Private Network Management Interface
* *
****************************************************************************/ ****************************************************************************/
...@@ -27,6 +27,18 @@ ...@@ -27,6 +27,18 @@
* History: * History:
* *
* $Log: skgepnmi.h,v $ * $Log: skgepnmi.h,v $
* Revision 1.62 2003/08/15 12:31:52 tschilli
* Added new OIDs:
* OID_SKGE_DRIVER_RELDATE
* OID_SKGE_DRIVER_FILENAME
* OID_SKGE_CHIPID
* OID_SKGE_RAMSIZE
* OID_SKGE_VAUXAVAIL
* OID_SKGE_PHY_TYPE
* OID_SKGE_PHY_LP_MODE
*
* Added new define SK_DIAG_ATTACHED for OID_SKGE_DIAG_MODE handling.
*
* Revision 1.61 2003/05/23 12:53:52 tschilli * Revision 1.61 2003/05/23 12:53:52 tschilli
* Generic PNMI IOCTL subcommands added. * Generic PNMI IOCTL subcommands added.
* Function prototype SkPnmiGenIoctl() added. * Function prototype SkPnmiGenIoctl() added.
...@@ -568,15 +580,23 @@ ...@@ -568,15 +580,23 @@
#define OID_SKGE_ALL_DATA 0xFF020190 #define OID_SKGE_ALL_DATA 0xFF020190
/* Defines for VCT. */ /* Defines for VCT. */
#define OID_SKGE_VCT_GET 0xFF020200 #define OID_SKGE_VCT_GET 0xFF020200
#define OID_SKGE_VCT_SET 0xFF020201 #define OID_SKGE_VCT_SET 0xFF020201
#define OID_SKGE_VCT_STATUS 0xFF020202 #define OID_SKGE_VCT_STATUS 0xFF020202
#ifdef SK_DIAG_SUPPORT #ifdef SK_DIAG_SUPPORT
/* Defines for driver DIAG mode. */ /* Defines for driver DIAG mode. */
#define OID_SKGE_DIAG_MODE 0xFF020204 #define OID_SKGE_DIAG_MODE 0xFF020204
#endif /* SK_DIAG_SUPPORT */ #endif /* SK_DIAG_SUPPORT */
/* New OIDs */
#define OID_SKGE_DRIVER_RELDATE 0xFF020210
#define OID_SKGE_DRIVER_FILENAME 0xFF020211
#define OID_SKGE_CHIPID 0xFF020212
#define OID_SKGE_RAMSIZE 0xFF020213
#define OID_SKGE_VAUXAVAIL 0xFF020214
#define OID_SKGE_PHY_TYPE 0xFF020215
#define OID_SKGE_PHY_LP_MODE 0xFF020216
/* VCT struct to store a backup copy of VCT data after a port reset. */ /* VCT struct to store a backup copy of VCT data after a port reset. */
typedef struct s_PnmiVct { typedef struct s_PnmiVct {
...@@ -613,6 +633,12 @@ typedef struct s_PnmiVct { ...@@ -613,6 +633,12 @@ typedef struct s_PnmiVct {
#define OID_SKGE_TRAP_RLMT_PORT_UP 523 #define OID_SKGE_TRAP_RLMT_PORT_UP 523
#define OID_SKGE_TRAP_RLMT_SEGMENTATION 524 #define OID_SKGE_TRAP_RLMT_SEGMENTATION 524
#ifdef SK_DIAG_SUPPORT
/* Defines for driver DIAG mode. */
#define SK_DIAG_ATTACHED 2
#define SK_DIAG_RUNNING 1
#define SK_DIAG_IDLE 0
#endif /* SK_DIAG_SUPPORT */
/* /*
* Generic PNMI IOCTL subcommand definitions. * Generic PNMI IOCTL subcommand definitions.
...@@ -730,6 +756,14 @@ typedef struct s_PnmiVct { ...@@ -730,6 +756,14 @@ typedef struct s_PnmiVct {
#define SK_PNMI_ERR051MSG "SkPnmiEvent: Port switch suspicious" #define SK_PNMI_ERR051MSG "SkPnmiEvent: Port switch suspicious"
#define SK_PNMI_ERR052 (SK_ERRBASE_PNMI + 52) #define SK_PNMI_ERR052 (SK_ERRBASE_PNMI + 52)
#define SK_PNMI_ERR052MSG "" #define SK_PNMI_ERR052MSG ""
#define SK_PNMI_ERR053 (SK_ERRBASE_PNMI + 53)
#define SK_PNMI_ERR053MSG "General: Driver release date not initialized"
#define SK_PNMI_ERR054 (SK_ERRBASE_PNMI + 54)
#define SK_PNMI_ERR054MSG "General: Driver release date string too long"
#define SK_PNMI_ERR055 (SK_ERRBASE_PNMI + 55)
#define SK_PNMI_ERR055MSG "General: Driver file name not initialized"
#define SK_PNMI_ERR056 (SK_ERRBASE_PNMI + 56)
#define SK_PNMI_ERR056MSG "General: Driver file name string too long"
/* /*
* Management counter macros called by the driver * Management counter macros called by the driver
...@@ -740,6 +774,11 @@ typedef struct s_PnmiVct { ...@@ -740,6 +774,11 @@ typedef struct s_PnmiVct {
#define SK_PNMI_SET_DRIVER_VER(pAC,v) ((pAC)->Pnmi.pDriverVersion = \ #define SK_PNMI_SET_DRIVER_VER(pAC,v) ((pAC)->Pnmi.pDriverVersion = \
(char *)(v)) (char *)(v))
#define SK_PNMI_SET_DRIVER_RELDATE(pAC,v) ((pAC)->Pnmi.pDriverReleaseDate = \
(char *)(v))
#define SK_PNMI_SET_DRIVER_FILENAME(pAC,v) ((pAC)->Pnmi.pDriverFileName = \
(char *)(v))
#define SK_PNMI_CNT_TX_QUEUE_LEN(pAC,v,p) \ #define SK_PNMI_CNT_TX_QUEUE_LEN(pAC,v,p) \
{ \ { \
...@@ -916,6 +955,8 @@ typedef struct s_PnmiConf { ...@@ -916,6 +955,8 @@ typedef struct s_PnmiConf {
char ConfMacFactoryAddr[6]; char ConfMacFactoryAddr[6];
SK_U8 ConfPMD; SK_U8 ConfPMD;
SK_U8 ConfConnector; SK_U8 ConfConnector;
SK_U32 ConfPhyType;
SK_U32 ConfPhyMode;
SK_U8 ConfLinkCapability; SK_U8 ConfLinkCapability;
SK_U8 ConfLinkMode; SK_U8 ConfLinkMode;
SK_U8 ConfLinkModeStatus; SK_U8 ConfLinkModeStatus;
...@@ -964,9 +1005,14 @@ typedef struct s_PnmiStrucData { ...@@ -964,9 +1005,14 @@ typedef struct s_PnmiStrucData {
SK_U32 DeviceType; SK_U32 DeviceType;
char DriverDescr[SK_PNMI_STRINGLEN1]; char DriverDescr[SK_PNMI_STRINGLEN1];
char DriverVersion[SK_PNMI_STRINGLEN2]; char DriverVersion[SK_PNMI_STRINGLEN2];
char DriverReleaseDate[SK_PNMI_STRINGLEN1];
char DriverFileName[SK_PNMI_STRINGLEN1];
char HwDescr[SK_PNMI_STRINGLEN1]; char HwDescr[SK_PNMI_STRINGLEN1];
char HwVersion[SK_PNMI_STRINGLEN2]; char HwVersion[SK_PNMI_STRINGLEN2];
SK_U16 Chipset; SK_U16 Chipset;
SK_U32 ChipId;
SK_U8 VauxAvail;
SK_U32 RamSize;
SK_U32 MtuSize; SK_U32 MtuSize;
SK_U32 Action; SK_U32 Action;
SK_U32 TestResult; SK_U32 TestResult;
...@@ -1090,6 +1136,8 @@ typedef struct s_PnmiData { ...@@ -1090,6 +1136,8 @@ typedef struct s_PnmiData {
char *pDriverDescription; char *pDriverDescription;
char *pDriverVersion; char *pDriverVersion;
char *pDriverReleaseDate;
char *pDriverFileName;
int MacUpdatedFlag; int MacUpdatedFlag;
int RlmtUpdatedFlag; int RlmtUpdatedFlag;
...@@ -1119,6 +1167,9 @@ typedef struct s_PnmiData { ...@@ -1119,6 +1167,9 @@ typedef struct s_PnmiData {
SK_U8 VctStatus[SK_MAX_MACS]; SK_U8 VctStatus[SK_MAX_MACS];
SK_PNMI_VCT VctBackup[SK_MAX_MACS]; SK_PNMI_VCT VctBackup[SK_MAX_MACS];
SK_PNMI_VCT_TIMER VctTimeout[SK_MAX_MACS]; SK_PNMI_VCT_TIMER VctTimeout[SK_MAX_MACS];
#ifdef SK_DIAG_SUPPORT
SK_U32 DiagAttached;
#endif /* SK_DIAG_SUPPORT */
} SK_PNMI; } SK_PNMI;
......
/****************************************************************************** /******************************************************************************
* *
* Name: ski2c.h * Name: ski2c.h
* Project: GEnesis, PCI Gigabit Ethernet Adapter * Project: Gigabit Ethernet Adapters, TWSI-Module
* Version: $Revision: 1.34 $ * Version: $Revision: 1.35 $
* Date: $Date: 2003/01/28 09:11:21 $ * Date: $Date: 2003/10/20 09:06:30 $
* Purpose: Defines to access Voltage and Temperature Sensor * Purpose: Defines to access Voltage and Temperature Sensor
* *
******************************************************************************/ ******************************************************************************/
/****************************************************************************** /******************************************************************************
* *
* (C)Copyright 1998-2003 SysKonnect GmbH. * (C)Copyright 1998-2002 SysKonnect.
* (C)Copyright 2002-2003 Marvell.
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
...@@ -26,6 +27,10 @@ ...@@ -26,6 +27,10 @@
* History: * History:
* *
* $Log: ski2c.h,v $ * $Log: ski2c.h,v $
* Revision 1.35 2003/10/20 09:06:30 rschmidt
* Added prototypes for SkI2cRead() and SkI2cWrite().
* Editorial changes.
*
* Revision 1.34 2003/01/28 09:11:21 rschmidt * Revision 1.34 2003/01/28 09:11:21 rschmidt
* Editorial changes * Editorial changes
* *
...@@ -137,7 +142,6 @@ ...@@ -137,7 +142,6 @@
* Revision 1.1 1998/06/19 14:30:10 malthoff * Revision 1.1 1998/06/19 14:30:10 malthoff
* Created. Sources taken from ML Project. * Created. Sources taken from ML Project.
* *
*
******************************************************************************/ ******************************************************************************/
/* /*
...@@ -252,7 +256,7 @@ struct s_Sensor { ...@@ -252,7 +256,7 @@ struct s_Sensor {
SK_I32 SenThreWarnLow; /* Lower warning Threshold of the sensor */ SK_I32 SenThreWarnLow; /* Lower warning Threshold of the sensor */
int SenErrFlag; /* Sensor indicated an error */ int SenErrFlag; /* Sensor indicated an error */
SK_BOOL SenInit; /* Is sensor initialized ? */ SK_BOOL SenInit; /* Is sensor initialized ? */
SK_U64 SenErrCts; /* Error trap counter */ SK_U64 SenErrCts; /* Error trap counter */
SK_U64 SenWarnCts; /* Warning trap counter */ SK_U64 SenWarnCts; /* Warning trap counter */
SK_U64 SenBegErrTS; /* Begin error timestamp */ SK_U64 SenBegErrTS; /* Begin error timestamp */
SK_U64 SenBegWarnTS; /* Begin warning timestamp */ SK_U64 SenBegWarnTS; /* Begin warning timestamp */
...@@ -279,13 +283,17 @@ typedef struct s_I2c { ...@@ -279,13 +283,17 @@ typedef struct s_I2c {
#endif /* !SK_DIAG */ #endif /* !SK_DIAG */
} SK_I2C; } SK_I2C;
extern int SkI2cInit(SK_AC *pAC, SK_IOC IoC, int Level);
extern int SkI2cWrite(SK_AC *pAC, SK_IOC IoC, SK_U32 Data, int Dev, int Size,
int Reg, int Burst);
extern int SkI2cReadSensor(SK_AC *pAC, SK_IOC IoC, SK_SENSOR *pSen); extern int SkI2cReadSensor(SK_AC *pAC, SK_IOC IoC, SK_SENSOR *pSen);
#ifndef SK_DIAG #ifdef SK_DIAG
extern SK_U32 SkI2cRead(SK_AC *pAC, SK_IOC IoC, int Dev, int Size, int Reg,
int Burst);
#else /* !SK_DIAG */
extern int SkI2cEvent(SK_AC *pAC, SK_IOC IoC, SK_U32 Event, SK_EVPARA Para); extern int SkI2cEvent(SK_AC *pAC, SK_IOC IoC, SK_U32 Event, SK_EVPARA Para);
extern int SkI2cInit(SK_AC *pAC, SK_IOC IoC, int Level);
extern void SkI2cWaitIrq(SK_AC *pAC, SK_IOC IoC); extern void SkI2cWaitIrq(SK_AC *pAC, SK_IOC IoC);
extern void SkI2cIsr(SK_AC *pAC, SK_IOC IoC); extern void SkI2cIsr(SK_AC *pAC, SK_IOC IoC);
#endif /* !SK_DIAG */
#endif
#endif /* n_SKI2C_H */ #endif /* n_SKI2C_H */
/****************************************************************************** /******************************************************************************
* *
* Name: skqueue.h * Name: skqueue.h
* Project: Gigabit Ethernet Adapters, Schedule-Modul * Project: Gigabit Ethernet Adapters, Event Scheduler Module
* Version: $Revision: 1.15 $ * Version: $Revision: 1.16 $
* Date: $Date: 2003/05/13 17:54:57 $ * Date: $Date: 2003/09/16 12:50:32 $
* Purpose: Defines for the Event queue * Purpose: Defines for the Event queue
* *
******************************************************************************/ ******************************************************************************/
...@@ -27,6 +27,9 @@ ...@@ -27,6 +27,9 @@
* History: * History:
* *
* $Log: skqueue.h,v $ * $Log: skqueue.h,v $
* Revision 1.16 2003/09/16 12:50:32 rschmidt
* Editorial changes
*
* Revision 1.15 2003/05/13 17:54:57 mkarl * Revision 1.15 2003/05/13 17:54:57 mkarl
* Editorial changes. * Editorial changes.
* *
...@@ -47,7 +50,7 @@ ...@@ -47,7 +50,7 @@
* add: typedef SK_QUEUE * add: typedef SK_QUEUE
* *
* Revision 1.9 1998/08/19 09:50:59 gklug * Revision 1.9 1998/08/19 09:50:59 gklug
* fix: remove struct keyword from c-code (see CCC) add typedefs * fix: remove struct keyword from C-code (see CCC) add typedefs
* *
* Revision 1.8 1998/08/18 07:00:01 gklug * Revision 1.8 1998/08/18 07:00:01 gklug
* fix: SK_PTR not defined use void * instead. * fix: SK_PTR not defined use void * instead.
...@@ -74,8 +77,6 @@ ...@@ -74,8 +77,6 @@
* Revision 1.1 1998/07/30 14:52:12 gklug * Revision 1.1 1998/07/30 14:52:12 gklug
* Initial version. * Initial version.
* Defines Event Classes, Event structs and queue management variables. * Defines Event Classes, Event structs and queue management variables.
*
*
* *
******************************************************************************/ ******************************************************************************/
...@@ -92,7 +93,7 @@ ...@@ -92,7 +93,7 @@
*/ */
#define SKGE_DRV 1 /* Driver Event Class */ #define SKGE_DRV 1 /* Driver Event Class */
#define SKGE_RLMT 2 /* RLMT Event Class */ #define SKGE_RLMT 2 /* RLMT Event Class */
#define SKGE_I2C 3 /* i2C Event Class */ #define SKGE_I2C 3 /* I2C Event Class */
#define SKGE_PNMI 4 /* PNMI Event Class */ #define SKGE_PNMI 4 /* PNMI Event Class */
#define SKGE_CSUM 5 /* Checksum Event Class */ #define SKGE_CSUM 5 /* Checksum Event Class */
#define SKGE_HWAC 6 /* Hardware Access Event Class */ #define SKGE_HWAC 6 /* Hardware Access Event Class */
...@@ -121,25 +122,25 @@ typedef union u_EvPara { ...@@ -121,25 +122,25 @@ typedef union u_EvPara {
* Event Queue * Event Queue
* skqueue.c * skqueue.c
* events are class/value pairs * events are class/value pairs
* class is addressee, e.g. RMT, PCM etc. * class is addressee, e.g. RLMT, PNMI etc.
* value is command, e.g. line state change, ring op change etc. * value is command, e.g. line state change, ring op change etc.
*/ */
typedef struct s_EventElem { typedef struct s_EventElem {
SK_U32 Class ; /* Event class */ SK_U32 Class; /* Event class */
SK_U32 Event ; /* Event value */ SK_U32 Event; /* Event value */
SK_EVPARA Para ; /* Event parameter */ SK_EVPARA Para; /* Event parameter */
} SK_EVENTELEM; } SK_EVENTELEM;
typedef struct s_Queue { typedef struct s_Queue {
SK_EVENTELEM EvQueue[SK_MAX_EVENT]; SK_EVENTELEM EvQueue[SK_MAX_EVENT];
SK_EVENTELEM *EvPut ; SK_EVENTELEM *EvPut;
SK_EVENTELEM *EvGet ; SK_EVENTELEM *EvGet;
} SK_QUEUE; } SK_QUEUE;
extern void SkEventInit(SK_AC *pAC, SK_IOC Ioc, int Level); extern void SkEventInit(SK_AC *pAC, SK_IOC Ioc, int Level);
extern void SkEventQueue(SK_AC *pAC, SK_U32 Class, SK_U32 Event, extern void SkEventQueue(SK_AC *pAC, SK_U32 Class, SK_U32 Event,
SK_EVPARA Para); SK_EVPARA Para);
extern int SkEventDispatcher(SK_AC *pAC,SK_IOC Ioc); extern int SkEventDispatcher(SK_AC *pAC, SK_IOC Ioc);
/* Define Error Numbers and messages */ /* Define Error Numbers and messages */
......
/****************************************************************************** /******************************************************************************
* *
* Name: sktimer.h * Name: sktimer.h
* Project: Gigabit Ethernet Adapters, Schedule-Modul * Project: Gigabit Ethernet Adapters, Event Scheduler Module
* Version: $Revision: 1.10 $ * Version: $Revision: 1.11 $
* Date: $Date: 2003/05/13 17:56:44 $ * Date: $Date: 2003/09/16 12:58:18 $
* Purpose: Defines for the timer functions * Purpose: Defines for the timer functions
* *
******************************************************************************/ ******************************************************************************/
...@@ -27,6 +27,9 @@ ...@@ -27,6 +27,9 @@
* History: * History:
* *
* $Log: sktimer.h,v $ * $Log: sktimer.h,v $
* Revision 1.11 2003/09/16 12:58:18 rschmidt
* Editorial changes
*
* Revision 1.10 2003/05/13 17:56:44 mkarl * Revision 1.10 2003/05/13 17:56:44 mkarl
* Editorial changes. * Editorial changes.
* *
...@@ -40,7 +43,7 @@ ...@@ -40,7 +43,7 @@
* fix: SK_TIMCTRL needs to be defined * fix: SK_TIMCTRL needs to be defined
* *
* Revision 1.6 1998/08/19 09:51:00 gklug * Revision 1.6 1998/08/19 09:51:00 gklug
* fix: remove struct keyword from c-code (see CCC) add typedefs * fix: remove struct keyword from C-code (see CCC) add typedefs
* *
* Revision 1.5 1998/08/17 13:43:21 gklug * Revision 1.5 1998/08/17 13:43:21 gklug
* chg: Parameter will be union of 64bit para, 2 times SK_U32 or SK_PTR * chg: Parameter will be union of 64bit para, 2 times SK_U32 or SK_PTR
...@@ -78,25 +81,25 @@ ...@@ -78,25 +81,25 @@
typedef struct s_Timer SK_TIMER; typedef struct s_Timer SK_TIMER;
struct s_Timer { struct s_Timer {
SK_TIMER *TmNext ; /* linked list */ SK_TIMER *TmNext; /* linked list */
SK_U32 TmClass ; /* Timer Event class */ SK_U32 TmClass; /* Timer Event class */
SK_U32 TmEvent ; /* Timer Event value */ SK_U32 TmEvent; /* Timer Event value */
SK_EVPARA TmPara ; /* Timer Event parameter */ SK_EVPARA TmPara; /* Timer Event parameter */
SK_U32 TmDelta ; /* delta time */ SK_U32 TmDelta; /* delta time */
int TmActive ; /* flag : active/inactive */ int TmActive; /* flag: active/inactive */
} ; };
/* /*
* Timer control struct. * Timer control struct.
* - use in Adapters context name pAC->Tim * - use in Adapters context name pAC->Tim
*/ */
typedef struct s_TimCtrl { typedef struct s_TimCtrl {
SK_TIMER *StQueue ; /* Head of Timer queue */ SK_TIMER *StQueue; /* Head of Timer queue */
} SK_TIMCTRL ; } SK_TIMCTRL;
extern void SkTimerInit(SK_AC *pAC,SK_IOC Ioc, int Level); extern void SkTimerInit(SK_AC *pAC, SK_IOC Ioc, int Level);
extern void SkTimerStop(SK_AC *pAC,SK_IOC Ioc,SK_TIMER *pTimer); extern void SkTimerStop(SK_AC *pAC, SK_IOC Ioc, SK_TIMER *pTimer);
extern void SkTimerStart(SK_AC *pAC,SK_IOC Ioc,SK_TIMER *pTimer, extern void SkTimerStart(SK_AC *pAC, SK_IOC Ioc, SK_TIMER *pTimer,
SK_U32 Time,SK_U32 Class,SK_U32 Event,SK_EVPARA Para); SK_U32 Time, SK_U32 Class, SK_U32 Event, SK_EVPARA Para);
extern void SkTimerDone(SK_AC *pAC,SK_IOC Ioc); extern void SkTimerDone(SK_AC *pAC, SK_IOC Ioc);
#endif /* _SKTIMER_H_ */ #endif /* _SKTIMER_H_ */
...@@ -2,15 +2,16 @@ ...@@ -2,15 +2,16 @@
* *
* Name: sktypes.h * Name: sktypes.h
* Project: GEnesis, PCI Gigabit Ethernet Adapter * Project: GEnesis, PCI Gigabit Ethernet Adapter
* Version: $Revision: 1.1 $ * Version: $Revision: 1.2 $
* Date: $Date: 2003/07/21 07:26:01 $ * Date: $Date: 2003/10/07 08:16:51 $
* Purpose: Define data types for Linux * Purpose: Define data types for Linux
* *
******************************************************************************/ ******************************************************************************/
/****************************************************************************** /******************************************************************************
* *
* (C)Copyright 1998-2003 SysKonnect GmbH. * (C)Copyright 1998-2002 SysKonnect GmbH.
* (C)Copyright 2002-2003 Marvell.
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
...@@ -26,6 +27,9 @@ ...@@ -26,6 +27,9 @@
* History: * History:
* *
* $Log: sktypes.h,v $ * $Log: sktypes.h,v $
* Revision 1.2 2003/10/07 08:16:51 mlindner
* Fix: Copyright changes
*
* Revision 1.1 2003/07/21 07:26:01 rroesler * Revision 1.1 2003/07/21 07:26:01 rroesler
* Fix: Re-Enter after CVS crash * Fix: Re-Enter after CVS crash
* *
......
...@@ -2,15 +2,16 @@ ...@@ -2,15 +2,16 @@
* *
* Name: version.h * Name: version.h
* Project: GEnesis, PCI Gigabit Ethernet Adapter * Project: GEnesis, PCI Gigabit Ethernet Adapter
* Version: $Revision: 1.3 $ * Version: $Revision: 1.5 $
* Date: $Date: 2003/08/25 13:34:48 $ * Date: $Date: 2003/10/07 08:16:51 $
* Purpose: SK specific Error log support * Purpose: SK specific Error log support
* *
******************************************************************************/ ******************************************************************************/
/****************************************************************************** /******************************************************************************
* *
* (C)Copyright 1998-2003 SysKonnect GmbH. * (C)Copyright 1998-2002 SysKonnect GmbH.
* (C)Copyright 2002-2003 Marvell.
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
...@@ -25,6 +26,12 @@ ...@@ -25,6 +26,12 @@
* *
* History: * History:
* $Log: skversion.h,v $ * $Log: skversion.h,v $
* Revision 1.5 2003/10/07 08:16:51 mlindner
* Fix: Copyright changes
*
* Revision 1.4 2003/09/22 08:40:10 mlindner
* Add: Added DRIVER_FILE_NAME and DRIVER_REL_DATE
*
* Revision 1.3 2003/08/25 13:34:48 mlindner * Revision 1.3 2003/08/25 13:34:48 mlindner
* Fix: Lint changes * Fix: Lint changes
* *
...@@ -54,12 +61,14 @@ ...@@ -54,12 +61,14 @@
#ifdef lint #ifdef lint
static const char SysKonnectFileId[] = "@(#) (C) SysKonnect GmbH."; static const char SysKonnectFileId[] = "@(#) (C) SysKonnect GmbH.";
static const char SysKonnectBuildNumber[] = static const char SysKonnectBuildNumber[] =
"@(#)SK-BUILD: 6.18 PL: 01"; "@(#)SK-BUILD: 6.21 PL: 01";
#endif /* !defined(lint) */ #endif /* !defined(lint) */
#define BOOT_STRING "sk98lin: Network Device Driver v6.18\n" \ #define BOOT_STRING "sk98lin: Network Device Driver v6.21\n" \
"(C)Copyright 1999-2003 Marvell(R)." "(C)Copyright 1999-2003 Marvell(R)."
#define VER_STRING "6.18" #define VER_STRING "6.21"
#define DRIVER_FILE_NAME "sk98lin"
#define DRIVER_REL_DATE "Dec-15-2003"
This diff is collapsed.
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
* *
* Name: skcsum.c * Name: skcsum.c
* Project: GEnesis, PCI Gigabit Ethernet Adapter * Project: GEnesis, PCI Gigabit Ethernet Adapter
* Version: $Revision: 1.11 $ * Version: $Revision: 1.12 $
* Date: $Date: 2003/03/11 14:05:55 $ * Date: $Date: 2003/08/20 13:55:53 $
* Purpose: Store/verify Internet checksum in send/receive packets. * Purpose: Store/verify Internet checksum in send/receive packets.
* *
******************************************************************************/ ******************************************************************************/
...@@ -26,6 +26,10 @@ ...@@ -26,6 +26,10 @@
* History: * History:
* *
* $Log: skcsum.c,v $ * $Log: skcsum.c,v $
* Revision 1.12 2003/08/20 13:55:53 mschmid
* Changed notation of #ifndef SkCsCalculateChecksum to
* #ifndef SK_CS_CALCULATE_CHECKSUM
*
* Revision 1.11 2003/03/11 14:05:55 rschmidt * Revision 1.11 2003/03/11 14:05:55 rschmidt
* Replaced memset() by macro SK_MEMSET() * Replaced memset() by macro SK_MEMSET()
* Editorial changes * Editorial changes
...@@ -78,7 +82,7 @@ ...@@ -78,7 +82,7 @@
#ifndef lint #ifndef lint
static const char SysKonnectFileId[] = static const char SysKonnectFileId[] =
"@(#) $Id: skcsum.c,v 1.11 2003/03/11 14:05:55 rschmidt Exp $ (C) SysKonnect."; "@(#) $Id: skcsum.c,v 1.12 2003/08/20 13:55:53 mschmid Exp $ (C) SysKonnect.";
#endif /* !lint */ #endif /* !lint */
/****************************************************************************** /******************************************************************************
...@@ -791,7 +795,7 @@ int NetNumber) ...@@ -791,7 +795,7 @@ int NetNumber)
*pChecksum2Offset = SKCS_MAC_HEADER_SIZE + SKCS_IP_HEADER_SIZE; *pChecksum2Offset = SKCS_MAC_HEADER_SIZE + SKCS_IP_HEADER_SIZE;
} /* SkCsSetReceiveFlags */ } /* SkCsSetReceiveFlags */
#ifndef SkCsCalculateChecksum #ifndef SK_CS_CALCULATE_CHECKSUM
/****************************************************************************** /******************************************************************************
* *
...@@ -856,7 +860,7 @@ unsigned Length) /* Length of data. */ ...@@ -856,7 +860,7 @@ unsigned Length) /* Length of data. */
return ((unsigned) Checksum); return ((unsigned) Checksum);
} /* SkCsCalculateChecksum */ } /* SkCsCalculateChecksum */
#endif /* SkCsCalculateChecksum */ #endif /* SK_CS_CALCULATE_CHECKSUM */
/****************************************************************************** /******************************************************************************
* *
......
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
* *
* Name: skdim.c * Name: skdim.c
* Project: GEnesis, PCI Gigabit Ethernet Adapter * Project: GEnesis, PCI Gigabit Ethernet Adapter
* Version: $Revision: 1.2 $ * Version: $Revision: 1.5 $
* Date: $Date: 2003/08/21 12:35:05 $ * Date: $Date: 2003/11/28 12:55:40 $
* Purpose: All functions to maintain interrupt moderation * Purpose: All functions to maintain interrupt moderation
* *
******************************************************************************/ ******************************************************************************/
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
/****************************************************************************** /******************************************************************************
* *
* (C)Copyright 1998-2002 SysKonnect GmbH. * (C)Copyright 1998-2002 SysKonnect GmbH.
* (C)Copyright 2002-2003 Marvell.
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
...@@ -26,6 +27,15 @@ ...@@ -26,6 +27,15 @@
* History: * History:
* *
* $Log: skdim.c,v $ * $Log: skdim.c,v $
* Revision 1.5 2003/11/28 12:55:40 rroesler
* Fix: support for new process timing interface added
*
* Revision 1.4 2003/10/10 10:58:56 mlindner
* Fix: CPU detection under the kernel 2.6
*
* Revision 1.3 2003/10/07 08:17:08 mlindner
* Fix: Copyright changes
*
* Revision 1.2 2003/08/21 12:35:05 mlindner * Revision 1.2 2003/08/21 12:35:05 mlindner
* Fix: Corrected CPU detection and compile errors on single CPU machines * Fix: Corrected CPU detection and compile errors on single CPU machines
* *
...@@ -62,7 +72,7 @@ ...@@ -62,7 +72,7 @@
#ifndef lint #ifndef lint
static const char SysKonnectFileId[] = static const char SysKonnectFileId[] =
"@(#) $Id: skdim.c,v 1.2 2003/08/21 12:35:05 mlindner Exp $ (C) SysKonnect."; "@(#) $Id: skdim.c,v 1.5 2003/11/28 12:55:40 rroesler Exp $ (C) SysKonnect.";
#endif #endif
#define __SKADDR_C #define __SKADDR_C
...@@ -327,7 +337,9 @@ GetCurrentSystemLoad(SK_AC *pAC) { ...@@ -327,7 +337,9 @@ GetCurrentSystemLoad(SK_AC *pAC) {
** **
** struct kernel_stat kstat ** struct kernel_stat kstat
** **
** is not marked as an exported symbol ** is not marked as an exported symbol in the file
**
** kernel/ksyms.c
** **
** As a consequence, using this driver as KLM is not possible ** As a consequence, using this driver as KLM is not possible
** and any access of the structure kernel_stat via the ** and any access of the structure kernel_stat via the
......
This diff is collapsed.
/****************************************************************************** /******************************************************************************
* *
* Name: skgehwt.c * Name: skgehwt.c
* Project: Gigabit Ethernet Adapters, Common Modules * Project: Gigabit Ethernet Adapters, Event Scheduler Module
* Version: $Revision: 1.14 $ * Version: $Revision: 1.15 $
* Date: $Date: 2003/05/13 18:01:58 $ * Date: $Date: 2003/09/16 13:41:23 $
* Purpose: Hardware Timer. * Purpose: Hardware Timer
* *
******************************************************************************/ ******************************************************************************/
...@@ -27,6 +27,10 @@ ...@@ -27,6 +27,10 @@
* History: * History:
* *
* $Log: skgehwt.c,v $ * $Log: skgehwt.c,v $
* Revision 1.15 2003/09/16 13:41:23 rschmidt
* Added (C) Marvell to SysKonnectFileId
* Editorial changes
*
* Revision 1.14 2003/05/13 18:01:58 mkarl * Revision 1.14 2003/05/13 18:01:58 mkarl
* Editorial changes. * Editorial changes.
* *
...@@ -69,19 +73,15 @@ ...@@ -69,19 +73,15 @@
* *
* Revision 1.1 1998/08/05 11:28:36 gklug * Revision 1.1 1998/08/05 11:28:36 gklug
* first version: adapted from SMT/FDDI * first version: adapted from SMT/FDDI
*
*
*
* *
******************************************************************************/ ******************************************************************************/
/* /*
Event queue and dispatcher * Event queue and dispatcher
*/ */
#if (defined(DEBUG) || ((!defined(LINT)) && (!defined(SK_SLIM)))) #if (defined(DEBUG) || ((!defined(LINT)) && (!defined(SK_SLIM))))
static const char SysKonnectFileId[] = static const char SysKonnectFileId[] =
"$Header: /usr56/projects/ge/schedule/skgehwt.c,v 1.14 2003/05/13 18:01:58 mkarl Exp $" ; "@(#) $Id: skgehwt.c,v 1.15 2003/09/16 13:41:23 rschmidt Exp $ (C) Marvell.";
#endif #endif
#include "h/skdrv1st.h" /* Driver Specific Definitions */ #include "h/skdrv1st.h" /* Driver Specific Definitions */
...@@ -89,10 +89,7 @@ static const char SysKonnectFileId[] = ...@@ -89,10 +89,7 @@ static const char SysKonnectFileId[] =
#ifdef __C2MAN__ #ifdef __C2MAN__
/* /*
Hardware Timer function queue management. * Hardware Timer function queue management.
General Description:
*/ */
intro() intro()
{} {}
...@@ -117,9 +114,9 @@ SK_IOC Ioc) /* IoContext */ ...@@ -117,9 +114,9 @@ SK_IOC Ioc) /* IoContext */
{ {
pAC->Hwt.TStart = 0 ; pAC->Hwt.TStart = 0 ;
pAC->Hwt.TStop = 0 ; pAC->Hwt.TStop = 0 ;
pAC->Hwt.TActive = SK_FALSE ; pAC->Hwt.TActive = SK_FALSE;
SkHwtStop(pAC,Ioc) ; SkHwtStop(pAC, Ioc);
} }
/* /*
...@@ -132,28 +129,29 @@ SK_AC *pAC, /* Adapters context */ ...@@ -132,28 +129,29 @@ SK_AC *pAC, /* Adapters context */
SK_IOC Ioc, /* IoContext */ SK_IOC Ioc, /* IoContext */
SK_U32 Time) /* Time in units of 16us to load the timer with. */ SK_U32 Time) /* Time in units of 16us to load the timer with. */
{ {
SK_U32 Cnt ; SK_U32 Cnt;
if (Time > SK_HWT_MAX) if (Time > SK_HWT_MAX)
Time = SK_HWT_MAX ; Time = SK_HWT_MAX;
pAC->Hwt.TStart = Time ; pAC->Hwt.TStart = Time;
pAC->Hwt.TStop = 0L ; pAC->Hwt.TStop = 0L;
Cnt = Time ; Cnt = Time;
/* /*
* if time < 16 us * if time < 16 us
* time = 16 us * time = 16 us
*/ */
if (!Cnt) { if (!Cnt) {
Cnt++ ; Cnt++;
} }
SK_OUT32(Ioc, B2_TI_INI, Cnt * SK_HWT_FAC) ; SK_OUT32(Ioc, B2_TI_INI, Cnt * SK_HWT_FAC);
SK_OUT16(Ioc, B2_TI_CRTL, TIM_START) ; /* Start timer. */
SK_OUT16(Ioc, B2_TI_CTRL, TIM_START); /* Start timer. */
pAC->Hwt.TActive = SK_TRUE ; pAC->Hwt.TActive = SK_TRUE;
} }
/* /*
...@@ -164,10 +162,11 @@ void SkHwtStop( ...@@ -164,10 +162,11 @@ void SkHwtStop(
SK_AC *pAC, /* Adapters context */ SK_AC *pAC, /* Adapters context */
SK_IOC Ioc) /* IoContext */ SK_IOC Ioc) /* IoContext */
{ {
SK_OUT16(Ioc, B2_TI_CRTL, TIM_STOP) ; SK_OUT16(Ioc, B2_TI_CTRL, TIM_STOP);
SK_OUT16(Ioc, B2_TI_CRTL, TIM_CLR_IRQ) ;
SK_OUT16(Ioc, B2_TI_CTRL, TIM_CLR_IRQ);
pAC->Hwt.TActive = SK_FALSE ; pAC->Hwt.TActive = SK_FALSE;
} }
...@@ -182,26 +181,31 @@ SK_U32 SkHwtRead( ...@@ -182,26 +181,31 @@ SK_U32 SkHwtRead(
SK_AC *pAC, /* Adapters context */ SK_AC *pAC, /* Adapters context */
SK_IOC Ioc) /* IoContext */ SK_IOC Ioc) /* IoContext */
{ {
SK_U32 TRead ; SK_U32 TRead;
SK_U32 IStatus ; SK_U32 IStatus;
if (pAC->Hwt.TActive) { if (pAC->Hwt.TActive) {
SkHwtStop(pAC,Ioc) ;
SkHwtStop(pAC, Ioc);
SK_IN32(Ioc, B2_TI_VAL, &TRead); SK_IN32(Ioc, B2_TI_VAL, &TRead);
TRead /= SK_HWT_FAC; TRead /= SK_HWT_FAC;
SK_IN32(Ioc, B0_ISRC, &IStatus); SK_IN32(Ioc, B0_ISRC, &IStatus);
/* Check if timer expired (or wraparound). */ /* Check if timer expired (or wraped around) */
if ((TRead > pAC->Hwt.TStart) || (IStatus & IS_TIMINT)) { if ((TRead > pAC->Hwt.TStart) || (IStatus & IS_TIMINT)) {
SkHwtStop(pAC,Ioc) ;
pAC->Hwt.TStop = pAC->Hwt.TStart ; SkHwtStop(pAC, Ioc);
} else {
pAC->Hwt.TStop = pAC->Hwt.TStart - TRead ; pAC->Hwt.TStop = pAC->Hwt.TStart;
}
else {
pAC->Hwt.TStop = pAC->Hwt.TStart - TRead;
} }
} }
return (pAC->Hwt.TStop) ; return(pAC->Hwt.TStop);
} }
/* /*
...@@ -211,9 +215,11 @@ void SkHwtIsr( ...@@ -211,9 +215,11 @@ void SkHwtIsr(
SK_AC *pAC, /* Adapters context */ SK_AC *pAC, /* Adapters context */
SK_IOC Ioc) /* IoContext */ SK_IOC Ioc) /* IoContext */
{ {
SkHwtStop(pAC,Ioc); SkHwtStop(pAC, Ioc);
pAC->Hwt.TStop = pAC->Hwt.TStart; pAC->Hwt.TStop = pAC->Hwt.TStart;
SkTimerDone(pAC,Ioc) ;
SkTimerDone(pAC, Ioc);
} }
/* End of file */ /* End of file */
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
* *
* Name: skgeinit.c * Name: skgeinit.c
* Project: Gigabit Ethernet Adapters, Common Modules * Project: Gigabit Ethernet Adapters, Common Modules
* Version: $Revision: 1.93 $ * Version: $Revision: 1.97 $
* Date: $Date: 2003/05/28 15:44:43 $ * Date: $Date: 2003/10/02 16:45:31 $
* Purpose: Contains functions to initialize the adapter * Purpose: Contains functions to initialize the adapter
* *
******************************************************************************/ ******************************************************************************/
...@@ -27,6 +27,32 @@ ...@@ -27,6 +27,32 @@
* History: * History:
* *
* $Log: skgeinit.c,v $ * $Log: skgeinit.c,v $
* Revision 1.97 2003/10/02 16:45:31 rschmidt
* Replaced default values of GMAC parameters with defines.
* Removed hard reset of MACs in SkGeDeInit().
* Added define SK_PHY_LP_MODE around power saving mode in SkGeDeInit().
* Added check for VAUX available before switch power to VAUX.
*
* Revision 1.96 2003/09/18 14:02:41 rroesler
* Add: Perform a hardreset of MACs in GeDeInit()
*
* Revision 1.95 2003/09/16 14:26:59 rschmidt
* Added switch power to VCC (WA for VAUX problem) in SkGeInit1().
* Fixed setting PHY to coma mode and D3 power state in SkGeDeInit().
* Editorial changes.
*
* Revision 1.94 2003/09/16 07:17:10 mschmid
* Added init for new members in port structure for MAC control
* - PMacColThres
* - PMacJamLen
* - PMacJamIpgVal
* - PMacJamIpgData
* - PMacIpgData
* - PMacLimit4
* Added init for PHY power state in port structure
* - PPhyPowerState
* Added shutdown handling for Yukon Plus in SkGeDeInit()
*
* Revision 1.93 2003/05/28 15:44:43 rschmidt * Revision 1.93 2003/05/28 15:44:43 rschmidt
* Added check for chip Id on WOL WA for chip Rev. A. * Added check for chip Id on WOL WA for chip Rev. A.
* Added setting of GILevel in SkGeDeInit(). * Added setting of GILevel in SkGeDeInit().
...@@ -446,7 +472,7 @@ ...@@ -446,7 +472,7 @@
#if (defined(DEBUG) || ((!defined(LINT)) && (!defined(SK_SLIM)))) #if (defined(DEBUG) || ((!defined(LINT)) && (!defined(SK_SLIM))))
static const char SysKonnectFileId[] = static const char SysKonnectFileId[] =
"@(#) $Id: skgeinit.c,v 1.93 2003/05/28 15:44:43 rschmidt Exp $ (C) Marvell."; "@(#) $Id: skgeinit.c,v 1.97 2003/10/02 16:45:31 rschmidt Exp $ (C) Marvell.";
#endif #endif
struct s_QOffTab { struct s_QOffTab {
...@@ -1013,8 +1039,6 @@ int Port) /* Port Index (MAC_1 + n) */ ...@@ -1013,8 +1039,6 @@ int Port) /* Port Index (MAC_1 + n) */
* - enable the FIFO * - enable the FIFO
*/ */
Word = (SK_U16)GMF_RX_CTRL_DEF;
#ifdef GENESIS #ifdef GENESIS
if (pAC->GIni.GIGenesis) { if (pAC->GIni.GIGenesis) {
/* Configure Rx MAC FIFO */ /* Configure Rx MAC FIFO */
...@@ -1039,6 +1063,8 @@ int Port) /* Port Index (MAC_1 + n) */ ...@@ -1039,6 +1063,8 @@ int Port) /* Port Index (MAC_1 + n) */
/* set Rx GMAC FIFO Flush Mask */ /* set Rx GMAC FIFO Flush Mask */
SK_OUT16(IoC, MR_ADDR(Port, RX_GMF_FL_MSK), (SK_U16)RX_FF_FL_DEF_MSK); SK_OUT16(IoC, MR_ADDR(Port, RX_GMF_FL_MSK), (SK_U16)RX_FF_FL_DEF_MSK);
Word = (SK_U16)GMF_RX_CTRL_DEF;
/* disable Rx GMAC FIFO Flush for YUKON-Lite Rev. A0 only */ /* disable Rx GMAC FIFO Flush for YUKON-Lite Rev. A0 only */
if (pAC->GIni.GIYukonLite && pAC->GIni.GIChipId == CHIP_ID_YUKON) { if (pAC->GIni.GIYukonLite && pAC->GIni.GIChipId == CHIP_ID_YUKON) {
...@@ -1809,6 +1835,13 @@ SK_IOC IoC) /* IO context */ ...@@ -1809,6 +1835,13 @@ SK_IOC IoC) /* IO context */
pPrt->PAutoNegFail = SK_FALSE; pPrt->PAutoNegFail = SK_FALSE;
pPrt->PHWLinkUp = SK_FALSE; pPrt->PHWLinkUp = SK_FALSE;
pPrt->PLinkBroken = SK_TRUE; /* See WA code */ pPrt->PLinkBroken = SK_TRUE; /* See WA code */
pPrt->PPhyPowerState = PHY_PM_OPERATIONAL_MODE;
pPrt->PMacColThres = TX_COL_DEF;
pPrt->PMacJamLen = TX_JAM_LEN_DEF;
pPrt->PMacJamIpgVal = TX_JAM_IPG_DEF;
pPrt->PMacJamIpgData = TX_IPG_JAM_DEF;
pPrt->PMacIpgData = IPG_DATA_DEF;
pPrt->PMacLimit4 = SK_FALSE;
} }
pAC->GIni.GIPortUsage = SK_RED_LINK; pAC->GIni.GIPortUsage = SK_RED_LINK;
...@@ -1963,7 +1996,7 @@ SK_IOC IoC) /* IO context */ ...@@ -1963,7 +1996,7 @@ SK_IOC IoC) /* IO context */
/* restore CLK_RUN bits */ /* restore CLK_RUN bits */
SK_OUT16(IoC, B0_CTST, (SK_U16)(CtrlStat & SK_OUT16(IoC, B0_CTST, (SK_U16)(CtrlStat &
(CS_CLK_RUN_HOT | CS_CLK_RUN_RST | CS_CLK_RUN_ENA))); (CS_CLK_RUN_HOT | CS_CLK_RUN_RST | CS_CLK_RUN_ENA)));
/* read Chip Identification Number */ /* read Chip Identification Number */
SK_IN8(IoC, B2_CHIP_ID, &Byte); SK_IN8(IoC, B2_CHIP_ID, &Byte);
pAC->GIni.GIChipId = Byte; pAC->GIni.GIChipId = Byte;
...@@ -2053,6 +2086,10 @@ SK_IOC IoC) /* IO context */ ...@@ -2053,6 +2086,10 @@ SK_IOC IoC) /* IO context */
} }
} }
/* switch power to VCC (WA for VAUX problem) */
SK_OUT8(IoC, B0_POWER_CTRL, (SK_U8)(PC_VAUX_ENA | PC_VCC_ENA |
PC_VAUX_OFF | PC_VCC_ON));
/* read the Interrupt source */ /* read the Interrupt source */
SK_IN32(IoC, B0_ISRC, &DWord); SK_IN32(IoC, B0_ISRC, &DWord);
...@@ -2395,6 +2432,11 @@ SK_IOC IoC) /* IO context */ ...@@ -2395,6 +2432,11 @@ SK_IOC IoC) /* IO context */
int i; int i;
SK_U16 Word; SK_U16 Word;
#ifdef SK_PHY_LP_MODE
SK_U8 Byte;
SK_U16 PmCtlSts;
#endif /* SK_PHY_LP_MODE */
#if (!defined(SK_SLIM) && !defined(VCPU)) #if (!defined(SK_SLIM) && !defined(VCPU))
/* ensure I2C is ready */ /* ensure I2C is ready */
SkI2cWaitIrq(pAC, IoC); SkI2cWaitIrq(pAC, IoC);
...@@ -2409,6 +2451,38 @@ SK_IOC IoC) /* IO context */ ...@@ -2409,6 +2451,38 @@ SK_IOC IoC) /* IO context */
} }
} }
#ifdef SK_PHY_LP_MODE
/*
* for power saving purposes within mobile environments
* we set the PHY to coma mode and switch to D3 power state.
*/
if (pAC->GIni.GIYukonLite &&
pAC->GIni.GIChipRev == CHIP_REV_YU_LITE_A3) {
/* for all ports switch PHY to coma mode */
for (i = 0; i < pAC->GIni.GIMacsFound; i++) {
SkGmEnterLowPowerMode(pAC, IoC, i, PHY_PM_DEEP_SLEEP);
}
if (pAC->GIni.GIVauxAvail) {
/* switch power to VAUX */
Byte = PC_VAUX_ENA | PC_VCC_ENA | PC_VAUX_ON | PC_VCC_OFF;
SK_OUT8(IoC, B0_POWER_CTRL, Byte);
}
/* switch to D3 state */
SK_IN16(IoC, PCI_C(PCI_PM_CTL_STS), &PmCtlSts);
PmCtlSts |= PCI_PM_STATE_D3;
SK_OUT8(IoC, B2_TST_CTRL1, TST_CFG_WRITE_ON);
SK_OUT16(IoC, PCI_C(PCI_PM_CTL_STS), PmCtlSts);
}
#endif /* SK_PHY_LP_MODE */
/* Reset all bits in the PCI STATUS register */ /* Reset all bits in the PCI STATUS register */
/* /*
* Note: PCI Cfg cycles cannot be used, because they are not * Note: PCI Cfg cycles cannot be used, because they are not
......
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
* *
* Name: skgemib.c * Name: skgemib.c
* Project: GEnesis, PCI Gigabit Ethernet Adapter * Project: GEnesis, PCI Gigabit Ethernet Adapter
* Version: $Revision: 1.9 $ * Version: $Revision: 1.11 $
* Date: $Date: 2003/05/23 12:55:20 $ * Date: $Date: 2003/09/15 13:38:12 $
* Purpose: Private Network Management Interface Management Database * Purpose: Private Network Management Interface Management Database
* *
****************************************************************************/ ****************************************************************************/
...@@ -27,6 +27,19 @@ ...@@ -27,6 +27,19 @@
* History: * History:
* *
* $Log: skgemib.c,v $ * $Log: skgemib.c,v $
* Revision 1.11 2003/09/15 13:38:12 tschilli
* OID_SKGE_PHY_LP_MODE included only after using #define SK_PHY_LP_MODE.
*
* Revision 1.10 2003/08/15 12:28:59 tschilli
* Added new OIDs:
* OID_SKGE_DRIVER_RELDATE
* OID_SKGE_DRIVER_FILENAME
* OID_SKGE_CHIPID
* OID_SKGE_RAMSIZE
* OID_SKGE_VAUXAVAIL
* OID_SKGE_PHY_TYPE
* OID_SKGE_PHY_LP_MODE
*
* Revision 1.9 2003/05/23 12:55:20 tschilli * Revision 1.9 2003/05/23 12:55:20 tschilli
* OID_SKGE_BOARDLEVEL added. * OID_SKGE_BOARDLEVEL added.
* *
...@@ -356,6 +369,16 @@ PNMI_STATIC const SK_PNMI_TAB_ENTRY IdTable[] = { ...@@ -356,6 +369,16 @@ PNMI_STATIC const SK_PNMI_TAB_ENTRY IdTable[] = {
0, 0,
SK_PNMI_MAI_OFF(DriverVersion), SK_PNMI_MAI_OFF(DriverVersion),
SK_PNMI_RO, General, 0}, SK_PNMI_RO, General, 0},
{OID_SKGE_DRIVER_RELDATE,
1,
0,
SK_PNMI_MAI_OFF(DriverReleaseDate),
SK_PNMI_RO, General, 0},
{OID_SKGE_DRIVER_FILENAME,
1,
0,
SK_PNMI_MAI_OFF(DriverFileName),
SK_PNMI_RO, General, 0},
{OID_SKGE_HW_DESCR, {OID_SKGE_HW_DESCR,
1, 1,
0, 0,
...@@ -371,6 +394,21 @@ PNMI_STATIC const SK_PNMI_TAB_ENTRY IdTable[] = { ...@@ -371,6 +394,21 @@ PNMI_STATIC const SK_PNMI_TAB_ENTRY IdTable[] = {
0, 0,
SK_PNMI_MAI_OFF(Chipset), SK_PNMI_MAI_OFF(Chipset),
SK_PNMI_RO, General, 0}, SK_PNMI_RO, General, 0},
{OID_SKGE_CHIPID,
1,
0,
SK_PNMI_MAI_OFF(ChipId),
SK_PNMI_RO, General, 0},
{OID_SKGE_RAMSIZE,
1,
0,
SK_PNMI_MAI_OFF(RamSize),
SK_PNMI_RO, General, 0},
{OID_SKGE_VAUXAVAIL,
1,
0,
SK_PNMI_MAI_OFF(VauxAvail),
SK_PNMI_RO, General, 0},
{OID_SKGE_ACTION, {OID_SKGE_ACTION,
1, 1,
0, 0,
...@@ -876,6 +914,18 @@ PNMI_STATIC const SK_PNMI_TAB_ENTRY IdTable[] = { ...@@ -876,6 +914,18 @@ PNMI_STATIC const SK_PNMI_TAB_ENTRY IdTable[] = {
sizeof(SK_PNMI_CONF), sizeof(SK_PNMI_CONF),
SK_PNMI_OFF(Conf) + SK_PNMI_CNF_OFF(ConfConnector), SK_PNMI_OFF(Conf) + SK_PNMI_CNF_OFF(ConfConnector),
SK_PNMI_RO, MacPrivateConf, 0}, SK_PNMI_RO, MacPrivateConf, 0},
{OID_SKGE_PHY_TYPE,
SK_PNMI_MAC_ENTRIES,
sizeof(SK_PNMI_CONF),
SK_PNMI_OFF(Conf) + SK_PNMI_CNF_OFF(ConfPhyType),
SK_PNMI_RO, MacPrivateConf, 0},
#ifdef SK_PHY_LP_MODE
{OID_SKGE_PHY_LP_MODE,
SK_PNMI_MAC_ENTRIES,
sizeof(SK_PNMI_CONF),
SK_PNMI_OFF(Conf) + SK_PNMI_CNF_OFF(ConfPhyMode),
SK_PNMI_RW, MacPrivateConf, 0},
#endif
{OID_SKGE_LINK_CAP, {OID_SKGE_LINK_CAP,
SK_PNMI_MAC_ENTRIES, SK_PNMI_MAC_ENTRIES,
sizeof(SK_PNMI_CONF), sizeof(SK_PNMI_CONF),
......
This diff is collapsed.
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
* *
* Name: skgesirq.c * Name: skgesirq.c
* Project: Gigabit Ethernet Adapters, Common Modules * Project: Gigabit Ethernet Adapters, Common Modules
* Version: $Revision: 1.91 $ * Version: $Revision: 1.92 $
* Date: $Date: 2003/07/04 12:46:22 $ * Date: $Date: 2003/09/16 14:37:07 $
* Purpose: Special IRQ module * Purpose: Special IRQ module
* *
******************************************************************************/ ******************************************************************************/
...@@ -27,6 +27,12 @@ ...@@ -27,6 +27,12 @@
* History: * History:
* *
* $Log: skgesirq.c,v $ * $Log: skgesirq.c,v $
* Revision 1.92 2003/09/16 14:37:07 rschmidt
* Added debug messages in some SkGePortCheckUp...() routines.
* Fixed compiler warnings for different types.
* Avoided port check up in reset state (eg. coma mode).
* Editorial changes.
*
* Revision 1.91 2003/07/04 12:46:22 rschmidt * Revision 1.91 2003/07/04 12:46:22 rschmidt
* Added debug messages in SkGePortCheckUpGmac(). * Added debug messages in SkGePortCheckUpGmac().
* Added error log message and new driver event SK_DRV_DOWNSHIFT_DET * Added error log message and new driver event SK_DRV_DOWNSHIFT_DET
...@@ -410,7 +416,7 @@ ...@@ -410,7 +416,7 @@
#if (defined(DEBUG) || ((!defined(LINT)) && (!defined(SK_SLIM)))) #if (defined(DEBUG) || ((!defined(LINT)) && (!defined(SK_SLIM))))
static const char SysKonnectFileId[] = static const char SysKonnectFileId[] =
"@(#) $Id: skgesirq.c,v 1.91 2003/07/04 12:46:22 rschmidt Exp $ (C) Marvell."; "@(#) $Id: skgesirq.c,v 1.92 2003/09/16 14:37:07 rschmidt Exp $ (C) Marvell.";
#endif #endif
#include "h/skdrv1st.h" /* Driver Specific Definitions */ #include "h/skdrv1st.h" /* Driver Specific Definitions */
...@@ -490,7 +496,7 @@ int Port) /* Port Index (MAC_1 + n) */ ...@@ -490,7 +496,7 @@ int Port) /* Port Index (MAC_1 + n) */
("AutoSensing: First mode %d on Port %d\n", ("AutoSensing: First mode %d on Port %d\n",
(int)SK_LMODE_AUTOFULL, Port)); (int)SK_LMODE_AUTOFULL, Port));
pPrt->PLinkMode = SK_LMODE_AUTOFULL; pPrt->PLinkMode = (SK_U8)SK_LMODE_AUTOFULL;
return; return;
} /* SkHWInitDefSense */ } /* SkHWInitDefSense */
...@@ -606,7 +612,7 @@ int Port) /* Port Index (MAC_1 + n) */ ...@@ -606,7 +612,7 @@ int Port) /* Port Index (MAC_1 + n) */
/* Reset Port stati */ /* Reset Port stati */
pPrt->PLinkModeStatus = (SK_U8)SK_LMODE_STAT_UNKNOWN; pPrt->PLinkModeStatus = (SK_U8)SK_LMODE_STAT_UNKNOWN;
pPrt->PFlowCtrlStatus = (SK_U8)SK_FLOW_STAT_NONE; pPrt->PFlowCtrlStatus = (SK_U8)SK_FLOW_STAT_NONE;
pPrt->PLinkSpeedUsed = SK_LSPEED_STAT_INDETERMINATED; pPrt->PLinkSpeedUsed = (SK_U8)SK_LSPEED_STAT_INDETERMINATED;
/* Re-init Phy especially when the AutoSense default is set now */ /* Re-init Phy especially when the AutoSense default is set now */
SkMacInitPhy(pAC, IoC, Port, SK_FALSE); SkMacInitPhy(pAC, IoC, Port, SK_FALSE);
...@@ -655,19 +661,19 @@ int Port) /* Port Index (MAC_1 + n) */ ...@@ -655,19 +661,19 @@ int Port) /* Port Index (MAC_1 + n) */
case SK_LSPEED_AUTO: case SK_LSPEED_AUTO:
/* default is 1000 Mbps */ /* default is 1000 Mbps */
case SK_LSPEED_1000MBPS: case SK_LSPEED_1000MBPS:
pPrt->PLinkSpeedUsed = SK_LSPEED_STAT_1000MBPS; pPrt->PLinkSpeedUsed = (SK_U8)SK_LSPEED_STAT_1000MBPS;
break; break;
case SK_LSPEED_100MBPS: case SK_LSPEED_100MBPS:
pPrt->PLinkSpeedUsed = SK_LSPEED_STAT_100MBPS; pPrt->PLinkSpeedUsed = (SK_U8)SK_LSPEED_STAT_100MBPS;
break; break;
case SK_LSPEED_10MBPS: case SK_LSPEED_10MBPS:
pPrt->PLinkSpeedUsed = SK_LSPEED_STAT_10MBPS; pPrt->PLinkSpeedUsed = (SK_U8)SK_LSPEED_STAT_10MBPS;
break; break;
} }
/* Set Link Mode Status */ /* Set Link Mode Status */
if (pPrt->PLinkMode == SK_LMODE_FULL) { if (pPrt->PLinkMode == SK_LMODE_FULL) {
pPrt->PLinkModeStatus = SK_LMODE_STAT_FULL; pPrt->PLinkModeStatus = (SK_U8)SK_LMODE_STAT_FULL;
} }
else { else {
pPrt->PLinkModeStatus = (SK_U8)SK_LMODE_STAT_HALF; pPrt->PLinkModeStatus = (SK_U8)SK_LMODE_STAT_HALF;
...@@ -1598,8 +1604,7 @@ SK_BOOL AutoNeg) /* Is Auto-negotiation used ? */ ...@@ -1598,8 +1604,7 @@ SK_BOOL AutoNeg) /* Is Auto-negotiation used ? */
* (clear Page Received bit if set) * (clear Page Received bit if set)
*/ */
SkXmPhyRead(pAC, IoC, Port, PHY_XMAC_AUNE_EXP, &ExtStat); SkXmPhyRead(pAC, IoC, Port, PHY_XMAC_AUNE_EXP, &ExtStat);
SK_DBG_MSG(pAC, SK_DBGMOD_HWM, SK_DBGCAT_CTRL,
("AutoNeg done Port %d\n", Port));
return(SK_HW_PS_LINK); return(SK_HW_PS_LINK);
} }
...@@ -1870,7 +1875,7 @@ SK_BOOL AutoNeg) /* Is Auto-negotiation used ? */ ...@@ -1870,7 +1875,7 @@ SK_BOOL AutoNeg) /* Is Auto-negotiation used ? */
SkMacAutoNegLipaPhy(pAC, IoC, Port, PhyStat); SkMacAutoNegLipaPhy(pAC, IoC, Port, PhyStat);
SK_DBG_MSG(pAC, SK_DBGMOD_HWM, SK_DBGCAT_CTRL, SK_DBG_MSG(pAC, SK_DBGMOD_HWM, SK_DBGCAT_CTRL,
("AutoNeg: %d, PhyStat: 0x%04X\n", AutoNeg, PhyStat)); ("CheckUp Port %d, PhyStat: 0x%04X\n", Port, PhyStat));
SkXmPhyRead(pAC, IoC, Port, PHY_BCOM_1000T_STAT, &ResAb); SkXmPhyRead(pAC, IoC, Port, PHY_BCOM_1000T_STAT, &ResAb);
...@@ -1897,8 +1902,11 @@ SK_BOOL AutoNeg) /* Is Auto-negotiation used ? */ ...@@ -1897,8 +1902,11 @@ SK_BOOL AutoNeg) /* Is Auto-negotiation used ? */
if (AutoNeg) { if (AutoNeg) {
if ((PhyStat & PHY_ST_AN_OVER) != 0) { if ((PhyStat & PHY_ST_AN_OVER) != 0) {
SkHWLinkUp(pAC, IoC, Port); SkHWLinkUp(pAC, IoC, Port);
Done = SkMacAutoNegDone(pAC, IoC, Port); Done = SkMacAutoNegDone(pAC, IoC, Port);
if (Done != SK_AND_OK) { if (Done != SK_AND_OK) {
#ifdef DEBUG #ifdef DEBUG
/* Get PHY parameters, for debugging only */ /* Get PHY parameters, for debugging only */
...@@ -1924,9 +1932,6 @@ SK_BOOL AutoNeg) /* Is Auto-negotiation used ? */ ...@@ -1924,9 +1932,6 @@ SK_BOOL AutoNeg) /* Is Auto-negotiation used ? */
(void *)NULL); (void *)NULL);
} }
#endif /* DEBUG */ #endif /* DEBUG */
SK_DBG_MSG(pAC, SK_DBGMOD_HWM, SK_DBGCAT_CTRL,
("AutoNeg done Port %d\n", Port));
return(SK_HW_PS_LINK); return(SK_HW_PS_LINK);
} }
} }
...@@ -1989,9 +1994,22 @@ SK_BOOL AutoNeg) /* Is Auto-negotiation used ? */ ...@@ -1989,9 +1994,22 @@ SK_BOOL AutoNeg) /* Is Auto-negotiation used ? */
SK_U16 PhySpecStat;/* PHY Specific Status */ SK_U16 PhySpecStat;/* PHY Specific Status */
SK_U16 ResAb; /* Master/Slave resolution */ SK_U16 ResAb; /* Master/Slave resolution */
SK_EVPARA Para; SK_EVPARA Para;
#ifdef DEBUG
SK_U16 Word; /* I/O helper */
#endif /* DEBUG */
pPrt = &pAC->GIni.GP[Port]; pPrt = &pAC->GIni.GP[Port];
if (pPrt->PHWLinkUp) {
return(SK_HW_PS_NONE);
}
/* Read PHY Status */
SkGmPhyRead(pAC, IoC, Port, PHY_MARV_STAT, &PhyStat);
SK_DBG_MSG(pAC, SK_DBGMOD_HWM, SK_DBGCAT_CTRL,
("CheckUp Port %d, PhyStat: 0x%04X\n", Port, PhyStat));
/* Read PHY Interrupt Status */ /* Read PHY Interrupt Status */
SkGmPhyRead(pAC, IoC, Port, PHY_MARV_INT_STAT, &PhyIsrc); SkGmPhyRead(pAC, IoC, Port, PHY_MARV_INT_STAT, &PhyIsrc);
...@@ -2005,16 +2023,6 @@ SK_BOOL AutoNeg) /* Is Auto-negotiation used ? */ ...@@ -2005,16 +2023,6 @@ SK_BOOL AutoNeg) /* Is Auto-negotiation used ? */
("Link Speed Changed, PhyIsrc: 0x%04X\n", PhyIsrc)); ("Link Speed Changed, PhyIsrc: 0x%04X\n", PhyIsrc));
} }
if (pPrt->PHWLinkUp) {
return(SK_HW_PS_NONE);
}
/* Read PHY Status */
SkGmPhyRead(pAC, IoC, Port, PHY_MARV_STAT, &PhyStat);
SK_DBG_MSG(pAC, SK_DBGMOD_HWM, SK_DBGCAT_CTRL,
("AutoNeg: %d, PhyStat: 0x%04X\n", AutoNeg, PhyStat));
SkMacAutoNegLipaPhy(pAC, IoC, Port, PhyStat); SkMacAutoNegLipaPhy(pAC, IoC, Port, PhyStat);
SkGmPhyRead(pAC, IoC, Port, PHY_MARV_1000T_STAT, &ResAb); SkGmPhyRead(pAC, IoC, Port, PHY_MARV_1000T_STAT, &ResAb);
...@@ -2034,7 +2042,20 @@ SK_BOOL AutoNeg) /* Is Auto-negotiation used ? */ ...@@ -2034,7 +2042,20 @@ SK_BOOL AutoNeg) /* Is Auto-negotiation used ? */
SkGmPhyRead(pAC, IoC, Port, PHY_MARV_PHY_STAT, &PhySpecStat); SkGmPhyRead(pAC, IoC, Port, PHY_MARV_PHY_STAT, &PhySpecStat);
SK_DBG_MSG(pAC, SK_DBGMOD_HWM, SK_DBGCAT_CTRL, SK_DBG_MSG(pAC, SK_DBGMOD_HWM, SK_DBGCAT_CTRL,
("AutoNeg: %d, PhySpecStat: 0x%04X\n", AutoNeg, PhySpecStat)); ("Phy1000BT: 0x%04X, PhySpecStat: 0x%04X\n", ResAb, PhySpecStat));
#ifdef DEBUG
SkGmPhyRead(pAC, IoC, Port, PHY_MARV_AUNE_EXP, &Word);
if ((PhyIsrc & PHY_M_IS_AN_PR) != 0 || (Word & PHY_ANE_RX_PG) != 0 ||
(PhySpecStat & PHY_M_PS_PAGE_REC) != 0) {
/* Read PHY Next Page Link Partner */
SkGmPhyRead(pAC, IoC, Port, PHY_MARV_NEPG_LP, &Word);
SK_DBG_MSG(pAC, SK_DBGMOD_HWM, SK_DBGCAT_CTRL,
("Page Received, NextPage: 0x%04X\n", Word));
}
#endif /* DEBUG */
if ((PhySpecStat & PHY_M_PS_LINK_UP) == 0) { if ((PhySpecStat & PHY_M_PS_LINK_UP) == 0) {
return(SK_HW_PS_NONE); return(SK_HW_PS_NONE);
...@@ -2069,8 +2090,6 @@ SK_BOOL AutoNeg) /* Is Auto-negotiation used ? */ ...@@ -2069,8 +2090,6 @@ SK_BOOL AutoNeg) /* Is Auto-negotiation used ? */
return(SK_HW_PS_RESTART); return(SK_HW_PS_RESTART);
} }
SK_DBG_MSG(pAC, SK_DBGMOD_HWM, SK_DBGCAT_CTRL,
("AutoNeg done Port %d\n", Port));
return(SK_HW_PS_LINK); return(SK_HW_PS_LINK);
} }
} }
...@@ -2179,8 +2198,6 @@ SK_BOOL AutoNeg) /* Is Auto-negotiation used ? */ ...@@ -2179,8 +2198,6 @@ SK_BOOL AutoNeg) /* Is Auto-negotiation used ? */
* extra link down/ups * extra link down/ups
*/ */
SkXmPhyRead(pAC, IoC, Port, PHY_LONE_INT_STAT, &ExtStat); SkXmPhyRead(pAC, IoC, Port, PHY_LONE_INT_STAT, &ExtStat);
SK_DBG_MSG(pAC, SK_DBGMOD_HWM, SK_DBGCAT_CTRL,
("AutoNeg done Port %d\n", Port));
return(SK_HW_PS_LINK); return(SK_HW_PS_LINK);
} }
} }
...@@ -2278,8 +2295,14 @@ SK_EVPARA Para) /* Event specific Parameter */ ...@@ -2278,8 +2295,14 @@ SK_EVPARA Para) /* Event specific Parameter */
switch (Event) { switch (Event) {
case SK_HWEV_WATIM: case SK_HWEV_WATIM:
/* Check whether port came up */ if (pPrt->PState == SK_PRT_RESET) {
PortStat = SkGePortCheckUp(pAC, IoC, (int)Port);
PortStat = SK_HW_PS_NONE;
}
else {
/* Check whether port came up */
PortStat = SkGePortCheckUp(pAC, IoC, (int)Port);
}
switch (PortStat) { switch (PortStat) {
case SK_HW_PS_RESTART: case SK_HW_PS_RESTART:
......
This diff is collapsed.
/****************************************************************************** /******************************************************************************
* *
* Name: sklm80.c * Name: sklm80.c
* Project: GEnesis, PCI Gigabit Ethernet Adapter * Project: Gigabit Ethernet Adapters, TWSI-Module
* Version: $Revision: 1.20 $ * Version: $Revision: 1.22 $
* Date: $Date: 2002/08/13 09:16:27 $ * Date: $Date: 2003/10/20 09:08:21 $
* Purpose: Funktions to access Voltage and Temperature Sensor (LM80) * Purpose: Functions to access Voltage and Temperature Sensor (LM80)
* *
******************************************************************************/ ******************************************************************************/
/****************************************************************************** /******************************************************************************
* *
* (C)Copyright 1998-2002 SysKonnect GmbH. * (C)Copyright 1998-2002 SysKonnect.
* (C)Copyright 2002-2003 Marvell.
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
...@@ -26,15 +27,21 @@ ...@@ -26,15 +27,21 @@
* History: * History:
* *
* $Log: sklm80.c,v $ * $Log: sklm80.c,v $
* Revision 1.22 2003/10/20 09:08:21 rschmidt
* Editorial changes.
*
* Revision 1.21 2003/09/23 09:29:04 malthoff
* Parameter Dev_Size added to macro SK_I2C_CTL.
*
* Revision 1.20 2002/08/13 09:16:27 rschmidt * Revision 1.20 2002/08/13 09:16:27 rschmidt
* Changed return value for SkLm80ReadSensor() back to 'int' * Changed return value for SkLm80ReadSensor() back to 'int'
* Editorial changes * Editorial changes.
* *
* Revision 1.19 2002/08/06 09:43:31 jschmalz * Revision 1.19 2002/08/06 09:43:31 jschmalz
* Extensions and changes for Yukon * Extensions and changes for Yukon.
* *
* Revision 1.18 2002/08/02 12:26:57 rschmidt * Revision 1.18 2002/08/02 12:26:57 rschmidt
* Editorial changes * Editorial changes.
* *
* Revision 1.17 1999/11/22 13:35:51 cgoos * Revision 1.17 1999/11/22 13:35:51 cgoos
* Changed license header to GPL. * Changed license header to GPL.
...@@ -93,16 +100,15 @@ ...@@ -93,16 +100,15 @@
* Revision 1.1 1998/07/17 09:57:12 gklug * Revision 1.1 1998/07/17 09:57:12 gklug
* initial version * initial version
* *
*
*
******************************************************************************/ ******************************************************************************/
/* /*
LM80 functions LM80 functions
*/ */
#if (defined(DEBUG) || ((!defined(LINT)) && (!defined(SK_SLIM))))
static const char SysKonnectFileId[] = static const char SysKonnectFileId[] =
"$Id: sklm80.c,v 1.20 2002/08/13 09:16:27 rschmidt Exp $" ; "@(#) $Id: sklm80.c,v 1.22 2003/10/20 09:08:21 rschmidt Exp $ (C) Marvell. ";
#endif
#include "h/skdrv1st.h" /* Driver Specific Definitions */ #include "h/skdrv1st.h" /* Driver Specific Definitions */
#include "h/lm80.h" #include "h/lm80.h"
...@@ -202,7 +208,7 @@ SK_SENSOR *pSen) /* Sensor to be read */ ...@@ -202,7 +208,7 @@ SK_SENSOR *pSen) /* Sensor to be read */
switch (pSen->SenState) { switch (pSen->SenState) {
case SK_SEN_IDLE: case SK_SEN_IDLE:
/* Send address to ADDR register */ /* Send address to ADDR register */
SK_I2C_CTL(IoC, I2C_READ, pSen->SenDev, pSen->SenReg, 0); SK_I2C_CTL(IoC, I2C_READ, pSen->SenDev, I2C_025K_DEV, pSen->SenReg, 0);
pSen->SenState = SK_SEN_VALUE ; pSen->SenState = SK_SEN_VALUE ;
BREAK_OR_WAIT(pAC, IoC, I2C_READ); BREAK_OR_WAIT(pAC, IoC, I2C_READ);
...@@ -250,7 +256,7 @@ SK_SENSOR *pSen) /* Sensor to be read */ ...@@ -250,7 +256,7 @@ SK_SENSOR *pSen) /* Sensor to be read */
(pSen->SenValue % SK_LM80_TEMP_LSB); (pSen->SenValue % SK_LM80_TEMP_LSB);
/* Send address to ADDR register */ /* Send address to ADDR register */
SK_I2C_CTL(IoC, I2C_READ, pSen->SenDev, LM80_TEMP_CTRL, 0); SK_I2C_CTL(IoC, I2C_READ, pSen->SenDev, I2C_025K_DEV, LM80_TEMP_CTRL, 0);
pSen->SenState = SK_SEN_VALEXT ; pSen->SenState = SK_SEN_VALEXT ;
BREAK_OR_WAIT(pAC, IoC, I2C_READ); BREAK_OR_WAIT(pAC, IoC, I2C_READ);
...@@ -284,3 +290,4 @@ SK_SENSOR *pSen) /* Sensor to be read */ ...@@ -284,3 +290,4 @@ SK_SENSOR *pSen) /* Sensor to be read */
/* Not completed */ /* Not completed */
return(0); return(0);
} }
This diff is collapsed.
/****************************************************************************** /******************************************************************************
* *
* Name: skqueue.c * Name: skqueue.c
* Project: Gigabit Ethernet Adapters, Schedule-Modul * Project: Gigabit Ethernet Adapters, Event Scheduler Module
* Version: $Revision: 1.19 $ * Version: $Revision: 1.20 $
* Date: $Date: 2003/05/13 18:00:07 $ * Date: $Date: 2003/09/16 13:44:00 $
* Purpose: Management of an event queue. * Purpose: Management of an event queue.
* *
******************************************************************************/ ******************************************************************************/
...@@ -27,6 +27,10 @@ ...@@ -27,6 +27,10 @@
* History: * History:
* *
* $Log: skqueue.c,v $ * $Log: skqueue.c,v $
* Revision 1.20 2003/09/16 13:44:00 rschmidt
* Added (C) Marvell to SysKonnectFileId
* Editorial changes
*
* Revision 1.19 2003/05/13 18:00:07 mkarl * Revision 1.19 2003/05/13 18:00:07 mkarl
* Removed calls to RLMT, TWSI, and PNMI for SLIM driver (SK_SLIM). * Removed calls to RLMT, TWSI, and PNMI for SLIM driver (SK_SLIM).
* Editorial changes. * Editorial changes.
...@@ -85,18 +89,16 @@ ...@@ -85,18 +89,16 @@
* *
* Revision 1.1 1998/07/30 15:14:01 gklug * Revision 1.1 1998/07/30 15:14:01 gklug
* Initial version. Adapted from SMT * Initial version. Adapted from SMT
*
*
* *
******************************************************************************/ ******************************************************************************/
/* /*
Event queue and dispatcher * Event queue and dispatcher
*/ */
#if (defined(DEBUG) || ((!defined(LINT)) && (!defined(SK_SLIM)))) #if (defined(DEBUG) || ((!defined(LINT)) && (!defined(SK_SLIM))))
static const char SysKonnectFileId[] = static const char SysKonnectFileId[] =
"$Header: /usr56/projects/ge/schedule/skqueue.c,v 1.19 2003/05/13 18:00:07 mkarl Exp $" ; "@(#) $Id: skqueue.c,v 1.20 2003/09/16 13:44:00 rschmidt Exp $ (C) Marvell.";
#endif #endif
#include "h/skdrv1st.h" /* Driver Specific Definitions */ #include "h/skdrv1st.h" /* Driver Specific Definitions */
...@@ -124,11 +126,11 @@ intro() ...@@ -124,11 +126,11 @@ intro()
void SkEventInit( void SkEventInit(
SK_AC *pAC, /* Adapter context */ SK_AC *pAC, /* Adapter context */
SK_IOC Ioc, /* IO context */ SK_IOC Ioc, /* IO context */
int Level) /* Init level */ int Level) /* Init level */
{ {
switch (Level) { switch (Level) {
case SK_INIT_DATA: case SK_INIT_DATA:
pAC->Event.EvPut = pAC->Event.EvGet = pAC->Event.EvQueue ; pAC->Event.EvPut = pAC->Event.EvGet = pAC->Event.EvQueue;
break; break;
default: default:
break; break;
...@@ -144,14 +146,15 @@ SK_U32 Class, /* Event Class */ ...@@ -144,14 +146,15 @@ SK_U32 Class, /* Event Class */
SK_U32 Event, /* Event to be queued */ SK_U32 Event, /* Event to be queued */
SK_EVPARA Para) /* Event parameter */ SK_EVPARA Para) /* Event parameter */
{ {
pAC->Event.EvPut->Class = Class ; pAC->Event.EvPut->Class = Class;
pAC->Event.EvPut->Event = Event ; pAC->Event.EvPut->Event = Event;
pAC->Event.EvPut->Para = Para ; pAC->Event.EvPut->Para = Para;
if (++pAC->Event.EvPut == &pAC->Event.EvQueue[SK_MAX_EVENT]) if (++pAC->Event.EvPut == &pAC->Event.EvQueue[SK_MAX_EVENT])
pAC->Event.EvPut = pAC->Event.EvQueue ; pAC->Event.EvPut = pAC->Event.EvQueue;
if (pAC->Event.EvPut == pAC->Event.EvGet) { if (pAC->Event.EvPut == pAC->Event.EvGet) {
SK_ERR_LOG(pAC, SK_ERRCL_NORES, SKERR_Q_E001, SKERR_Q_E001MSG) ; SK_ERR_LOG(pAC, SK_ERRCL_NORES, SKERR_Q_E001, SKERR_Q_E001MSG);
} }
} }
...@@ -168,77 +171,79 @@ int SkEventDispatcher( ...@@ -168,77 +171,79 @@ int SkEventDispatcher(
SK_AC *pAC, /* Adapters Context */ SK_AC *pAC, /* Adapters Context */
SK_IOC Ioc) /* Io context */ SK_IOC Ioc) /* Io context */
{ {
SK_EVENTELEM *pEv ; /* pointer into queue */ SK_EVENTELEM *pEv; /* pointer into queue */
SK_U32 Class ; SK_U32 Class;
int Rtv ; int Rtv;
pEv = pAC->Event.EvGet ; pEv = pAC->Event.EvGet;
PRINTF("dispatch get %x put %x\n",pEv,pAC->Event.ev_put) ;
PRINTF("dispatch get %x put %x\n", pEv, pAC->Event.ev_put);
while (pEv != pAC->Event.EvPut) { while (pEv != pAC->Event.EvPut) {
PRINTF("dispatch Class %d Event %d\n",pEv->Class,pEv->Event) ; PRINTF("dispatch Class %d Event %d\n", pEv->Class, pEv->Event);
switch(Class = pEv->Class) {
switch (Class = pEv->Class) {
#ifndef SK_USE_LAC_EV #ifndef SK_USE_LAC_EV
#ifndef SK_SLIM #ifndef SK_SLIM
case SKGE_RLMT : /* RLMT Event */ case SKGE_RLMT: /* RLMT Event */
Rtv = SkRlmtEvent(pAC,Ioc,pEv->Event,pEv->Para); Rtv = SkRlmtEvent(pAC, Ioc, pEv->Event, pEv->Para);
break ; break;
case SKGE_I2C : /* I2C Event */ case SKGE_I2C: /* I2C Event */
Rtv = SkI2cEvent(pAC,Ioc,pEv->Event,pEv->Para); Rtv = SkI2cEvent(pAC, Ioc, pEv->Event, pEv->Para);
break ; break;
case SKGE_PNMI : case SKGE_PNMI: /* PNMI Event */
Rtv = SkPnmiEvent(pAC,Ioc,pEv->Event,pEv->Para); Rtv = SkPnmiEvent(pAC, Ioc, pEv->Event, pEv->Para);
break ; break;
#endif /* not SK_SLIM */ #endif /* not SK_SLIM */
#endif /* not SK_USE_LAC_EV */ #endif /* not SK_USE_LAC_EV */
case SKGE_DRV : /* Driver Event */ case SKGE_DRV: /* Driver Event */
Rtv = SkDrvEvent(pAC,Ioc,pEv->Event,pEv->Para); Rtv = SkDrvEvent(pAC, Ioc, pEv->Event, pEv->Para);
break ; break;
#ifndef SK_USE_SW_TIMER #ifndef SK_USE_SW_TIMER
case SKGE_HWAC : case SKGE_HWAC:
Rtv = SkGeSirqEvent(pAC,Ioc,pEv->Event,pEv->Para); Rtv = SkGeSirqEvent(pAC, Ioc, pEv->Event, pEv->Para);
break ; break;
#else /* !SK_USE_SW_TIMER */ #else /* !SK_USE_SW_TIMER */
case SKGE_SWT : case SKGE_SWT :
Rtv = SkSwtEvent(pAC,Ioc,pEv->Event,pEv->Para); Rtv = SkSwtEvent(pAC, Ioc, pEv->Event, pEv->Para);
break ; break;
#endif /* !SK_USE_SW_TIMER */ #endif /* !SK_USE_SW_TIMER */
#ifdef SK_USE_LAC_EV #ifdef SK_USE_LAC_EV
case SKGE_LACP : case SKGE_LACP :
Rtv = SkLacpEvent(pAC,Ioc,pEv->Event,pEv->Para); Rtv = SkLacpEvent(pAC, Ioc, pEv->Event, pEv->Para);
break ; break;
case SKGE_RSF : case SKGE_RSF :
Rtv = SkRsfEvent(pAC,Ioc,pEv->Event,pEv->Para); Rtv = SkRsfEvent(pAC, Ioc, pEv->Event, pEv->Para);
break ; break;
case SKGE_MARKER : case SKGE_MARKER :
Rtv = SkMarkerEvent(pAC,Ioc,pEv->Event,pEv->Para); Rtv = SkMarkerEvent(pAC, Ioc, pEv->Event, pEv->Para);
break ; break;
case SKGE_FD : case SKGE_FD :
Rtv = SkFdEvent(pAC,Ioc,pEv->Event,pEv->Para); Rtv = SkFdEvent(pAC, Ioc, pEv->Event, pEv->Para);
break ; break;
#endif /* SK_USE_LAC_EV */ #endif /* SK_USE_LAC_EV */
#ifdef SK_USE_CSUM #ifdef SK_USE_CSUM
case SKGE_CSUM : case SKGE_CSUM :
Rtv = SkCsEvent(pAC,Ioc,pEv->Event,pEv->Para); Rtv = SkCsEvent(pAC, Ioc, pEv->Event, pEv->Para);
break ; break;
#endif /* SK_USE_CSUM */ #endif /* SK_USE_CSUM */
default : default :
SK_ERR_LOG(pAC, SK_ERRCL_SW, SKERR_Q_E002, SK_ERR_LOG(pAC, SK_ERRCL_SW, SKERR_Q_E002, SKERR_Q_E002MSG);
SKERR_Q_E002MSG) ;
Rtv = 0; Rtv = 0;
} }
if (Rtv != 0) { if (Rtv != 0) {
return(Rtv) ; return(Rtv);
} }
if (++pEv == &pAC->Event.EvQueue[SK_MAX_EVENT]) if (++pEv == &pAC->Event.EvQueue[SK_MAX_EVENT])
pEv = pAC->Event.EvQueue ; pEv = pAC->Event.EvQueue;
/* Renew get: it is used in queue_events to detect overruns */ /* Renew get: it is used in queue_events to detect overruns */
pAC->Event.EvGet = pEv; pAC->Event.EvGet = pEv;
} }
return(0) ; return(0);
} }
/* End of file */ /* End of file */
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment