summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Simek <monstr@monstr.eu>2010-08-02 14:42:09 +0200
committerMichal Simek <monstr@monstr.eu>2010-10-12 16:51:34 +1000
commitd69f8f41af5c8a1cc0b062cf2c7fbbfdbfe8e72d (patch)
tree33d7b483e0d01dc2a596d6191c598ff861ff0f6d
parent4aecfb1602729b40bf7b49866e9614e6b4f70c2d (diff)
downloadu-boot-imx-d69f8f41af5c8a1cc0b062cf2c7fbbfdbfe8e72d.zip
u-boot-imx-d69f8f41af5c8a1cc0b062cf2c7fbbfdbfe8e72d.tar.gz
u-boot-imx-d69f8f41af5c8a1cc0b062cf2c7fbbfdbfe8e72d.tar.bz2
microblaze: Add support for NET_MULTI api
Microblaze hasn't supported NET_MULTI support. Signed-off-by: Michal Simek <monstr@monstr.eu>
-rw-r--r--arch/microblaze/lib/board.c12
-rw-r--r--board/xilinx/microblaze-generic/microblaze-generic.c13
-rw-r--r--include/configs/microblaze-generic.h2
3 files changed, 25 insertions, 2 deletions
diff --git a/arch/microblaze/lib/board.c b/arch/microblaze/lib/board.c
index 3ff5c17..0ce040e 100644
--- a/arch/microblaze/lib/board.c
+++ b/arch/microblaze/lib/board.c
@@ -31,6 +31,7 @@
#include <version.h>
#include <watchdog.h>
#include <stdio_dev.h>
+#include <net.h>
DECLARE_GLOBAL_DATA_PTR;
@@ -42,6 +43,7 @@ extern int gpio_init (void);
#ifdef CONFIG_SYS_INTC_0
extern int interrupts_init (void);
#endif
+
#if defined(CONFIG_CMD_NET)
extern int eth_init (bd_t * bis);
#endif
@@ -165,8 +167,14 @@ void board_init (void)
#if defined(CONFIG_CMD_NET)
/* IP Address */
- bd->bi_ip_addr = getenv_IPaddr ("ipaddr");
- eth_init (bd);
+ bd->bi_ip_addr = getenv_IPaddr("ipaddr");
+
+ printf("Net: ");
+ eth_initialize(gd->bd);
+
+ uchar enetaddr[6];
+ eth_getenv_enetaddr("ethaddr", enetaddr);
+ printf("MAC: %pM\n", enetaddr);
#endif
/* main_loop */
diff --git a/board/xilinx/microblaze-generic/microblaze-generic.c b/board/xilinx/microblaze-generic/microblaze-generic.c
index 838f131..744384c 100644
--- a/board/xilinx/microblaze-generic/microblaze-generic.c
+++ b/board/xilinx/microblaze-generic/microblaze-generic.c
@@ -27,6 +27,7 @@
#include <common.h>
#include <config.h>
+#include <netdev.h>
#include <asm/microblaze_intc.h>
#include <asm/asm.h>
@@ -66,3 +67,15 @@ int fsl_init2 (void) {
return 0;
}
#endif
+
+int board_eth_init(bd_t *bis)
+{
+ /*
+ * This board either has PCI NICs or uses the CPU's TSECs
+ * pci_eth_init() will return 0 if no NICs found, so in that case
+ * returning -1 will force cpu_eth_init() to be called.
+ */
+#ifdef CONFIG_XILINX_EMACLITE
+ return xilinx_emaclite_initialize(bis, XILINX_EMACLITE_BASEADDR);
+#endif
+}
diff --git a/include/configs/microblaze-generic.h b/include/configs/microblaze-generic.h
index 9301a6b..c30cc4c 100644
--- a/include/configs/microblaze-generic.h
+++ b/include/configs/microblaze-generic.h
@@ -243,9 +243,11 @@
#ifndef CONFIG_SYS_ENET
# undef CONFIG_CMD_NET
+# undef CONFIG_NET_MULTI
#else
# define CONFIG_CMD_PING
# define CONFIG_CMD_DHCP
+# define CONFIG_NET_MULTI
#endif
#if defined(CONFIG_SYSTEMACE)