<br><font size=2 face="sans-serif">&nbsp; On my Cell blade this failed
on the latest build (be0646). Running with the changes to sungem_phy does
not allow the interfaces to ping anything. I went back to the original
and everything works again. All I did was change sungem_phy and force it
to be reloaded, let me know if I missed a step somewhere.</font>
<br><font size=2 face="sans-serif"><br>
Jim Lewis<br>
Advisory Software Engineer<br>
IBM Linux Technology Center<br>
512-838-7754<br>
<br>
<br>
</font>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td width=40%><font size=1 face="sans-serif"><b>Jens Osterkamp &lt;jens@de.ibm.com&gt;</b>
</font>
<p><font size=1 face="sans-serif">11/27/2006 08:47 AM</font>
<td width=59%>
<table width=100%>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">To</font></div>
<td><font size=1 face="sans-serif">netdev@vger.kernel.org, cbe-oss-dev@ozlabs.org</font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">cc</font></div>
<td><font size=1 face="sans-serif">jgarzik@pobox.com, James K Lewis/Austin/IBM@ibmus</font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">Subject</font></div>
<td><font size=1 face="sans-serif">[RFC][PATCH] spidernet: enable fiber
autonegotiation</font></table>
<br>
<table>
<tr valign=top>
<td>
<td></table>
<br></table>
<br>
<br>
<br><tt><font size=2><br>
While experimenting with a copper passthrough module in bladecenter I found
<br>
out that this needs autonegotiation enabled in order to work properly.<br>
This quick hack enables it with the sideeffect of breaking other bladecenter
<br>
switch configurations.<br>
If anyone has any suggestions or has experimented with the same configuration,
<br>
feel free to comment.<br>
<br>
This patch is not meant for inclusion into mainline.<br>
<br>
Signed-off-by: Jens Osterkamp &lt;jens@de.ibm.com&gt;<br>
<br>
Index: linux-2.6.19-rc6/drivers/net/spider_net.c<br>
===================================================================<br>
--- linux-2.6.19-rc6.orig/drivers/net/spider_net.c<br>
+++ linux-2.6.19-rc6/drivers/net/spider_net.c<br>
@@ -1724,8 +1724,10 @@ spider_net_setup_phy(struct spider_net_c<br>
 &nbsp;phy-&gt;mdio_read = spider_net_read_phy;<br>
 &nbsp;phy-&gt;mdio_write = spider_net_write_phy;<br>
 <br>
+ /* reset phy, read id and setup phy struct with phy ops*/<br>
 &nbsp;mii_phy_probe(phy, phy-&gt;mii_id);<br>
 <br>
+ /* write fix speed and duplex to BMCR */<br>
 &nbsp;if (phy-&gt;def-&gt;ops-&gt;setup_forced)<br>
 &nbsp; phy-&gt;def-&gt;ops-&gt;setup_forced(phy, SPEED_1000, DUPLEX_FULL);<br>
 <br>
Index: linux-2.6.19-rc6/drivers/net/sungem_phy.c<br>
===================================================================<br>
--- linux-2.6.19-rc6.orig/drivers/net/sungem_phy.c<br>
+++ linux-2.6.19-rc6/drivers/net/sungem_phy.c<br>
@@ -335,10 +335,6 @@ static int bcm5421_enable_fiber(struct m<br>
 &nbsp;/* LEDs active in both modes, autosense prio = fiber */<br>
 &nbsp;phy_write(phy, MII_NCONFIG, 0x945f);<br>
 <br>
- /* switch off fibre autoneg */<br>
- phy_write(phy, MII_NCONFIG, 0xfc01);<br>
- phy_write(phy, 0x0b, 0x0004);<br>
-<br>
 &nbsp;return 0;<br>
 }<br>
 <br>
@@ -347,7 +343,7 @@ static int bcm5461_enable_fiber(struct m<br>
 &nbsp;phy_write(phy, MII_NCONFIG, 0xfc0c);<br>
 &nbsp;phy_write(phy, MII_BMCR, 0x4140);<br>
 &nbsp;phy_write(phy, MII_NCONFIG, 0xfc0b);<br>
- phy_write(phy, MII_BMCR, 0x0140);<br>
+ phy_write(phy, MII_BMCR, 0x1140);<br>
 <br>
 &nbsp;return 0;<br>
 }<br>
</font></tt>
<br>