diff mbox

[U-Boot] da850/omap-l138: Enable auto negotiation in RMII mode

Message ID 1338557677-18659-1-git-send-email-prabhakar.lad@ti.com
State Changes Requested
Delegated to: Tom Rini
Headers show

Commit Message

Prabhakar Lad June 1, 2012, 1:34 p.m. UTC
From: Rajashekhara, Sudhakar <sudhakar.raj@ti.com>

On DA850/OMAP-L138 it was observed that in RMII mode,
auto negotiation was not performed. This patch enables
auto negotiation in RMII mode. Without this patch, EMAC
initialization takes more time and sometimes tftp fails
in RMII mode.

Signed-off-by: Rajashekhara, Sudhakar <sudhakar.raj@ti.com>
Signed-off-by: Lad, Prabhakar <prabhakar.lad@ti.com>
Signed-off-by: Hadli, Manjunath <manjunath.hadli@ti.com>
---
 drivers/net/davinci_emac.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

Comments

Tom Rini June 4, 2012, 10:29 p.m. UTC | #1
On Fri, Jun 01, 2012 at 07:04:37PM +0530, Prabhakar Lad wrote:
> From: Rajashekhara, Sudhakar <sudhakar.raj@ti.com>
> 
> On DA850/OMAP-L138 it was observed that in RMII mode,
> auto negotiation was not performed. This patch enables
> auto negotiation in RMII mode. Without this patch, EMAC
> initialization takes more time and sometimes tftp fails
> in RMII mode.
> 
> Signed-off-by: Rajashekhara, Sudhakar <sudhakar.raj@ti.com>
> Signed-off-by: Lad, Prabhakar <prabhakar.lad@ti.com>
> Signed-off-by: Hadli, Manjunath <manjunath.hadli@ti.com>
> ---
>  drivers/net/davinci_emac.c |    5 +++++
>  1 files changed, 5 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/net/davinci_emac.c b/drivers/net/davinci_emac.c
> index fbd0f1b..9bbd625 100644
> --- a/drivers/net/davinci_emac.c
> +++ b/drivers/net/davinci_emac.c
> @@ -895,5 +895,10 @@ int davinci_emac_initialize(void)
>  		miiphy_register(phy[i].name, davinci_mii_phy_read,
>  						davinci_mii_phy_write);
>  	}
> +
> +#if defined(CONFIG_DRIVER_TI_EMAC_USE_RMII) && \
> +		defined(CONFIG_MACH_DAVINCI_DA850_EVM)
> +	gen_auto_negotiate(active_phy_addr);
> +#endif

Why not just check on CONFIG_DRIVER_TI_EMAC_USE_RMII ?  Would it be
harmful to try and re-auto negotiate on some RMII hardware that already
did it?
Christian Riesch June 5, 2012, 11:34 a.m. UTC | #2
Hi,

On Fri, Jun 1, 2012 at 3:34 PM, Prabhakar Lad <prabhakar.lad@ti.com> wrote:
> From: Rajashekhara, Sudhakar <sudhakar.raj@ti.com>
>
> On DA850/OMAP-L138 it was observed that in RMII mode,
> auto negotiation was not performed. This patch enables
> auto negotiation in RMII mode. Without this patch, EMAC
> initialization takes more time and sometimes tftp fails
> in RMII mode.
>

This patch causes a warning for the ea20 board:
davinci_emac.c: In function 'davinci_emac_initialize':
davinci_emac.c:901:2: warning: passing argument 1 of
'gen_auto_negotiate' makes integer from pointer without a cast
davinci_emac.c:355:12: note: expected 'int' but argument is of type 'u_int8_t *'

(found with ./MAKEALL -s davinci)

Regards, Christian

