mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-21 22:51:37 +00:00
tsec: Revert to setting TBICR_ANEG_ENABLE by default for SGMII
The following commit:
commit 46e91674fb
Author: Peter Tyser <ptyser@xes-inc.com>
Date: Tue Nov 3 17:52:07 2009 -0600
tsec: Force TBI PHY to 1000Mbps full duplex in SGMII mode
Removed setting Auto-Neg by default, however this is believed to be
proper default configuration for initialization of the TBI interface.
Instead we explicitly set CONFIG_TSEC_TBICR_SETTINGS for the
XPedite5370 & XPedite5500 boards that use a Broadcomm PHY which require
Auto-Neg to be disabled to function properly.
This addresses a breakage on the P2020 DS & MPC8572 DS boards when used
with an SGMII riser card. We also remove setting
CONFIG_TSEC_TBICR_SETTINGS on the P1_P2_RDB family of boards as now the
default setting is sufficient for them.
Additionally, we clean up the code a bit to remove an unnecessary second
define.
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Acked-by: Peter Tyser <ptyser@xes-inc.com>
Tested-by: Peter Tyser <ptyser@xes-inc.com>
This commit is contained in:
parent
ac8983bcba
commit
72c96a6802
4 changed files with 24 additions and 13 deletions
|
@ -5,7 +5,7 @@
|
||||||
* terms of the GNU Public License, Version 2, incorporated
|
* terms of the GNU Public License, Version 2, incorporated
|
||||||
* herein by reference.
|
* herein by reference.
|
||||||
*
|
*
|
||||||
* Copyright 2004-2009 Freescale Semiconductor, Inc.
|
* Copyright 2004-2010 Freescale Semiconductor, Inc.
|
||||||
* (C) Copyright 2003, Motorola, Inc.
|
* (C) Copyright 2003, Motorola, Inc.
|
||||||
* author Andy Fleming
|
* author Andy Fleming
|
||||||
*
|
*
|
||||||
|
@ -292,13 +292,12 @@ static uint tsec_local_mdio_read(volatile tsec_mdio_t *phyregs,
|
||||||
|
|
||||||
/* By default force the TBI PHY into 1000Mbps full duplex when in SGMII mode */
|
/* By default force the TBI PHY into 1000Mbps full duplex when in SGMII mode */
|
||||||
#ifndef CONFIG_TSEC_TBICR_SETTINGS
|
#ifndef CONFIG_TSEC_TBICR_SETTINGS
|
||||||
#define TBICR_SETTINGS ( \
|
#define CONFIG_TSEC_TBICR_SETTINGS ( \
|
||||||
TBICR_PHY_RESET \
|
TBICR_PHY_RESET \
|
||||||
|
| TBICR_ANEG_ENABLE \
|
||||||
| TBICR_FULL_DUPLEX \
|
| TBICR_FULL_DUPLEX \
|
||||||
| TBICR_SPEED1_SET \
|
| TBICR_SPEED1_SET \
|
||||||
)
|
)
|
||||||
#else
|
|
||||||
#define TBICR_SETTINGS CONFIG_TSEC_TBICR_SETTINGS
|
|
||||||
#endif /* CONFIG_TSEC_TBICR_SETTINGS */
|
#endif /* CONFIG_TSEC_TBICR_SETTINGS */
|
||||||
|
|
||||||
/* Configure the TBI for SGMII operation */
|
/* Configure the TBI for SGMII operation */
|
||||||
|
@ -311,7 +310,7 @@ static void tsec_configure_serdes(struct tsec_private *priv)
|
||||||
tsec_local_mdio_write(priv->phyregs_sgmii, priv->regs->tbipa, TBI_TBICON,
|
tsec_local_mdio_write(priv->phyregs_sgmii, priv->regs->tbipa, TBI_TBICON,
|
||||||
TBICON_CLK_SELECT);
|
TBICON_CLK_SELECT);
|
||||||
tsec_local_mdio_write(priv->phyregs_sgmii, priv->regs->tbipa, TBI_CR,
|
tsec_local_mdio_write(priv->phyregs_sgmii, priv->regs->tbipa, TBI_CR,
|
||||||
TBICR_SETTINGS);
|
CONFIG_TSEC_TBICR_SETTINGS);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Discover which PHY is attached to the device, and configure it
|
/* Discover which PHY is attached to the device, and configure it
|
||||||
|
|
|
@ -437,14 +437,6 @@ extern unsigned long get_board_sys_clk(unsigned long dummy);
|
||||||
|
|
||||||
#define CONFIG_PHY_GIGE 1 /* Include GbE speed/duplex detection */
|
#define CONFIG_PHY_GIGE 1 /* Include GbE speed/duplex detection */
|
||||||
|
|
||||||
/* TBI PHY configuration for SGMII mode */
|
|
||||||
#define CONFIG_TSEC_TBICR_SETTINGS ( \
|
|
||||||
TBICR_PHY_RESET \
|
|
||||||
| TBICR_ANEG_ENABLE \
|
|
||||||
| TBICR_FULL_DUPLEX \
|
|
||||||
| TBICR_SPEED1_SET \
|
|
||||||
)
|
|
||||||
|
|
||||||
#endif /* CONFIG_TSEC_ENET */
|
#endif /* CONFIG_TSEC_ENET */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -375,6 +375,16 @@ extern unsigned long get_board_ddr_clk(unsigned long dummy);
|
||||||
#define CONFIG_MII_DEFAULT_TSEC 1 /* Allow unregistered phys */
|
#define CONFIG_MII_DEFAULT_TSEC 1 /* Allow unregistered phys */
|
||||||
#define CONFIG_ETHPRIME "eTSEC2"
|
#define CONFIG_ETHPRIME "eTSEC2"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* In-band SGMII auto-negotiation between TBI and BCM5482S PHY fails, force
|
||||||
|
* 1000mbps SGMII link
|
||||||
|
*/
|
||||||
|
#define CONFIG_TSEC_TBICR_SETTINGS ( \
|
||||||
|
TBICR_PHY_RESET \
|
||||||
|
| TBICR_FULL_DUPLEX \
|
||||||
|
| TBICR_SPEED1_SET \
|
||||||
|
)
|
||||||
|
|
||||||
#define CONFIG_TSEC1 1
|
#define CONFIG_TSEC1 1
|
||||||
#define CONFIG_TSEC1_NAME "eTSEC1"
|
#define CONFIG_TSEC1_NAME "eTSEC1"
|
||||||
#define TSEC1_FLAGS (TSEC_GIGABIT | TSEC_REDUCED)
|
#define TSEC1_FLAGS (TSEC_GIGABIT | TSEC_REDUCED)
|
||||||
|
|
|
@ -345,6 +345,16 @@ extern unsigned long get_board_ddr_clk(unsigned long dummy);
|
||||||
#define CONFIG_MII_DEFAULT_TSEC 1 /* Allow unregistered phys */
|
#define CONFIG_MII_DEFAULT_TSEC 1 /* Allow unregistered phys */
|
||||||
#define CONFIG_ETHPRIME "eTSEC2"
|
#define CONFIG_ETHPRIME "eTSEC2"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* In-band SGMII auto-negotiation between TBI and BCM5482S PHY fails, force
|
||||||
|
* 1000mbps SGMII link
|
||||||
|
*/
|
||||||
|
#define CONFIG_TSEC_TBICR_SETTINGS ( \
|
||||||
|
TBICR_PHY_RESET \
|
||||||
|
| TBICR_FULL_DUPLEX \
|
||||||
|
| TBICR_SPEED1_SET \
|
||||||
|
)
|
||||||
|
|
||||||
#define CONFIG_TSEC1 1
|
#define CONFIG_TSEC1 1
|
||||||
#define CONFIG_TSEC1_NAME "eTSEC1"
|
#define CONFIG_TSEC1_NAME "eTSEC1"
|
||||||
#define TSEC1_FLAGS (TSEC_GIGABIT | TSEC_REDUCED)
|
#define TSEC1_FLAGS (TSEC_GIGABIT | TSEC_REDUCED)
|
||||||
|
|
Loading…
Add table
Reference in a new issue