[U-Boot] Ethernet support on mx6slevk board

Message ID 81BA6E5E0BC2344391CABCEE22D1B6D838C90F@039-SN1MPN1-004.039d.mgd.msft.net
State Not Applicable
Delegated to: Stefano Babic
Headers show

Commit Message

Alison Wang July 5, 2013, 11:12 a.m.
Hi, Shawn,

> -----Original Message-----
> From: u-boot-bounces@lists.denx.de [mailto:u-boot-bounces@lists.denx.de]
> On Behalf Of Shawn Guo
> Sent: Friday, July 05, 2013 11:42 AM
> To: Estevam Fabio-R49496; U-Boot-Denx
> Subject: [U-Boot] Ethernet support on mx6slevk board
> Hi,
> I'm running U-Boot 2013.07-rc2 and seeing Ethernet is failed to
> initialize.  Is it a known issue or something not supported yet?  It's
> unlikely my setup problem, since I have a vendor U-Boot running the
> board just fine.
[Alison Wang] I am not sure it is caused by my previous patch bcb6e9023a119a1cbcaf8289576e5aa155331802
Which FEC_RCNTRL_MII_MODE may not be set correctly for other boards. As I don't have
Mx6slevk board, could you revert and try again?


commit bcb6e9023a119a1cbcaf8289576e5aa155331802
Author: Alison Wang <b18965@freescale.com>
Date:   Mon May 27 22:55:43 2013 +0000

    net: fec_mxc: Add support for Vybrid VF610

    This patch adds FEC support for Vybrid VF610 platform.

    In function fec_open(), RCR register is only set as RGMII mode. But RCR
    register should be set as RMII mode for VF610 platform.
    This configuration is already done in fec_reg_setup(), so this piece of
    code could just leave untouched the FEC_RCNTRL_RGMII / FEC_RCNTRL_RMII /

    Signed-off-by: Alison Wang <b18965@freescale.com>
    Reviewed-by: Benoit Thebaudeau <benoit.thebaudeau@advansee.com>

Best Regards,
Alison Wang


diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c
index 4dbcdca..da95e28 100644
--- a/drivers/net/fec_mxc.c
+++ b/drivers/net/fec_mxc.c
@@ -516,9 +516,7 @@  static int fec_open(struct eth_device *edev)
 		u32 ecr = readl(&fec->eth->ecntrl) & ~FEC_ECNTRL_SPEED;
-		u32 rcr = (readl(&fec->eth->r_cntrl) &
+		u32 rcr = readl(&fec->eth->r_cntrl) & ~FEC_RCNTRL_RMII_10T;
 		if (speed == _1000BASET)
 			ecr |= FEC_ECNTRL_SPEED;
 		else if (speed != _100BASET)