⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 h2flowc.h

📁 Vitesse 24port gigabit Switch Source Code
💻 H
字号:
/*

    Copyright (c) 2003-2005 Vitesse Semiconductor Corporation "Vitesse".  
    All Rights Reserved.  Unpublished rights reserved under the copyright laws
    of the United States of America, other countries and international treaties.
    The software is provided without a fee. Permission to use, copy, store and 
    modify, the software and its source code is granted. Permission to integrate
    into other products, disclose, transmit and distribute the software in an
    absolute machine readable format (e.g. HEX file) is also granted. 

    The source code of the software may not be disclosed, transmitted or
    distributed without the written permission of Vitesse. The software and its
    source code may only be used in products utilizing a Vitesse VSC73xx product.
 
    This copyright notice must appear in any copy, modification, disclosure,
    transmission or distribution of the software. Vitesse retains all ownership,
    copyright, trade secret and proprietary rights in the software.  

    THIS SOFTWARE HAS BEEN PROVIDED "AS IS," WITHOUT EXPRESS OR IMPLIED WARRANTY
    INCLUDING, WITHOUT LIMITATION, IMPLIED WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR USE AND NON-INFRINGEMENT.

*/
#ifndef __H2FLOWC_H__
#define __H2FLOWC_H__


void h2_setup_flow_control (uchar port_no, uchar link_mode);






/* ************************************************************************ **
 *
 *
 * Luton24 Pause frame settings
 *
 *
 *
 * ************************************************************************ */

#define FCTXCONF_OFF    0x00000000
#define FCTXCONF_ON     0x000300FF

/* ************************************************************************ **
 *
 *
 * Luton24 Settings for drop mode, normal frame size
 *
 *
 *
 * ************************************************************************ */

/* Watermarks for Q_FLOWC_WM register in drop mode at all speeds */
#define FWDP_START_DROP       36
#define FWDP_STOP_DROP        38

#define Q_FLOWC_WM_DROP             \
    ((ulong) FWDP_START_DROP << 8 | \
     (ulong) FWDP_STOP_DROP  << 0)

/* Watermarks for Q_EGRESS_WM register in drop mode at all speeds */
#define Q_EGRESS_WM_MAX_0_DROP     19
#define Q_EGRESS_WM_MAX_1_DROP     22
#define Q_EGRESS_WM_MAX_2_DROP     25
#define Q_EGRESS_WM_MAX_3_DROP     28

#define Q_EGRESS_WM_DROP                    \
    ((ulong) Q_EGRESS_WM_MAX_3_DROP << 24 | \
     (ulong) Q_EGRESS_WM_MAX_2_DROP << 16 | \
     (ulong) Q_EGRESS_WM_MAX_1_DROP <<  8 | \
     (ulong) Q_EGRESS_WM_MAX_0_DROP <<  0)

/* Watermarks for Q_MISC_CONF register in drop mode at all speeds */
#define Q_MISC_IDISC_DROP    32
#define Q_MISC_IMIN_DROP      0
#define Q_MISC_EMIN_DROP      0
#define Q_MISC_EARLY_TX_DROP  0

#define Q_MISC_CONF_DROP                  \
    ((ulong) Q_MISC_IDISC_DROP    << 24 | \
     (ulong) Q_MISC_IMIN_DROP     << 16 | \
     (ulong) Q_MISC_EMIN_DROP     <<  8 | \
     (ulong) Q_MISC_EARLY_TX_DROP <<  1 | \
     0) /* MAC_PAUSE_MODE = 0 */

/* ************************************************************************ **
 *
 *
 * Luton24 Settings for flow control mode, normal frame size
 *
 *
 *
 * ************************************************************************ */

/* Watermarks for Q_FLOWC_WM register in drop mode at all speeds */
#define FWDP_START_FC         12
#define FWDP_STOP_FC           8

#define Q_FLOWC_WM_FC               \
    ((ulong) FWDP_START_FC << 8 | \
     (ulong) FWDP_STOP_FC  << 0)

/* Watermarks for Q_EGRESS_WM register in drop mode at all speeds */
#define Q_EGRESS_WM_MAX_0_FC       12
#define Q_EGRESS_WM_MAX_1_FC       12
#define Q_EGRESS_WM_MAX_2_FC       12
#define Q_EGRESS_WM_MAX_3_FC       12

