All,

I am having issues getting EMAC1 working alongside EMAC0.  We need 
both EMACs running at the same time in U-Boot (U-Boot handles the PHY 
configuration, since the VxWorks implementation of PHY initialization 
is buggy).

What I have done is this:

In net/eth.c I have modified the eth_init(bd_t *bis) function to 
simply initialize both EMACs (line 443).  We use EMAC0 by default, so 
I set eth_current back to EMAC0 when I am finished and return 0 on 
success.  Here is what the function looks like right now:  (I know I 
can clean this up better, but I am looking for a first cut solution 
that works.  When I have it working, I will clean up the code.)

int eth_init(bd_t *bis)
{
        struct eth_device* old_current;

        if (!eth_current) {
                puts ("No ethernet found.\n");
                return -1;
        }

        old_current = eth_current;
        do {
                debug ("Trying %s\n", eth_current->name);

                if (eth_current->init(eth_current,bis) < 0) {
                        debug  ("FAIL\n");
                        eth_try_another(0);
                        return -1;
                }
                eth_current->state = ETH_STATE_ACTIVE;
                eth_try_another(0);

                debug ("Trying %s\n", eth_current->name);
                if (eth_current->init(eth_current,bis) < 0) {
                        debug  ("FAIL\n");
                        eth_try_another(0);
                        return -1;
                }
                eth_current->state = ETH_STATE_ACTIVE;

                eth_current = old_current;
                return 0;
        } while (old_current != eth_current);

        return -1;
}

What happens is this, when I boot via TFTP, both EMACs and PHYs get
initialized, but the system hangs as soon as it starts the protocol's 
request (ping, tftp, etc.).

It seems that I am missing something somewhere - I am overwriting some
configuration that I should not be or something of that sort.  But 
shouldn't the EMAC data structure be separated to the point where I 
should be able to initialize them individually without causing 
problems?

Thanks for any insight!

Jonathan


_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to