FEC Not working with imx27 based board

Kamel BOUHARA k.bouhara at gmail.com
Tue Jul 19 12:33:26 EDT 2011


Yes I've set the correct adress and it's why I don't have fffff like on the
phytec.
But in fact I had to change the fec_get_hwadrr() to make it work with my
board :

static int fec_get_hwaddr(struct eth_device *dev, unsigned char *mac)

{

 int i;

 int uninitialized = 0;


>  for (i=0;i<6;i++) {

 mac[6-1-i] = readl(&IIM_BANK_REG(0,(IIM0_MAC+i)));

 }


>  /* uninitialized if all 00 */

 if ((mac[0] == 0) && (mac[1] == 0) && (mac[2] == 0) &&

            (mac[3] == 0) && (mac[4] == 0) && (mac[5] == 0))

                uninitialized = 1;


>  /* uninitialized if all FF (could be safe) */

        if ((mac[0] == 0xff) && (mac[1] == 0xff) && (mac[2] == 0xff) &&

     (mac[3] == 0xff) && (mac[4] == 0xff) && (mac[5] == 0xff))

         uninitialized = 1;


>  return uninitialized;

}


Before this change it wasn't the case, I had no mac adress in barebox
start...
I also added a specific reset :

void fec_reset()
{
        int i=0;
    /*  FEC RESET */
    imx_gpio_mode(CFG_ETHPHY_RST | GPIO_OUT | GPIO_PUEN | GPIO_GPIO);
    printf("Before PHY reset\n");
    GPIO_CLEAR(CFG_ETHPHY_RST);
    udelay(200);
    GPIO_SET(CFG_ETHPHY_RST);
    printf("After PHY reset\n");

}

And then I call it in the fec_probe() to ensure the fec is reset properly
before settings.
I already tested the fec on u-boot and it works fine, so i tought it can
help me with barebox but it seems there are some differences between codes.

For now Im trying to see if it can be a cpu frequence problem because I have
an errata on the pll that shifts all my frequencies and so I have to adjust
them in the lowlevelinit...

So I would like to know if the clock initialization is taking effect if I
boot from RAM ? Do I have t boot from flash ?

Thanks again.

2011/7/12 Sascha Hauer <s.hauer at pengutronix.de>

> On Tue, Jul 12, 2011 at 03:54:43PM +0200, Sascha Hauer wrote:
> > On Mon, Jul 11, 2011 at 05:14:54PM +0200, Kamel BOUHARA wrote:
> > > Hi,
> > >
> > > Im trying to port barebox to my Armadeus apf27 board (based on the
> Freescale
> > > imx27 with a 512MiB NAND and 1GB of SDRAM).
> > > I've first tried the phytec imx27 configuration and I got it worked
> until
> > > the Linux uncompressing task (the machine ID is bad so I didn't expect
> it
> > > will boot fine :)).
> > > So I just copied the phycard-imx27 board directory and I followed the
> > > boards.dox in order to add support for my board.
> > > But when I've tried to boot again it was not working anymore ...
> > >
> > > There are somethings stranges with the FEC, here is the result of a
> memory
> > > display with both phytec and my own board :
> > >
> > > > barebox at Phytec phyCard-i.MX27:/ md -s /dev/phy0
> > > >
> > > > 00000000: ffffffff ffffffff ffffffff ffffffff ................
> > > >
> > > > 00000010: ffffffff ffffffff ffffffff ffffffff ................
> > > >
> > > > 00000020: ffffffff ffffffff ffffffff ffffffff ................
> > > >
> > > > 00000030: ffffffff ffffffff ffffffff ffffffff ................
> >
> > This means your phy is not configured correctly. Do you usse the correct
> > address (can be passed in platform_data).
>
> GPIO pins which hold the phy in reset are another thing which might go
> wrong.
>
> Sascha
>
> --
> Pengutronix e.K.                           |                             |
> Industrial Linux Solutions                 | http://www.pengutronix.de/  |
> Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
> Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
>



-- 
__________________________________
*Kamel BOUHARA*
7 rue Jules César
02100 SAINT-QUENTIN
06.17.83.29.04
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.infradead.org/pipermail/barebox/attachments/20110719/459b839f/attachment.html>


More information about the barebox mailing list