
Hi Ricardo,
On Tue, Jan 26, 2016 at 6:24 PM, Ricardo Ribalda Delgado ricardo.ribalda@gmail.com wrote:
If the xparameters file contains a LL_TEMAC definition compile its driver and the net commands.
Signed-off-by: Ricardo Ribalda Delgado ricardo.ribalda@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
No DM ethernet driver for LLTEMAC?
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*/
nits: /* 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
I believe we can move part of these into boards' defconfig files, and if with DM ethernet plus OF control we can always enable the driver.
+#endif
/*Generic Configs*/ #include <configs/xilinx-ppc.h>
--
Regards, Bin