public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v3] Support for multiple SGMII/TBI interfaces for TSEC ethernet
@ 2008-09-10 23:06 Peter Tyser
  2008-09-10 23:08 ` Ben Warren
  2008-09-15 21:13 ` Andy Fleming
  0 siblings, 2 replies; 7+ messages in thread
From: Peter Tyser @ 2008-09-10 23:06 UTC (permalink / raw)
  To: u-boot

Fix TBI PHY accesses to use the proper offset in CPU register space.  The
previous code would incorrectly access the TBI PHY by reading/writing to CPU
register space at the same location as would be used to access external PHYs.

Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
---

Dohh... v2 of the patch introduced a compile warning.  Please apply
this version instead.

I replaced the hardcoding of CFG_TBIPA_VALUE in the tsec_configure_serdes()
to support possible changes of the TBI addressing down the road, but
kept the default TBI PHY address at CFG_TBIPA_VALUE as Andy Flemming
suggested.

 drivers/net/tsec.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/net/tsec.c b/drivers/net/tsec.c
index f81211a..cc7d528 100644
--- a/drivers/net/tsec.c
+++ b/drivers/net/tsec.c
@@ -283,11 +283,13 @@ uint tsec_local_mdio_read(volatile tsec_t *phyregs, uint phyid, uint regnum)
 /* Configure the TBI for SGMII operation */
 static void tsec_configure_serdes(struct tsec_private *priv)
 {
-	tsec_local_mdio_write(priv->phyregs, CFG_TBIPA_VALUE, TBI_ANA,
+	/* Access TBI PHY registers at given TSEC register offset as opposed to the
+	 * register offset used for external PHY accesses */
+	tsec_local_mdio_write(priv->regs, priv->regs->tbipa, TBI_ANA,
 			TBIANA_SETTINGS);
-	tsec_local_mdio_write(priv->phyregs, CFG_TBIPA_VALUE, TBI_TBICON,
+	tsec_local_mdio_write(priv->regs, priv->regs->tbipa, TBI_TBICON,
 			TBICON_CLK_SELECT);
-	tsec_local_mdio_write(priv->phyregs, CFG_TBIPA_VALUE, TBI_CR,
+	tsec_local_mdio_write(priv->regs, priv->regs->tbipa, TBI_CR,
 			TBICR_SETTINGS);
 }
 
@@ -299,12 +301,10 @@ static int init_phy(struct eth_device *dev)
 {
 	struct tsec_private *priv = (struct tsec_private *)dev->priv;
 	struct phy_info *curphy;
-	volatile tsec_t *phyregs = priv->phyregs;
 	volatile tsec_t *regs = priv->regs;
 
 	/* Assign a Physical address to the TBI */
 	regs->tbipa = CFG_TBIPA_VALUE;
-	phyregs->tbipa = CFG_TBIPA_VALUE;
 	asm("sync");
 
 	/* Reset MII (due to new addresses) */
-- 
1.5.4.3

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2008-09-16  4:20 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-09-10 23:06 [U-Boot] [PATCH v3] Support for multiple SGMII/TBI interfaces for TSEC ethernet Peter Tyser
2008-09-10 23:08 ` Ben Warren
2008-09-15 21:13 ` Andy Fleming
2008-09-15 22:17   ` Peter Tyser
2008-09-16  0:42     ` Andy Fleming
2008-09-16  3:55       ` Peter Tyser
2008-09-16  4:20         ` Andy Fleming

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox