[U-Boot] [PATCH] Revert "net: phy: delay only if reset handler is registered"

Fabio Estevam festevam at gmail.com
Wed Nov 18 12:30:18 CET 2015


Hi Stefan,

On Wed, Nov 18, 2015 at 3:54 AM, Stefan Roese <stefan.roese at gmail.com> wrote:

> I'm not sure if this revert is the right way to solve this problem.
> Please take a look at my answer a few weeks ago:
>
> https://www.mail-archive.com/u-boot@lists.denx.de/msg191206.html
>
> As mentioned in my mail above, the delay should be added after
> the deassertion of the PHY reset signal. And not here in
> phy_find_by_mask() for all boards.
>
> I just checked the code in mx6sxsabresd.c. Here also the delay is
> missing:
>
>         /* Reset AR8031 PHY */
>         gpio_direction_output(IMX_GPIO_NR(2, 7) , 0);
>         udelay(500);
>         gpio_set_value(IMX_GPIO_NR(2, 7), 1);
>
> Could you please test with this change:
>
>         /* Reset AR8031 PHY */
>         gpio_direction_output(IMX_GPIO_NR(2, 7) , 0);
>         udelay(500);
>         gpio_set_value(IMX_GPIO_NR(2, 7), 1);
> +       udelay(1500);
>
> Or even better, check how long the reset needs to be inactive
> before the PHY starts to work.

Sure, I have even tried:

--- a/board/freescale/mx6sxsabresd/mx6sxsabresd.c
+++ b/board/freescale/mx6sxsabresd/mx6sxsabresd.c
@@ -163,8 +163,9 @@ static int setup_fec(void)

        /* Reset AR8031 PHY */
        gpio_direction_output(IMX_GPIO_NR(2, 7) , 0);
-       udelay(500);
+       udelay(50000);
        gpio_set_value(IMX_GPIO_NR(2, 7), 1);
+       udelay(50000);

        reg = readl(&anatop->pll_enet);
        reg |= BM_ANADIG_PLL_ENET_REF_25M_ENABLE;

and it does not work here:

U-Boot 2016.01-rc1-00022-gfe52456-dirty (Nov 18 2015 - 09:28:02 -0200)

CPU:   Freescale i.MX6SX rev1.0 996 MHz (running at 792 MHz)
CPU:   Extended Commercial temperature grade (-20C to 105C) at 44C
Reset cause: POR
Board: MX6SX SABRE SDB
I2C:   ready
DRAM:  1 GiB
PMIC:  PFUZE100 ID=0x10
MMC:   FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2
PCI:   pcie phy link never came up
In:    serial
Out:   serial
Err:   serial
Net:   Board Net Initialization Failed
No ethernet found.
Hit any key to stop autoboot:  0
Booting from net ...
No ethernet found.
No ethernet found.
Bad Linux ARM zImage magic!

Regards,

Fabio Estevam


More information about the U-Boot mailing list