[U-Boot] Ethernet not found on Arria 5.
Marek Vasut
marex at denx.de
Mon Mar 21 12:18:18 CET 2016
On 03/21/2016 09:16 AM, Bakhvalov, Denis (Nokia - PL/Wroclaw) wrote:
> Hi,
Hi!
> I solved the Ethernet problem on our board.
>
> The problem was in the register below:
>
> Link: http://wl.altera.com/literature/hb/arria-v/hps.html#topic/sfo1410067853518.html
> Registers used by the EMACs. All fields are reset by a cold or warm reset.
> Module Instance Base Address Register Address
> sysmgr 0xFFD08000 0xFFD08060
Thanks for looking into it, try if the attached patch works for you.
Make sure you have correct phy-mode = "gmii"; DT node specified for
the GMAC you use, Arria V SoCDK surely uses phy-mode = "rgmii";
> I found that difference while comparing the dumps between OK and NOK cases.
>
> In new U-Boot (2016) the values of
> ctrl :: physel_0
> ctrl :: physel_1
> were always set to
> 0x1 Select RGMII PHY interface
>
> I changed this value to
> 0x0 Select GMII/MII PHY interface
[...]
> But still I have this sort of question:
> Why those two registers are always assigned to RGMII PHY interface (and default value is 0x2 Select RMII PHY interface)?
> In current code there is no way to change this value.
Most likely because noone ever had a board with PHY connected over
anything else but RGMII, so this went unnoticed.
> I changed it like this:
>
> diff --git a/arch/arm/mach-socfpga/misc.c b/arch/arm/mach-socfpga/misc.c
> old mode 100644
> new mode 100755
> index 9b43b92..295ed5a
> --- a/arch/arm/mach-socfpga/misc.c
> +++ b/arch/arm/mach-socfpga/misc.c
> @@ -23,6 +23,8 @@
>
> @@ -97,14 +99,19 @@ static void dwmac_deassert_reset(const unsigned int of_reset_id)
> SYSMGR_EMACGRP_CTRL_PHYSEL_MASK << physhift);
>
> /* configure to PHY interface select choosed */
> +#ifdef CONFIG_WORKAROUND
> + setbits_le32(&sysmgr_regs->emacgrp_ctrl,
> + SYSMGR_EMACGRP_CTRL_PHYSEL_ENUM_GMII_MII << physhift);
> +#else
> setbits_le32(&sysmgr_regs->emacgrp_ctrl,
> SYSMGR_EMACGRP_CTRL_PHYSEL_ENUM_RGMII << physhift);
> +#endif
>
> /* Release the EMAC controller from reset */
> socfpga_per_reset(reset, 0);
> }
>
> Please evaluate my correction.
> Maybe we can assign ctrl :: physel_0 and ctrl :: physel_1 based on some switch in config?
We should parse the OF node phy-mode, which describes which mode your
PHY uses. If your DT is written correctly, then with the attached patch,
any PHY mode should work.
> Best regards,
> Denis Bakhvalov
>
--
Best regards,
Marek Vasut
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-arm-socfpga-Handle-phy-mode-OF-property-for-GMACs.patch
Type: text/x-patch
Size: 2868 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160321/930e3d3f/attachment.bin>
More information about the U-Boot
mailing list