We will definately need more info.
Do you get a link light on your computer ( does it say the cable is connected )?
I added code in the project to eliminate the need to make any changes to the ethernet settings
on the PC side. So you should not have to force your PC to a speed or duplex setting.
Try the following command at the serial prompt:
ifstat
It gives a ethernet link status. It can also be used to force the link from the ColdFire side.
Try a the iface soft command. This forces a software negotiation.
Code:/* FUNCTION: ifstats() * * per-iface portion of iface_stats() * * PARAM1: void * pio - output stream * PARAM2: int ifc - interface to dump * * EMG - Overloaded function with autonegotiation configuration and soft negotiation * * RETURNS: 0 */intifstats(void * pio, struct net * ifp){ uint16 reg0, reg4, settings; uint8 datarate, duplexe, manual, autodone; char *cp; datarate = 0; duplexe = 0; manual = 0; autodone = 0; /* get an optional parameter */ cp = nextarg(((GEN_IO)pio)->inbuf); if( *cp ) { if( strcmp( cp, "soft") == 0 ) { ns_printf(pio, "\nPerforming Soft Ethernet Negotiation" ); if( SoftEthernetNegotiation( 1 ) ) ns_printf(pio, "\nSuccessfully Negotiated" ); else { ns_printf(pio, "\nTry Manual Negotiation" ); } ns_printf(pio,"\n\n" ); return(0); } // We have a parameter if( strstr(cp, "10") ) datarate = 10; if( strstr(cp, "100") ) datarate = 100; if( strstr(cp, "manual") ) manual = 'm'; if( strstr(cp, "auto") ) manual = 'a'; cp = nextarg(((GEN_IO)pio)->inbuf); if( *cp ) { if( strstr(cp, "half") ) duplexe = 'h'; if( strstr(cp, "full") ) duplexe = 'f'; } } if( datarate || duplexe || manual ) { ns_printf(pio,"\nSetting ePHY to"); (void)fec_mii_read(0, 0, ®0); (void)fec_mii_read(0, 4, ®4); if( datarate == 100 ) { ns_printf(pio," - 100 Mbps"); reg0 |= 0x2000; } else { reg0 &= ~0x2000; ns_printf(pio," - 10 Mbps"); } if( duplexe == 'f' ) { ns_printf(pio," - Full Duplex"); reg0 |= 0x0100; } else { reg0 &= ~0x0100; ns_printf(pio," - Half Duplex"); } if( manual == 'm' ) { ns_printf(pio," - manual"); reg0 &= ~0x1000; } if( manual == 'a' ) { ns_printf(pio," - auto"); reg0 |= 0x1000; } if( (datarate == 100) && (duplexe == 'f') ) { ns_printf(pio," - Advertise 100FD"); reg4 |= 0x0100; } else { ns_printf(pio," - do NOT Advertise 100FD"); reg4 &= ~0x0100; } if( (datarate == 100) && (duplexe == 'h') ) { ns_printf(pio," - Advertise 100HD"); reg4 |= 0x0080; } else { ns_printf(pio," - do NOT Advertise 100HD"); reg4 &= ~0x0080; } if( (datarate == 10) && (duplexe == 'f') ) { ns_printf(pio," - Advertise 10FD"); reg4 |= 0x0040; } else { ns_printf(pio," - do NOT Advertise 10FD"); reg4 &= ~0x0040; } if( (datarate == 10) && (duplexe == 'h') ) { ns_printf(pio," - Advertise 10HD"); reg4 |= 0x0020; } else { ns_printf(pio," - do NOT Advertise 10HD"); reg4 &= ~0x0020; } (void)fec_mii_write( 0, 4, reg4 ); (void)fec_mii_write( 0, 0, reg0 ); (void)fec_mii_write( 0, 0, (reg0|0x0200) ); // Force re-negotiate ns_printf(pio,"\n\n" ); return 0; } Message Edited by Alban on 2006-09-08 11:42 AM