[U-Boot] [PATCH 22/22] ppc: xilinx-ppc440-generic: Wire LL_TEMAC driver

Ricardo Ribalda Delgado ricardo.ribalda at gmail.com
Tue Jan 26 11:24:25 CET 2016


If the xparameters file contains a LL_TEMAC definition compile its
driver and the net commands.

Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda at gmail.com>
---
 .../xilinx/ppc440-generic/xilinx_ppc440_generic.c  | 22 ++++++++++++++++++++++
 board/xilinx/ppc440-generic/xparameters.h          |  4 ++++
 configs/xilinx-ppc440-generic_defconfig            |  5 +++++
 include/configs/xilinx-ppc440-generic.h            | 10 ++++++++++
 4 files changed, 41 insertions(+)

diff --git a/board/xilinx/ppc440-generic/xilinx_ppc440_generic.c b/board/xilinx/ppc440-generic/xilinx_ppc440_generic.c
index 0e3ab94e31ef..d8233529304d 100644
--- a/board/xilinx/ppc440-generic/xilinx_ppc440_generic.c
+++ b/board/xilinx/ppc440-generic/xilinx_ppc440_generic.c
@@ -8,6 +8,7 @@
 
 #include <config.h>
 #include <common.h>
+#include <netdev.h>
 #include <asm/processor.h>
 
 int checkboard(void)
@@ -34,3 +35,24 @@ void get_sys_info(sys_info_t *sys_info)
 int get_serial_clock(void){
 	return XPAR_UARTNS550_0_CLOCK_FREQ_HZ;
 }
+
+int board_eth_init(bd_t *bis)
+{
+	int ret = 0;
+
+	puts("Init xilinx temac\n");
+#ifdef XPAR_LLTEMAC_0_BASEADDR
+	ret |= xilinx_ll_temac_eth_init(bis, XPAR_LLTEMAC_0_BASEADDR,
+			XILINX_LL_TEMAC_M_SDMA_DCR | XILINX_LL_TEMAC_M_SDMA_PLB,
+			XPAR_LLTEMAC_0_LLINK_CONNECTED_BASEADDR);
+
+#endif
+
+#ifdef XPAR_LLTEMAC_1_BASEADDR
+	ret |= xilinx_ll_temac_eth_init(bis, XPAR_LLTEMAC_1_BASEADDR,
+			XILINX_LL_TEMAC_M_SDMA_DCR | XILINX_LL_TEMAC_M_SDMA_PLB,
+			XPAR_LLTEMAC_1_LLINK_CONNECTED_BASEADDR);
+#endif
+
+	return ret;
+}
diff --git a/board/xilinx/ppc440-generic/xparameters.h b/board/xilinx/ppc440-generic/xparameters.h
index 9685560673ab..b45a6a1d7668 100644
--- a/board/xilinx/ppc440-generic/xparameters.h
+++ b/board/xilinx/ppc440-generic/xparameters.h
@@ -18,5 +18,9 @@
 #define XPAR_CORE_CLOCK_FREQ_HZ		400000000
 #define XPAR_INTC_MAX_NUM_INTR_INPUTS	32
 #define XPAR_UARTNS550_0_CLOCK_FREQ_HZ	100000000
+#define XPAR_LLTEMAC_0_LLINK_CONNECTED_BASEADDR 0x80
+#define XPAR_LLTEMAC_1_LLINK_CONNECTED_BASEADDR 0x98
+#define XPAR_LLTEMAC_0_BASEADDR		0x83000000
+#define XPAR_LLTEMAC_1_BASEADDR		0x83000040
 
 #endif
diff --git a/configs/xilinx-ppc440-generic_defconfig b/configs/xilinx-ppc440-generic_defconfig
index c66357e08724..64b55ee1359e 100644
--- a/configs/xilinx-ppc440-generic_defconfig
+++ b/configs/xilinx-ppc440-generic_defconfig
@@ -11,3 +11,8 @@ CONFIG_OF_CONTROL=y
 CONFIG_FIT=y
 CONFIG_FIT_VERBOSE=y
 CONFIG_DEFAULT_DEVICE_TREE="xilinx-ppc440-generic"
+CONFIG_CMD_TFTPPUT=y
+CONFIG_CMD_DHCP=y
+CONFIG_CMD_PING=y
+CONFIG_NETCONSOLE=y
+
diff --git a/include/configs/xilinx-ppc440-generic.h b/include/configs/xilinx-ppc440-generic.h
index 2af5f7fc1de5..8b9d37f42e03 100644
--- a/include/configs/xilinx-ppc440-generic.h
+++ b/include/configs/xilinx-ppc440-generic.h
@@ -33,6 +33,16 @@
 #define MTDIDS_DEFAULT			"nor0=flash"
 #define MTDPARTS_DEFAULT		"mtdparts=flash:-(user)"
 
+/*Net*/
+#ifdef XPAR_LLTEMAC_0_BASEADDR
+#define CONFIG_XILINX_LL_TEMAC
+#define CONFIG_MII
+#define CONFIG_PHYLIB
+#define CONFIG_PHY_MARVELL
+#define CONFIG_NET_RANDOM_ETHADDR
+#define CONFIG_LIB_RAND
+#endif
+
 /*Generic Configs*/
 #include <configs/xilinx-ppc.h>
 
-- 
2.7.0.rc3



More information about the U-Boot mailing list