summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteffen Trumtrar <s.trumtrar@pengutronix.de>2013-04-03 09:55:45 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2013-04-03 17:21:51 +0200
commitc6ef15b3879607a9e31964fc8942f95c253122f9 (patch)
tree39b246f58072654d8756df7a4af1cfa3e9b3adce
parent508b996a6207f9f490cb5cf7b67e1889f4ca4536 (diff)
downloadbarebox-c6ef15b3879607a9e31964fc8942f95c253122f9.tar.gz
barebox-c6ef15b3879607a9e31964fc8942f95c253122f9.tar.xz
ARM: zedboard: add ethernet device
The ZedBoard has a connection for the GEM0. Use it. Signed-off-by: Steffen Trumtrar <s.trumtrar@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--arch/arm/boards/avnet-zedboard/board.c13
-rw-r--r--arch/arm/boards/avnet-zedboard/lowlevel.c11
2 files changed, 23 insertions, 1 deletions
diff --git a/arch/arm/boards/avnet-zedboard/board.c b/arch/arm/boards/avnet-zedboard/board.c
index 4e3d5a58c9..7b95754692 100644
--- a/arch/arm/boards/avnet-zedboard/board.c
+++ b/arch/arm/boards/avnet-zedboard/board.c
@@ -29,6 +29,19 @@ static int zedboard_mem_init(void)
}
mem_initcall(zedboard_mem_init);
+static struct macb_platform_data macb_pdata = {
+ .phy_interface = PHY_INTERFACE_MODE_RGMII,
+ .phy_addr = 0x0,
+};
+
+static int zedboard_device_init(void)
+{
+ zynq_add_eth0(&macb_pdata);
+
+ return 0;
+}
+device_initcall(zedboard_device_init);
+
static int zedboard_console_init(void)
{
zynq_add_uart1();
diff --git a/arch/arm/boards/avnet-zedboard/lowlevel.c b/arch/arm/boards/avnet-zedboard/lowlevel.c
index b50886ebca..fb05ef895d 100644
--- a/arch/arm/boards/avnet-zedboard/lowlevel.c
+++ b/arch/arm/boards/avnet-zedboard/lowlevel.c
@@ -233,14 +233,23 @@ void __naked barebox_arm_reset_vector(void)
/* poor mans clkctrl */
writel(0x00001403, ZYNQ_CLOCK_CTRL_BASE + ZYNQ_UART_CLK_CTRL);
+ /* GEM0 */
writel(0x00000001, 0xf8000138);
- writel(0x00100801, 0xf8000140);
+ writel(0x00500801, 0xf8000140);
writel(0x00000302, 0xf8000740);
writel(0x00000302, 0xf8000744);
writel(0x00000302, 0xf8000748);
writel(0x00000302, 0xf800074C);
writel(0x00000302, 0xf8000750);
writel(0x00000302, 0xf8000754);
+ writel(0x00001303, 0xf8000758);
+ writel(0x00001303, 0xf800075C);
+ writel(0x00001303, 0xf8000760);
+ writel(0x00001303, 0xf8000764);
+ writel(0x00001303, 0xf8000768);
+ writel(0x00001303, 0xf800076C);
+ writel(0x00001280, 0xf80007D0);
+ writel(0x00001280, 0xf80007D4);
writel(0x00000001, 0xf8000B00);