[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