All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ben Warren <biggerbadderben@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 1/2] cpuat91: unbreak ethernet
Date: Sun, 20 Jun 2010 23:02:26 -0700	[thread overview]
Message-ID: <4C1F0072.70807@gmail.com> (raw)
In-Reply-To: <1276206653-24458-1-git-send-email-eric@eukrea.com>

Hi Eric,

On 6/10/2010 2:50 PM, Eric B?nard wrote:
> * the following problems are met :
> config was set to use the new driver as a default but
> - RMII was not enabled for the new driver
> - the new driver didn't compile with RMII enabled
> - the new driver initialize a PHY at address O when the PHY of
> this board is at 1 thus we get "AT91 EMAC RMII: No PHY present"
>
> * to fix these problems, this patch :
> - enable RMII for the new driver
> - fix the wrong define used in the at91_emac.c
> - allow the config file to set a default phy address (and use
> 0 as a default as in the actual at91_emac.c driver)
>
> Signed-off-by: Eric B?nard<eric@eukrea.com>
> ---
>   drivers/net/at91_emac.c   |   24 ++++++++++++++----------
>   include/configs/cpuat91.h |    9 +++------
>   2 files changed, 17 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/net/at91_emac.c b/drivers/net/at91_emac.c
> index 2399569..1ebcf05 100644
> --- a/drivers/net/at91_emac.c
> +++ b/drivers/net/at91_emac.c
> @@ -53,6 +53,10 @@
>   	Please decrease the CONFIG_SYS_RX_ETH_BUFFER value
>   #endif
>
> +#ifndef CONFIG_DRIVER_AT91EMAC_PHYADDR
> +#define CONFIG_DRIVER_AT91EMAC_PHYADDR	0
> +#endif
> +
>   /* MDIO clock must not exceed 2.5 MHz, so enable MCK divider */
>   #if (AT91C_MASTER_CLOCK>  80000000)
>   	#define HCLK_DIV	AT91_EMAC_CFG_MCLK_64
> @@ -198,12 +202,12 @@ static int at91emac_phy_reset(struct eth_device *netdev)
>   	emac = (at91_emac_t *) netdev->iobase;
>
>   	adv = ADVERTISE_CSMA | ADVERTISE_ALL;
> -	at91emac_write(emac, 0, MII_ADVERTISE, adv);
> +	at91emac_write(emac, CONFIG_DRIVER_AT91EMAC_PHYADDR, MII_ADVERTISE, adv);
>   	VERBOSEP("%s: Starting autonegotiation...\n", netdev->name);
> -	at91emac_write(emac, 0, MII_BMCR, (BMCR_ANENABLE | BMCR_ANRESTART));
> +	at91emac_write(emac, CONFIG_DRIVER_AT91EMAC_PHYADDR, MII_BMCR, (BMCR_ANENABLE | BMCR_ANRESTART));
>    
This line's too long.  Please check the other ones too.  Try to keep 
less than 78 characters.
>
>   	for (i = 0; i<  100000 / 100; i++) {
> -		at91emac_read(emac, 0, MII_BMSR,&status);
> +		at91emac_read(emac, CONFIG_DRIVER_AT91EMAC_PHYADDR, MII_BMSR,&status);
>   		if (status&  BMSR_ANEGCOMPLETE)
>   			break;
>   		udelay(100);
> @@ -229,13 +233,13 @@ static int at91emac_phy_init(struct eth_device *netdev)
>   	emac = (at91_emac_t *) netdev->iobase;
>
>   	/* Check if the PHY is up to snuff... */
> -	at91emac_read(emac, 0, MII_PHYSID1,&phy_id);
> +	at91emac_read(emac, CONFIG_DRIVER_AT91EMAC_PHYADDR, MII_PHYSID1,&phy_id);
>   	if (phy_id == 0xffff) {
>   		printf("%s: No PHY present\n", netdev->name);
>   		return 1;
>   	}
>
> -	at91emac_read(emac, 0, MII_BMSR,&status);
> +	at91emac_read(emac, CONFIG_DRIVER_AT91EMAC_PHYADDR, MII_BMSR,&status);
>
>   	if (!(status&  BMSR_LSTATUS)) {
>   		/* Try to re-negotiate if we don't have link already. */
> @@ -243,7 +247,7 @@ static int at91emac_phy_init(struct eth_device *netdev)
>   			return 2;
>
>   		for (i = 0; i<  100000 / 100; i++) {
> -			at91emac_read(emac, 0, MII_BMSR,&status);
> +			at91emac_read(emac, CONFIG_DRIVER_AT91EMAC_PHYADDR, MII_BMSR,&status);
>   			if (status&  BMSR_LSTATUS)
>   				break;
>   			udelay(100);
> @@ -253,8 +257,8 @@ static int at91emac_phy_init(struct eth_device *netdev)
>   		VERBOSEP("%s: link down\n", netdev->name);
>   		return 3;
>   	} else {
> -		at91emac_read(emac, 0, MII_ADVERTISE,&adv);
> -		at91emac_read(emac, 0, MII_LPA,&lpa);
> +		at91emac_read(emac, CONFIG_DRIVER_AT91EMAC_PHYADDR, MII_ADVERTISE,&adv);
> +		at91emac_read(emac, CONFIG_DRIVER_AT91EMAC_PHYADDR, MII_LPA,&lpa);
>   		media = mii_nway_result(lpa&  adv);
>   		speed = (media&  (ADVERTISE_100FULL | ADVERTISE_100HALF)
>   			 ? 1 : 0);
> @@ -271,7 +275,7 @@ int at91emac_UpdateLinkSpeed(at91_emac_t *emac)
>   {
>   	unsigned short stat1;
>
> -	at91emac_read(emac, 0, MII_BMSR,&stat1);
> +	at91emac_read(emac, CONFIG_DRIVER_AT91EMAC_PHYADDR, MII_BMSR,&stat1);
>
>   	if (!(stat1&  BMSR_LSTATUS))	/* link status up? */
>   		return 1;
> @@ -372,7 +376,7 @@ static int at91emac_init(struct eth_device *netdev, bd_t *bd)
>   	value = AT91_EMAC_CFG_CAF |	AT91_EMAC_CFG_NBC |
>   		HCLK_DIV;
>   #ifdef CONFIG_RMII
> -	value |= AT91C_EMAC_RMII;
> +	value |= AT91_EMAC_CFG_RMII;
>   #endif
>   	writel(value,&emac->cfg);
>
> diff --git a/include/configs/cpuat91.h b/include/configs/cpuat91.h
> index b4fda76..049298c 100644
> --- a/include/configs/cpuat91.h
> +++ b/include/configs/cpuat91.h
> @@ -131,15 +131,12 @@
>   	(CONFIG_SYS_MEMTEST_START + PHYS_SDRAM_SIZE - 512 * 1024)
>
>   #define CONFIG_NET_MULTI		1
> -#ifdef CONFIG_NET_MULTI
>   #define CONFIG_DRIVER_AT91EMAC		1
>   #define CONFIG_SYS_RX_ETH_BUFFER	8
> -#else
> -#define CONFIG_DRIVER_ETHER		1
> -#endif
> +#define CONFIG_RMII			1
> +#define CONFIG_MII			1
> +#define CONFIG_DRIVER_AT91EMAC_PHYADDR	1
>   #define CONFIG_NET_RETRY_COUNT			20
> -#define CONFIG_AT91C_USE_RMII			1
> -#define CONFIG_PHY_ADDRESS			(1<<  5)
>   #define CONFIG_KS8721_PHY			1
>
>   #define CONFIG_SYS_FLASH_CFI			1
>    
regards,
Ben

  parent reply	other threads:[~2010-06-21  6:02 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-10 21:50 [U-Boot] [PATCH 1/2] cpuat91: unbreak ethernet Eric Bénard
2010-06-10 21:50 ` [U-Boot] [PATCH 2/2] cpuat91: convert to new at91 soc architecture Eric Bénard
2010-06-21  6:02 ` Ben Warren [this message]
2010-06-21  7:40   ` [U-Boot] [PATCH v2] cpuat91: unbreak ethernet Eric Bénard
2010-06-21 17:56     ` Ben Warren

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4C1F0072.70807@gmail.com \
    --to=biggerbadderben@gmail.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.