#define Q_EGRESS_WM_FC                    \
    ((ulong) Q_EGRESS_WM_MAX_3_FC << 24 | \
     (ulong) Q_EGRESS_WM_MAX_2_FC << 16 | \
     (ulong) Q_EGRESS_WM_MAX_1_FC <<  8 | \
     (ulong) Q_EGRESS_WM_MAX_0_FC <<  0)

/* Watermarks for Q_MISC_CONF register in drop mode at all speeds */
#define Q_MISC_IDISC_FC      36
#define Q_MISC_IMIN_FC        0
#define Q_MISC_EMIN_FC        0
#define Q_MISC_EARLY_TX_FC    0

#define Q_MISC_CONF_FC                    \
    ((ulong) Q_MISC_IDISC_FC      << 24 | \
     (ulong) Q_MISC_IMIN_FC       << 16 | \
     (ulong) Q_MISC_EMIN_FC       <<  8 | \
     (ulong) Q_MISC_EARLY_TX_FC   <<  1 | \
     1) /* MAC_PAUSE_MODE = 1 */

/* ************************************************************************ **
 *
 *
 * Luton24 Settings for drop mode, jumbo frame size, early TX disabled
 *
 *
 *
 * ************************************************************************ */

/* Watermarks for Q_FLOWC_WM register in drop mode at all speeds */
#define FWDP_START_DROP_JUMBO       0
#define FWDP_STOP_DROP_JUMBO        34

#define Q_FLOWC_WM_DROP_JUMBO             \
    ((ulong) FWDP_START_DROP_JUMBO << 8 | \
     (ulong) FWDP_STOP_DROP_JUMBO  << 0)

/* Watermarks for Q_EGRESS_WM register in drop mode at all speeds */
#define Q_EGRESS_WM_MAX_0_DROP_JUMBO     19
#define Q_EGRESS_WM_MAX_1_DROP_JUMBO     22
#define Q_EGRESS_WM_MAX_2_DROP_JUMBO     25
#define Q_EGRESS_WM_MAX_3_DROP_JUMBO     28

#define Q_EGRESS_WM_DROP_JUMBO                    \
    ((ulong) Q_EGRESS_WM_MAX_3_DROP_JUMBO << 24 | \
     (ulong) Q_EGRESS_WM_MAX_2_DROP_JUMBO << 16 | \
     (ulong) Q_EGRESS_WM_MAX_1_DROP_JUMBO <<  8 | \
     (ulong) Q_EGRESS_WM_MAX_0_DROP_JUMBO <<  0)

/* Watermarks for Q_MISC_CONF register in drop mode */
#define Q_MISC_IDISC_DROP_JUMBO    39
#define Q_MISC_IMIN_DROP_JUMBO     39
#define Q_MISC_EMIN_DROP_JUMBO      0
#define Q_MISC_EARLY_TX_DROP_JUMBO  0

#define Q_MISC_CONF_DROP_JUMBO             \
    ((ulong) Q_MISC_IDISC_DROP_JUMBO    << 24 | \
     (ulong) Q_MISC_IMIN_DROP_JUMBO     << 16 | \
     (ulong) Q_MISC_EMIN_DROP_JUMBO     <<  8 | \
     (ulong) Q_MISC_EARLY_TX_DROP_JUMBO <<  1 | \
     0) /* MAC_PAUSE_MODE = 0 */

/* ************************************************************************ **
 *
 *
 * Luton24 Settings for drop mode, jumbo frame size, early TX enabled
 *
 *
 *
 * ************************************************************************ */

/* Watermarks for Q_FLOWC_WM register in drop mode at 1G speed */
#define FWDP_START_DROP_JUMBO_EARLY_TX_1G       33
#define FWDP_STOP_DROP_JUMBO_EARLY_TX_1G        39

/* Watermarks for Q_FLOWC_WM register in drop mode at 10/100 speeds */
#define FWDP_START_DROP_JUMBO_EARLY_TX_10_100   39
#define FWDP_STOP_DROP_JUMBO_EARLY_TX_10_100    39

#define Q_FLOWC_WM_DROP_JUMBO_EARLY_TX             \
    ((ulong) FWDP_START_DROP_JUMBO_EARLY_TX_10_100 << 8 | \
     (ulong) FWDP_STOP_DROP_JUMBO_EARLY_TX_10_100  << 0)

#define Q_FLOWC_WM_DROP_JUMBO_EARLY_TX_1G             \
    ((ulong) FWDP_START_DROP_JUMBO_EARLY_TX_1G << 8 | \
     (ulong) FWDP_STOP_DROP_JUMBO_EARLY_TX_1G  << 0)

