📄 skgeinit.h
字号:
/****************************************************************************** * * Name: skgeinit.h * Project: Gigabit Ethernet Adapters, Common Modules * Version: $Revision: 2.79 $ * Date: $Date: 2008/04/15 15:37:57 $ * Purpose: Structures and prototypes for the GE Init Module * ******************************************************************************//****************************************************************************** * * LICENSE: * (C)Copyright Marvell. * * 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. * /LICENSE * ******************************************************************************/#ifndef __INC_SKGEINIT_H_#define __INC_SKGEINIT_H_#ifdef __cplusplusextern "C" {#endif /* __cplusplus *//* defines ********************************************************************/#define SK_TEST_VAL 0x11335577UL/* modifying Link LED behaviour (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)/* 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)/* addressing LED Registers in SkGeXmitLED() */#define XMIT_LED_INI 0#define XMIT_LED_CNT (RX_LED_VAL - RX_LED_INI)#define XMIT_LED_CTRL (RX_LED_CTRL- RX_LED_INI)#define XMIT_LED_TST (RX_LED_TST - RX_LED_INI)/* 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 0x002faf08UL /* 50 ms */#define SK_BLK_DUR 0x01dcd650UL /* 500 ms */#define SK_DPOLL_DEF 0x00ee6b28UL /* 250 ms at 62.5 MHz (Genesis) */#define SK_DPOLL_DEF_Y2 0x0000124fUL /* 75 us (Yukon-2) */#define SK_DPOLL_MAX 0x00ffffffUL /* 268 ms at 62.5 MHz */ /* 215 ms at 78.12 MHz (Yukon) */#define SK_FACT_62 100 /* default 62.5 MHz --> 100 % */#define SK_FACT_50 80 /* on YUKON-FE+: 50 MHz */#define SK_FACT_53 85 /* on GENESIS: 53.12 MHz */#define SK_FACT_78 125 /* on YUKON: 78.12 MHz */#define SK_FACT_100 160 /* on YUKON-FE: 100 MHz */#define SK_FACT_125 200 /* on YUKON-EC: 125 MHz *//* 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 */#define SK_PHY_ACC_TO 600000 /* PHY access 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 *//* Threshold values for Yukon-EC Ultra and Extreme*/#define SK_ECU_ULPP 0x0080 /* Upper Pause Threshold (multiples of 8) */#define SK_DEV521_ULPP 0x00c4 /* Upper Pause Threshold for Dev. 5.21 */#define SK_ECU_LLPP 0x0060 /* Lower Pause Threshold (multiples of 8) */#define SK_ECU_AE_THR 0x0070 /* Almost Empty Threshold */#define SK_ECU_TXFF_LEV 0x01a0 /* Tx BMU FIFO Level */#define SK_ECU_JUMBO_WM 0x0400 /* Jumbo Mode Watermark */#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 Tx Watermark */#endif/* performance sensitive drivers should set this define to 0x80 */#ifndef SK_BMU_RX_WM_PEX#define SK_BMU_RX_WM_PEX 0x80 /* BMU Rx Watermark for PEX */#endif/* XMAC II Rx High Watermark */#define SK_XM_RX_HI_WM 0x05aa /* 1450 *//* 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 PortUsage */#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 Rx Queue Size */#define SK_MIN_RXQ_SIZE (((pAC)->GIni.GIYukon2) ? 10 : 16) /* 10/16 kB *//* Minimum RAM Buffer Tx Queue Size */#define SK_MIN_TXQ_SIZE (((pAC)->GIni.GIYukon2) ? 10 : 16) /* 10/16 kB *//* Queue Size units (Genesis/Yukon) */#define QZ_UNITS 7#define QZ_STEP 8/* Queue Size units (Yukon-2) */#define QZ_STEP_Y2 1/* Percentage of queue size from whole memory *//* 80 % for receive */#define RAM_QUOTA_RX 80/* 0 % for sync transfer */#define RAM_QUOTA_SYNC 0/* the rest (20%) is taken for async transfer *//* Types of RAM Buffer Queues */#define SK_RX_SRAM_Q 1 /* small receive queue */#define SK_RX_BRAM_Q 2 /* big receive queue */#define SK_TX_RAM_Q 3 /* small or big transmit queue *//* 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 *//* parameter 'RstMode' when calling SkGeStopPort() */#define SK_SOFT_RST 1 /* perform a software reset */#define SK_HARD_RST 2 /* perform a hardware reset *//* 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 *//* 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 /* indeterminated *//* Auto-negotiation timeout in 100ms granularity */#define SK_AND_MAX_TO 6 /* Wait 600 msec before link comes up *//* Auto-negotiation error codes */#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 Speed Capabilities */#define SK_LSPEED_CAP_AUTO BIT_0S /* Automatic resolution */#define SK_LSPEED_CAP_10MBPS BIT_1S /* 10 Mbps */#define SK_LSPEED_CAP_100MBPS BIT_2S /* 100 Mbps */#define SK_LSPEED_CAP_1000MBPS BIT_3S /* 1000 Mbps */#define SK_LSPEED_CAP_INDETERMINATED BIT_4S /* indeterminated *//* Link Speed Parameter */#define SK_LSPEED_AUTO 1 /* Automatic resolution */#define SK_LSPEED_10MBPS 2 /* 10 Mbps */#define SK_LSPEED_100MBPS 3 /* 100 Mbps */#define SK_LSPEED_1000MBPS 4 /* 1000 Mbps */#define SK_LSPEED_INDETERMINATED 5 /* indeterminated *//* Link Speed Current State */#define SK_LSPEED_STAT_UNKNOWN 1#define SK_LSPEED_STAT_10MBPS 2#define SK_LSPEED_STAT_100MBPS 3#define SK_LSPEED_STAT_1000MBPS 4#define SK_LSPEED_STAT_INDETERMINATED 5/* Link Capability Parameter */#define SK_LMODE_CAP_HALF BIT_0S /* Half Duplex Mode */#define SK_LMODE_CAP_FULL BIT_1S /* Full Duplex Mode */#define SK_LMODE_CAP_AUTOHALF BIT_2S /* AutoHalf Duplex Mode */#define SK_LMODE_CAP_AUTOFULL BIT_3S /* AutoFull Duplex Mode */#define SK_LMODE_CAP_INDETERMINATED BIT_4S /* indeterminated *//* 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 Auto-Neg */#define SK_LMODE_STAT_AUTOFULL 5 /* Full Duplex Mode obtained by Auto-Neg */#define SK_LMODE_STAT_INDETERMINATED 6 /* indeterminated *//* 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 stations may send PAUSE */#define SK_FLOW_MODE_SYM_OR_REM 4 /* Both stations may send PAUSE or * just the remote station may send PAUSE */#define SK_FLOW_MODE_INDETERMINATED 5 /* indeterminated *//* 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 /* indeterminated *//* Master/Slave Mode Capabilities */#define SK_MS_CAP_AUTO BIT_0S /* Automatic resolution */#define SK_MS_CAP_MASTER BIT_1S /* This station is master */#define SK_MS_CAP_SLAVE BIT_2S /* This station is slave */#define SK_MS_CAP_INDETERMINATED BIT_3S /* indeterminated *//* 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 /* indeterminated *//* Master/Slave Status Parameter */#define SK_MS_STAT_UNSET 1 /* The M/S status is not set */#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 /* M/S resolution failed */#define SK_MS_STAT_INDETERMINATED 5 /* indeterminated *//* parameter 'Mode' when calling SkMacSetRxCmd() */#define SK_STRIP_FCS_ON BIT_0S /* Enable FCS stripping of Rx frames */#define SK_STRIP_FCS_OFF BIT_1S /* Disable FCS stripping of Rx frames */#define SK_STRIP_PAD_ON BIT_2S /* Enable pad byte stripping of Rx fr */#define SK_STRIP_PAD_OFF BIT_3S /* Disable pad byte stripping of Rx fr */#define SK_LENERR_OK_ON BIT_4S /* Don't chk fr for in range len error */#define SK_LENERR_OK_OFF BIT_5S /* Check frames for in range len error */#define SK_BIG_PK_OK_ON BIT_6S /* Don't set Rx Error bit for big frames */#define SK_BIG_PK_OK_OFF BIT_7S /* Set Rx Error bit for big frames */#define SK_SELF_RX_ON BIT_8S /* Enable Rx of own packets */#define SK_SELF_RX_OFF BIT_9S /* Disable Rx of own packets *//* parameter 'Para' when calling SkMacSetRxTxEn() */#define SK_MAC_LOOPB_ON BIT_0S /* Enable MAC Loopback Mode */#define SK_MAC_LOOPB_OFF BIT_1S /* Disable MAC Loopback Mode */#define SK_PHY_LOOPB_ON BIT_2S /* Enable PHY Loopback Mode */#define SK_PHY_LOOPB_OFF BIT_3S /* Disable PHY Loopback Mode */#define SK_PHY_FULLD_ON BIT_4S /* Enable GMII Full Duplex */#define SK_PHY_FULLD_OFF BIT_5S /* Disable GMII Full Duplex *//* 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 *//* 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 */#define PHY_PM_POWER_STATE_MANAGER 5 /* Power State Manager (PSM) *//* PCI Bus Types */#define SK_PCI_BUS BIT_0S /* normal PCI bus */#define SK_PCIX_BUS BIT_1S /* PCI-X bus */#define SK_PEX_BUS BIT_2S /* PCI-Express bus *//* Default receive frame limit for Workaround of XMAC Errata */#define SK_DEF_RX_WA_LIM SK_CONSTU64(100)/* values for GILedBlinkCtrl (LED Blink Control) */#define SK_ACT_LED_BLINK BIT_0S /* Activity LED blinking */#define SK_DUP_LED_NORMAL BIT_1S /* Duplex LED normal */#define SK_LED_LINK100_ON BIT_2S /* Link 100M LED on */#define SK_DUAL_LED_ACT_LNK BIT_3S /* Dual LED ACT/LNK configuration */#define SK_LED_LINK_MUX_P60 BIT_4S /* Link LED muxed to pin 60 */#define SK_LED_COMB_ACT_LNK BIT_5S /* Combined ACT/LNK LED mode */#define SK_ACT_LED_NOTR_OFF BIT_6S /* Activity LED off (no traffic) *//* 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 auto-negotiation state *//* Maximum Restarts before restart is ignored (3Com WA) */#define SK_MAX_LRESTART 3 /* Max. 3 times the link is restarted *//* Max. Auto-neg. timeouts before link detection in sense mode is reset */#define SK_MAX_ANEG_TO 10 /* Max. 10 times the sense mode is reset *//****************************************************************************** * * HW_FEATURE() macro *//* DWORD 0: Features */#define HWF_ENA_POW_SAV_W_WOL 0x08000000UL /* Power saving with WOL ena. */#define HWF_FORCE_AUTO_NEG 0x04000000UL /* Force Auto-Negotiation */#define HWF_CLK_GATING_ENABLE 0x02000000UL /* Enable Clock Gating */#define HWF_RED_CORE_CLK_SUP 0x01000000UL /* Reduced Core Clock supp. */#define HWF_RESTORE_LOST_BARS 0x00800000UL /* Save and restore PCI BARs */#define HWF_ASPM_SWITCHING 0x00400000UL /* Activate ASPM feature */#define HWF_TX_IP_ID_INCR_ON 0x00200000UL /* Enable Tx IP ID Increment */#define HWF_ADV_CSUM_SUPPORT 0x00100000UL /* Sel Csum of IP and TCP/UDP */#define HWF_PSM_SUPPORTED 0x00080000UL /* Power State Manager support*/#define HWF_NEW_FLOW_CONTROL 0x00040000UL /* New Flow-Control support*/#define HWF_HW_WOL_ENABLE 0x00020000UL /* Enable HW WOL *//*-RMV- DWORD 1: Deviations (all in use) */#define HWF_WA_DEV_4222 0x18000000UL /*-RMV- 4.222 (Done Idx rep.) */#define HWF_WA_DEV_56 0x14000000UL /*-RMV- 5.6 (Rx Chksum 0xffff)*/#define HWF_WA_DEV_54 0x12000000UL /*-RMV- 5.4 (Missing Status LE)*/#define HWF_WA_DEV_53 0x11000000UL /*-RMV- 5.3 (Tx Done LSOv2 rep)*/#define HWF_WA_DEV_LIM_IPV6_RSS 0x10800000UL /*-RMV- IPV6 RSS limitted */#define HWF_WA_DEV_4217 0x10400000UL /*-RMV- 4.217 (PCI-E blockage) */#define HWF_WA_DEV_4200 0x10200000UL /*-RMV- 4.200 (D3 Blue Screen)*/#define HWF_WA_DEV_4185CS 0x10100000UL /*-RMV- 4.185 (ECU 100 CS cal)*/#define HWF_WA_DEV_4185 0x10080000UL /*-RMV- 4.185 (ECU Tx h check)*/#define HWF_WA_DEV_4167 0x10040000UL /*-RMV- 4.167 (Rx OvSize Hang)*/#define HWF_WA_DEV_4152 0x10020000UL /*-RMV- 4.152 (RSS issue) */#define HWF_WA_DEV_4115 0x10010000UL /*-RMV- 4.115 (Rx MAC FIFO) */#define HWF_WA_DEV_4109 0x10008000UL /*-RMV- 4.109 (BIU hang) */#define HWF_WA_DEV_483 0x10004000UL /*-RMV- 4.83 (Rx TCP wrong) */#define HWF_WA_DEV_479 0x10002000UL /*-RMV- 4.79 (Rx BMU hang II) */#define HWF_WA_DEV_472 0x10001000UL /*-RMV- 4.72 (GPHY2 MDC clk) */#define HWF_WA_DEV_463 0x10000800UL /*-RMV- 4.63 (Rx BMU hang I) */#define HWF_WA_DEV_427 0x10000400UL /*-RMV- 4.27 (Tx Done Rep) */#define HWF_WA_DEV_42 0x10000200UL /*-RMV- 4.2 (pref unit burst) */#define HWF_WA_DEV_46 0x10000100UL /*-RMV- 4.6 (CPU crash II) */#define HWF_WA_DEV_43_418 0x10000080UL /*-RMV- 4.3 & 4.18 (PCI unexp */ /*-RMV- compl&Stat BMU deadl) */#define HWF_WA_DEV_420 0x10000040UL /*-RMV- 4.20 (Status BMU ov) */#define HWF_WA_DEV_423 0x10000020UL /*-RMV- 4.23 (TCP Segm Hang) */#define HWF_WA_DEV_424 0x10000010UL /*-RMV- 4.24 (MAC reg overwr) */#define HWF_WA_DEV_425 0x10000008UL /*-RMV- 4.25 (Magic packet */ /*-RMV- with odd offset) */#define HWF_WA_DEV_428 0x10000004UL /*-RMV- 4.28 (Poll-U &BigEndi)*/#define HWF_WA_FIFO_FLUSH_YLA0 0x10000002UL /*-RMV- dis Rx GMAC FIFO Flush*/ /*-RMV- for Yu-L Rev. A0 only */#define HWF_WA_COMA_MODE 0x10000001UL /*-RMV- Coma Mode WA req *//*-RMV- DWORD 2: Deviations */#define HWF_WA_DEV_548 0x20000800UL /*-RMV- 5.48 (IPv4 Header CS) */#define HWF_WA_DEV_4216 0x20000400UL /*-RMV- 4.216 (fragm. IPV4+RSS)*/#define HWF_WA_DEV_519 0x20000200UL /*-RMV- 5.19 (MACsec: unexp. LE)*/#define HWF_WA_DEV_517 0x20000100UL /*-RMV- 5.17 (MACsec+FlowThrough)*/#define HWF_WA_DEV_515 0x20000080UL /*-RMV- 5.15 (MACsec TX underr)*/#define HWF_WA_DEV_542 0x20000040UL /*-RMV- 5.42 (CPU CLK + Flash) */#define HWF_WA_DEV_4229 0x20000020UL /*-RMV- 4.229 (RSS + VLAN) */#define HWF_WA_DEV_521 0x20000010UL /*-RMV- 5.21 (wrong RFSW) */#define HWF_WA_DEV_520 0x20000008UL /*-RMV- 5.20 (Tx lost of data)*/#define HWF_WA_DEV_511 0x20000004UL /*-RMV- 5.11 (Tx Underrun) */#define HWF_WA_DEV_510 0x20000002UL /*-RMV- 5.10 (Tx Checksum) */#define HWF_WA_DEV_51 0x20000001UL /*-RMV- 5.1 (MACSec sync) */#if 0#define HWF_SYNC_TX_SUP 0x20800000UL /* Synch. Tx Queue available */#define HWF_SINGLE_PORT_DEVICE 0x20400000UL /* Device has only one LAN IF */#define HWF_JUMBO_FRAMES_SUP 0x20200000UL /* Jumbo Frames supported */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -