]> git.sur5r.net Git - u-boot/commitdiff
ftgmac100: reset fix when supports wake on lan
authorMacpaul Lin <macpaul@andestech.com>
Tue, 20 Sep 2011 19:54:32 +0000 (19:54 +0000)
committerWolfgang Denk <wd@denx.de>
Fri, 21 Oct 2011 22:36:12 +0000 (00:36 +0200)
This patch move the reset function from initialization to
driver register procedure.

Some embedded system supports wake on lan nowadays. On this kind of system,
the ftgmac100 will be still supplied power after the system has been
shut-down by Linux. Hence the register used by linux won't be clear
when the system has been powered-off.

The origin ftgmac100 driver in u-boot will only register
driver and functions to network stack and won't reset the ftgmac100
hardware if the network won't be used during boot-up.
This will lead ftgmac100 continue receiving packets and then might corrupt
linux kernel when booting up.

So we reorder the hardware reset function earlier to force the hardware
to be reset whether it will be used or not.

Signed-off-by: Macpaul Lin <macpaul@andestech.com>
drivers/net/ftgmac100.c

index dc7a80e5c77386d29c3b6bca1225de3c5590f79e..821840f8e982ab9476f5026420876f74f67a2401 100644 (file)
@@ -384,8 +384,6 @@ static int ftgmac100_init(struct eth_device *dev, bd_t *bd)
 
        debug("%s()\n", __func__);
 
-       ftgmac100_reset(dev);
-
        /* set the ethernet address */
        ftgmac100_set_mac_from_env(dev);
 
@@ -561,6 +559,8 @@ int ftgmac100_initialize(bd_t *bd)
 
        eth_register(dev);
 
+       ftgmac100_reset(dev);
+
        return 1;
 
 free_dev: