Bug 12263 - r5974 does not connect to wired network without a reboot (DHCP can't be found)
: r5974 does not connect to wired network without a reboot (DHCP can't be found)
Status: RESOLVED FIXED
Product: SB Radio
Classification: Unclassified
Component: Networking
: Include FW version in comment
: PC All
: -- critical (vote)
: MPQ
Assigned To: Richard Titmuss
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2009-06-04 12:30 UTC by James Richardson
Modified: 2009-09-08 09:26 UTC (History)
2 users (show)

See Also:
Category: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description James Richardson 2009-06-04 12:30:41 UTC
Testing PB2 firmware r5974, the wired option fails to see ANY valid DHCP servers

I don't have a serial cable, so can not provide any logs
Comment 1 Anoop Mehta 2009-06-04 12:36:01 UTC
I also ran into this issue with r5974. After I got the DHCP error, I selected the option "Try Again" and Baby returned the error "We cannot detect a wired connection. IF you haven't connected your Squeezebox to your network with an Ethernet cable, please do so now.
Comment 2 Blackketter Dean 2009-06-04 16:07:55 UTC
Felix: any idea?
Comment 3 Blackketter Dean 2009-06-04 16:10:33 UTC
It appears to work if you switch to ethernet, then reboot.
Comment 4 Blackketter Dean 2009-06-11 10:31:57 UTC
Caleb thinks that this is due to the ethernet phy chip not being reinitialized by the kernel on an ifup (Redboot is doing the initialization at boot time only)
Comment 5 Blackketter Dean 2009-06-11 10:38:52 UTC
Caleb to add pin definition and initialize sequence
Comment 6 Caleb Crome 2009-06-11 11:01:15 UTC
This could be related to the PHY changes that were required in redboot, that did not get reflected into the kernel.

The redboot FEC changes are in baby-fec.patch.

The differences between rtl8201cp and rtl8203el are:

* The FEC Reset pin is on CSI_D7
* Only RMII pins are used, not MII. This means only: fec_mdc, fec_mdio, fec_tx_clk, fec_rx_dv, fec_rxd[1..0], fec_tx_en, fec_txd[1..0], fec_rx_er, fec_reset#, fec_int#.  Pins:  fec_txd[3..2], fec_rxc, fec_col, fec_rxd[3..2] are UNUSED.
* before reset, be sure to set fec_rx_er (uart2_cts) into FEC mode.
* Reset must be held low for 1 ms, then pulled high, then you WAIT for 250mS before continuing.
* after reset, you must set a register on the PHY to make TX Clock an output, and set to RMII mode.  This is done with the following code in redboot:

		mxc_fec_mii_read(dev->hw_reg, dev->phy_addr, 25, &value);
		value &= ~(1 << 11); /* set TX clock to an output */
		value |=  (1 << 10); /* set to RMII mode */
		mxc_fec_mii_write(dev->hw_reg, dev->phy_addr, 25, value);

* Additionally, I'll file another bug to remove advertisement of half duplex capability due to the RTL8201EL half-duplex-rmii bug.
Comment 7 Richard Titmuss 2009-06-18 05:17:28 UTC
The ethernet PHY link detection was broken. Fixed in fab4 r6158.