> Signed-off-by: Rajashekhara, Sudhakar <sudhakar.raj@ti.com>
> Signed-off-by: Lad, Prabhakar <prabhakar.lad@ti.com>
> Signed-off-by: Hadli, Manjunath <manjunath.hadli@ti.com>
> ---
>  drivers/net/davinci_emac.c |    5 +++++
>  1 files changed, 5 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/net/davinci_emac.c b/drivers/net/davinci_emac.c
> index fbd0f1b..9bbd625 100644
> --- a/drivers/net/davinci_emac.c
> +++ b/drivers/net/davinci_emac.c
> @@ -895,5 +895,10 @@ int davinci_emac_initialize(void)
>                miiphy_register(phy[i].name, davinci_mii_phy_read,
>                                                davinci_mii_phy_write);
>        }
> +
> +#if defined(CONFIG_DRIVER_TI_EMAC_USE_RMII) && \
> +               defined(CONFIG_MACH_DAVINCI_DA850_EVM)
> +       gen_auto_negotiate(active_phy_addr);
> +#endif
>        return(1);
>  }
> --
> 1.7.4.1
>
> _______________________________________________
> U-Boot mailing list
> U-Boot@lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
Prabhakar Lad June 6, 2012, 7:46 a.m. UTC | #3
Hi Tom,
On Tue, Jun 05, 2012 at 03:59:08, Rini, Tom wrote:
> On Fri, Jun 01, 2012 at 07:04:37PM +0530, Prabhakar Lad wrote:
> > From: Rajashekhara, Sudhakar <sudhakar.raj@ti.com>
> > 
> > On DA850/OMAP-L138 it was observed that in RMII mode, auto negotiation 
> > was not performed. This patch enables auto negotiation in RMII mode. 
> > Without this patch, EMAC initialization takes more time and sometimes 
> > tftp fails in RMII mode.
> > 
> > Signed-off-by: Rajashekhara, Sudhakar <sudhakar.raj@ti.com>
> > Signed-off-by: Lad, Prabhakar <prabhakar.lad@ti.com>
> > Signed-off-by: Hadli, Manjunath <manjunath.hadli@ti.com>
> > ---
> >  drivers/net/davinci_emac.c |    5 +++++
> >  1 files changed, 5 insertions(+), 0 deletions(-)
> > 
> > diff --git a/drivers/net/davinci_emac.c b/drivers/net/davinci_emac.c 
> > index fbd0f1b..9bbd625 100644
> > --- a/drivers/net/davinci_emac.c
> > +++ b/drivers/net/davinci_emac.c
> > @@ -895,5 +895,10 @@ int davinci_emac_initialize(void)
> >  		miiphy_register(phy[i].name, davinci_mii_phy_read,
> >  						davinci_mii_phy_write);
> >  	}
> > +
> > +#if defined(CONFIG_DRIVER_TI_EMAC_USE_RMII) && \
> > +		defined(CONFIG_MACH_DAVINCI_DA850_EVM)
> > +	gen_auto_negotiate(active_phy_addr);
> > +#endif
> 
> Why not just check on CONFIG_DRIVER_TI_EMAC_USE_RMII ?  Would it be harmful to try and re-auto negotiate on some RMII hardware that already did it?
Some of the phy's might not support auto negotiation, Not sure what will be
the behavior on these phy's on enabling auto negotiation. So as to avoid this case this check is added.

Thx,
--Prabhakar Lad
> 
> --
> Tom
>
Prabhakar Lad June 6, 2012, 8:26 a.m. UTC | #4
Hi Christian, 

On Tue, Jun 05, 2012 at 17:04:13, Christian Riesch wrote:
> Hi,
> 
> On Fri, Jun 1, 2012 at 3:34 PM, Prabhakar Lad <prabhakar.lad@ti.com> wrote:
> > From: Rajashekhara, Sudhakar <sudhakar.raj@ti.com>
> >
> > On DA850/OMAP-L138 it was observed that in RMII mode,
> > auto negotiation was not performed. This patch enables
> > auto negotiation in RMII mode. Without this patch, EMAC
> > initialization takes more time and sometimes tftp fails
> > in RMII mode.
> >
> 
> This patch causes a warning for the ea20 board:
> davinci_emac.c: In function 'davinci_emac_initialize':
> davinci_emac.c:901:2: warning: passing argument 1 of
> 'gen_auto_negotiate' makes integer from pointer without a cast
> davinci_emac.c:355:12: note: expected 'int' but argument is of type 'u_int8_t *'
> 
> (found with ./MAKEALL -s davinci)
> 
  Ok I'll fix this.

Thx,
--Prabhakar Lad

