int board_eth_init(bd_t *bis)
 {
-       return pci_eth_init(bis);
+       int ret;
+       ret = pci_eth_init(bis);
+       if (!ret)
+               ret = mv6446x_eth_initialize(bis);
+       return ret;
 }
 
 void db64460_eth0_disable(void);
 bool network_start(bd_t *bis);
 
+int mv6446x_eth_initialize(bd_t *);
+
 #endif /* __EVB64460_ETH_H__ */
 
 void db64360_eth0_disable(void);
 bool network_start(bd_t *bis);
 
+int mv6446x_eth_initialize(bd_t *);
 
 #endif /* __EVB64360_ETH_H__ */
 
 int cpu_eth_init(bd_t *bis) __attribute__((weak, alias("__def_eth_init")));
 int board_eth_init(bd_t *bis) __attribute__((weak, alias("__def_eth_init")));
 
-extern int mv6446x_eth_initialize(bd_t *);
-
 #ifdef CONFIG_API
 extern void (*push_packet)(volatile void *, int);
 
        } else
                printf("Net Initialization Skipped\n");
 
-#if defined(CONFIG_DB64460) || defined(CONFIG_P3Mx)
-       mv6446x_eth_initialize(bis);
-#endif
        if (!eth_devices) {
                puts ("No ethernet found.\n");
                show_boot_progress (-64);