/* Watermarks for Q_EGRESS_WM register in drop mode at all speeds */
#define Q_EGRESS_WM_MAX_0_DROP_JUMBO_EARLY_TX     13
#define Q_EGRESS_WM_MAX_1_DROP_JUMBO_EARLY_TX     14
#define Q_EGRESS_WM_MAX_2_DROP_JUMBO_EARLY_TX     15
#define Q_EGRESS_WM_MAX_3_DROP_JUMBO_EARLY_TX     16

#define Q_EGRESS_WM_DROP_JUMBO_EARLY_TX                    \
    ((ulong) Q_EGRESS_WM_MAX_3_DROP_JUMBO_EARLY_TX << 24 | \
     (ulong) Q_EGRESS_WM_MAX_2_DROP_JUMBO_EARLY_TX << 16 | \
     (ulong) Q_EGRESS_WM_MAX_1_DROP_JUMBO_EARLY_TX <<  8 | \
     (ulong) Q_EGRESS_WM_MAX_0_DROP_JUMBO_EARLY_TX <<  0)

/* Watermarks for Q_MISC_CONF register in drop mode. */
/* Early Tx will only come in effect for 1G  */
#define Q_MISC_IDISC_DROP_JUMBO_EARLY_TX    32
#define Q_MISC_IMIN_DROP_JUMBO_EARLY_TX      0
#define Q_MISC_EMIN_DROP_JUMBO_EARLY_TX      0
#define Q_MISC_EARLY_TX_DROP_JUMBO_EARLY_TX  2

#define Q_MISC_CONF_DROP_JUMBO_EARLY_TX             \
    ((ulong) Q_MISC_IDISC_DROP_JUMBO_EARLY_TX    << 24 | \
     (ulong) Q_MISC_IMIN_DROP_JUMBO_EARLY_TX     << 16 | \
     (ulong) Q_MISC_EMIN_DROP_JUMBO_EARLY_TX     <<  8 | \
     (ulong) Q_MISC_EARLY_TX_DROP_JUMBO_EARLY_TX <<  1 | \
     0) /* MAC_PAUSE_MODE = 0 */

/* ************************************************************************ **
 *
 *
 * Luton24 Settings for flow control mode, jumbo frame size
 *
 *
 *
 * ************************************************************************ */

/* Watermarks for Q_FLOWC_WM register in drop mode at all speeds */
#define FWDP_START_FC_JUMBO         10
#define FWDP_STOP_FC_JUMBO           6

#define Q_FLOWC_WM_FC_JUMBO         \
    ((ulong) FWDP_START_FC_JUMBO << 8 | \
     (ulong) FWDP_STOP_FC_JUMBO  <<  0)

/* Watermarks for Q_EGRESS_WM register in drop mode at all speeds */
#define Q_EGRESS_WM_MAX_0_FC_JUMBO       12
#define Q_EGRESS_WM_MAX_1_FC_JUMBO       12
#define Q_EGRESS_WM_MAX_2_FC_JUMBO       12
#define Q_EGRESS_WM_MAX_3_FC_JUMBO       12

#define Q_EGRESS_WM_FC_JUMBO                    \
    ((ulong) Q_EGRESS_WM_MAX_3_FC_JUMBO << 24 | \
     (ulong) Q_EGRESS_WM_MAX_2_FC_JUMBO << 16 | \
     (ulong) Q_EGRESS_WM_MAX_1_FC_JUMBO <<  8 | \
     (ulong) Q_EGRESS_WM_MAX_0_FC_JUMBO <<  0)

/* Watermarks for Q_MISC_CONF register in drop mode at all speeds */
#define Q_MISC_IDISC_FC_JUMBO      36
#define Q_MISC_IMIN_FC_JUMBO        0
#define Q_MISC_EMIN_FC_JUMBO        0
#define Q_MISC_EARLY_TX_FC_JUMBO    0

#define Q_MISC_CONF_FC_JUMBO                    \
    ((ulong) Q_MISC_IDISC_FC_JUMBO      << 24 | \
     (ulong) Q_MISC_IMIN_FC_JUMBO       << 16 | \
     (ulong) Q_MISC_EMIN_FC_JUMBO       <<  8 | \
     (ulong) Q_MISC_EARLY_TX_FC_JUMBO   <<  1 | \
     1) /* MAC_PAUSE_MODE = 1 */




#endif














⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -