summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVipin KUMAR <vipin.kumar@st.com>2012-05-07 13:06:42 +0530
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>2012-07-07 14:07:40 +0200
commitdeb005622782bf568a4daa8daeb8adf95b606492 (patch)
treea868876e4370f76b7b85866a0c7e8e4e814c4960
parent8026b1e42f533f14115bb629efeaaedec6eaf23b (diff)
SPEAr: Configure network support for spear SoCs
Signed-off-by: Vipin Kumar <vipin.kumar@st.com> Signed-off-by: Amit Virdi <amit.virdi@st.com> Signed-off-by: Stefan Roese <sr@denx.de>
-rw-r--r--arch/arm/include/asm/arch-spear/hardware.h1
-rw-r--r--board/spear/spear300/spear300.c10
-rw-r--r--board/spear/spear310/spear310.c10
-rw-r--r--board/spear/spear320/spear320.c10
-rw-r--r--board/spear/spear600/spear600.c10
-rw-r--r--include/configs/spear-common.h14
-rw-r--r--include/configs/spear3xx.h3
7 files changed, 56 insertions, 2 deletions
diff --git a/arch/arm/include/asm/arch-spear/hardware.h b/arch/arm/include/asm/arch-spear/hardware.h
index a6517b2187f..70fc0303553 100644
--- a/arch/arm/include/asm/arch-spear/hardware.h
+++ b/arch/arm/include/asm/arch-spear/hardware.h
@@ -31,6 +31,7 @@
#define CONFIG_SPEAR_SYSCNTLBASE (0xFCA00000)
#define CONFIG_SPEAR_TIMERBASE (0xFC800000)
#define CONFIG_SPEAR_MISCBASE (0xFCA80000)
+#define CONFIG_SPEAR_ETHBASE 0xE0800000
#define CONFIG_SYS_NAND_CLE (1 << 16)
#define CONFIG_SYS_NAND_ALE (1 << 17)
diff --git a/board/spear/spear300/spear300.c b/board/spear/spear300/spear300.c
index 72a36314089..2283ad5ddbc 100644
--- a/board/spear/spear300/spear300.c
+++ b/board/spear/spear300/spear300.c
@@ -22,6 +22,7 @@
*/
#include <common.h>
+#include <netdev.h>
#include <nand.h>
#include <asm/io.h>
#include <linux/mtd/fsmc_nand.h>
@@ -60,3 +61,12 @@ void board_nand_init()
#endif
return;
}
+
+int board_eth_init(bd_t *bis)
+{
+#if defined(CONFIG_DESIGNWARE_ETH)
+ return designware_initialize(0, CONFIG_SPEAR_ETHBASE, CONFIG_DW0_PHY);
+#else
+ return -1;
+#endif
+}
diff --git a/board/spear/spear310/spear310.c b/board/spear/spear310/spear310.c
index 14e666d6417..043a9f3aee9 100644
--- a/board/spear/spear310/spear310.c
+++ b/board/spear/spear310/spear310.c
@@ -23,6 +23,7 @@
*/
#include <common.h>
+#include <netdev.h>
#include <nand.h>
#include <asm/io.h>
#include <linux/mtd/fsmc_nand.h>
@@ -61,3 +62,12 @@ void board_nand_init()
#endif
return;
}
+
+int board_eth_init(bd_t *bis)
+{
+#if defined(CONFIG_DESIGNWARE_ETH)
+ return designware_initialize(0, CONFIG_SPEAR_ETHBASE, CONFIG_DW0_PHY);
+#else
+ return -1;
+#endif
+}
diff --git a/board/spear/spear320/spear320.c b/board/spear/spear320/spear320.c
index 994eb2b64d2..1b6f362b5d8 100644
--- a/board/spear/spear320/spear320.c
+++ b/board/spear/spear320/spear320.c
@@ -23,6 +23,7 @@
*/
#include <common.h>
+#include <netdev.h>
#include <nand.h>
#include <asm/io.h>
#include <linux/mtd/fsmc_nand.h>
@@ -62,3 +63,12 @@ void board_nand_init()
return;
}
+
+int board_eth_init(bd_t *bis)
+{
+#if defined(CONFIG_DESIGNWARE_ETH)
+ return designware_initialize(0, CONFIG_SPEAR_ETHBASE, CONFIG_DW0_PHY);
+#else
+ return -1;
+#endif
+}
diff --git a/board/spear/spear600/spear600.c b/board/spear/spear600/spear600.c
index ab0f760678b..d18d313b298 100644
--- a/board/spear/spear600/spear600.c
+++ b/board/spear/spear600/spear600.c
@@ -22,6 +22,7 @@
*/
#include <common.h>
+#include <netdev.h>
#include <nand.h>
#include <asm/io.h>
#include <linux/mtd/fsmc_nand.h>
@@ -55,3 +56,12 @@ void board_nand_init()
#endif
return;
}
+
+int board_eth_init(bd_t *bis)
+{
+#if defined(CONFIG_DESIGNWARE_ETH)
+ return designware_initialize(0, CONFIG_SPEAR_ETHBASE, CONFIG_DW0_PHY);
+#else
+ return -1;
+#endif
+}
diff --git a/include/configs/spear-common.h b/include/configs/spear-common.h
index 75cc5fff64c..669d83eb7eb 100644
--- a/include/configs/spear-common.h
+++ b/include/configs/spear-common.h
@@ -27,6 +27,14 @@
* Common configurations used for both spear3xx as well as spear6xx
*/
+/* Ethernet driver configuration */
+#define CONFIG_MII
+#define CONFIG_DESIGNWARE_ETH
+#define CONFIG_DW_SEARCH_PHY
+#define CONFIG_DW0_PHY 1
+#define CONFIG_NET_MULTI
+#define CONFIG_PHY_RESET_DELAY 10000 /* in usec */
+
/* USBD driver configuration */
#define CONFIG_DW_UDC
#define CONFIG_USB_DEVICE
@@ -104,11 +112,13 @@
#define CONFIG_CMD_MEMORY
#define CONFIG_CMD_RUN
#define CONFIG_CMD_SAVES
+#define CONFIG_CMD_NET
+#define CONFIG_CMD_MII
+#define CONFIG_CMD_PING
+#define CONFIG_CMD_DHCP
/* This must be included AFTER the definition of CONFIG_COMMANDS (if any) */
#include <config_cmd_default.h>
-#undef CONFIG_CMD_NET
-#undef CONFIG_CMD_NFS
/*
* Default Environment Varible definitions
diff --git a/include/configs/spear3xx.h b/include/configs/spear3xx.h
index 2a86c212531..035b32129dc 100644
--- a/include/configs/spear3xx.h
+++ b/include/configs/spear3xx.h
@@ -41,6 +41,9 @@
#include <configs/spear-common.h>
+/* Ethernet driver configuration */
+#define CONFIG_DW_ALTDESCRIPTOR 1
+
/* Serial Configuration (PL011) */
#define CONFIG_SYS_SERIAL0 0xD0000000