> Regards, Christian
> 
> > Signed-off-by: Rajashekhara, Sudhakar <sudhakar.raj@ti.com>
> > Signed-off-by: Lad, Prabhakar <prabhakar.lad@ti.com>
> > Signed-off-by: Hadli, Manjunath <manjunath.hadli@ti.com>
> > ---
> >  drivers/net/davinci_emac.c |    5 +++++
> >  1 files changed, 5 insertions(+), 0 deletions(-)
> >
> > diff --git a/drivers/net/davinci_emac.c b/drivers/net/davinci_emac.c
> > index fbd0f1b..9bbd625 100644
> > --- a/drivers/net/davinci_emac.c
> > +++ b/drivers/net/davinci_emac.c
> > @@ -895,5 +895,10 @@ int davinci_emac_initialize(void)
> >                miiphy_register(phy[i].name, davinci_mii_phy_read,
> >                                                davinci_mii_phy_write);
> >        }
> > +
> > +#if defined(CONFIG_DRIVER_TI_EMAC_USE_RMII) && \
> > +               defined(CONFIG_MACH_DAVINCI_DA850_EVM)
> > +       gen_auto_negotiate(active_phy_addr);
> > +#endif
> >        return(1);
> >  }
> > --
> > 1.7.4.1
> >
> > _______________________________________________
> > U-Boot mailing list
> > U-Boot@lists.denx.de
> > http://lists.denx.de/mailman/listinfo/u-boot
>
Eric Benard June 6, 2012, 5:17 p.m. UTC | #5
Hi Prabhakar,

Le Fri, 1 Jun 2012 19:04:37 +0530,
Prabhakar Lad <prabhakar.lad@ti.com> a écrit :

> From: Rajashekhara, Sudhakar <sudhakar.raj@ti.com>
> 
> On DA850/OMAP-L138 it was observed that in RMII mode,
> auto negotiation was not performed. This patch enables
> auto negotiation in RMII mode. Without this patch, EMAC
> initialization takes more time and sometimes tftp fails
> in RMII mode.
> 
> Signed-off-by: Rajashekhara, Sudhakar <sudhakar.raj@ti.com>
> Signed-off-by: Lad, Prabhakar <prabhakar.lad@ti.com>
> Signed-off-by: Hadli, Manjunath <manjunath.hadli@ti.com>

Tested-by: Eric Bénard <eric@eukrea.com>
on an AM1808 with a RMII PHY where tftp was nearly always failing.

Eric
Prabhakar Lad June 7, 2012, 10:38 a.m. UTC | #6
Hi Eric,

On Wed, Jun 06, 2012 at 22:47:46, Eric Bénard wrote:
> Hi Prabhakar,
> 
> Le Fri, 1 Jun 2012 19:04:37 +0530,
> Prabhakar Lad <prabhakar.lad@ti.com> a écrit :
> 
> > From: Rajashekhara, Sudhakar <sudhakar.raj@ti.com>
> > 
> > On DA850/OMAP-L138 it was observed that in RMII mode,
> > auto negotiation was not performed. This patch enables
> > auto negotiation in RMII mode. Without this patch, EMAC
> > initialization takes more time and sometimes tftp fails
> > in RMII mode.
> > 
> > Signed-off-by: Rajashekhara, Sudhakar <sudhakar.raj@ti.com>
> > Signed-off-by: Lad, Prabhakar <prabhakar.lad@ti.com>
> > Signed-off-by: Hadli, Manjunath <manjunath.hadli@ti.com>
> 
> Tested-by: Eric Bénard <eric@eukrea.com>
> on an AM1808 with a RMII PHY where tftp was nearly always failing.
> 
  This patch had some build warnings which has been fixed in v2 
  version (http://www.mail-archive.com/u-boot@lists.denx.de/msg85270.html)
  can you test this patch and Ack it.

Thx,
--Prabhakar Lad

> Eric
>
diff mbox

Patch

diff --git a/drivers/net/davinci_emac.c b/drivers/net/davinci_emac.c
index fbd0f1b..9bbd625 100644
--- a/drivers/net/davinci_emac.c
+++ b/drivers/net/davinci_emac.c
@@ -895,5 +895,10 @@  int davinci_emac_initialize(void)
 		miiphy_register(phy[i].name, davinci_mii_phy_read,
 						davinci_mii_phy_write);
 	}
+
+#if defined(CONFIG_DRIVER_TI_EMAC_USE_RMII) && \
+		defined(CONFIG_MACH_DAVINCI_DA850_EVM)
+	gen_auto_negotiate(active_phy_addr);
+#endif
 	return(1);
 }