Bugzilla – Bug 12263
r5974 does not connect to wired network without a reboot (DHCP can't be found)
Last modified: 2009-09-08 09:26:40 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
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.
Felix: any idea?
It appears to work if you switch to ethernet, then reboot.
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)
Caleb to add pin definition and initialize sequence
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.
The ethernet PHY link detection was broken. Fixed in fab4 r6158.