[U-Boot] PATCH macb fix phy address

michael trimarchi at gandalf.sssup.it
Wed Nov 12 13:27:18 CET 2008


Hi,

In the past I think the same thing but:

Giulio Benetti wrote:
> - Fixed finding phyter address
> - Added searching for other addresses if not found
>
> diff -urpN -X macb-exclude u-boot.orig/drivers/net/macb.c 
> u-boot/drivers/net/macb.c
> --- u-boot.orig/drivers/net/macb.c	2008-08-12 16:08:38.000000000 +0200
> +++ u-boot/drivers/net/macb.c	2008-11-12 12:51:16.000000000 +0100
> @@ -1,5 +1,7 @@
>  /*
>   * Copyright (C) 2005-2006 Atmel Corporation
> + * Giulio Benetti <giulio.benetti at micronovasrl.com>
> + * Micronova srl <info at micronovasrl.com>
>   *
>   * This program is free software; you can redistribute it and/or modify
>   * it under the terms of the GNU General Public License as published by
> @@ -84,6 +86,8 @@ struct macb_dma_desc {
>  #define TXBUF_WRAP		0x40000000
>  #define TXBUF_USED		0x80000000
>  
> +#define MAX_PHY_ADDRESS_NUMBER	32
> +
>  struct macb_device {
>  	void			*regs;
>  
> @@ -325,8 +329,18 @@ static int macb_phy_init(struct macb_dev
>  	int i;
>  
>  	/* Check if the PHY is up to snuff... */
> -	phy_id = macb_mdio_read(macb, MII_PHYSID1);
> -	if (phy_id == 0xffff) {
> +	printf("%s: Finding PHYs\n", netdev->name);
> +
> +	for(i = 0; i < MAX_PHY_ADDRESS_NUMBER; i++) {
> +		lpa = macb_mdio_read(macb, MII_LPA);
> +		phy_id = macb_mdio_read(macb, MII_PHYSID1);
> +		if ((phy_id != 0xffff) && (lpa != 0xffff)) {
> +			break;
> +		}
> +		macb->phy_addr++;
> +	}
> +
> +	if(i >= MAX_PHY_ADDRESS_NUMBER) {
>  		printf("%s: No PHY present\n", netdev->name);
>  		return 0;
>  	}
>
> Signed-off-by: Giulio Benetti <giulio.benetti at micronovasrl.com>
>   
mii info

report that information. ex (take in a past mail)
PHY 0x10: OUI = 0x5043, Model = 0x08, Rev = 0x07,  10baseT, HDX
PHY 0x11: OUI = 0x5043, Model = 0x08, Rev = 0x07,  10baseT, HDX
PHY 0x12: OUI = 0x5043, Model = 0x08, Rev = 0x07,  10baseT, HDX
PHY 0x13: OUI = 0x5043, Model = 0x08, Rev = 0x07, 100baseT, FDX
PHY 0x14: OUI = 0x5043, Model = 0x08, Rev = 0x07,  10baseT, HDX
PHY 0x15: OUI = 0x0000, Model = 0x00, Rev = 0x00,  10baseT, HDX
PHY 0x16: OUI = 0x0000, Model = 0x00, Rev = 0x00,  10baseT, HDX

what code autodetect code pick? And if you have ghost PHYs in the list?

Regards Michael




More information about the U-Boot mailing list