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

Bin Meng
2016-01-26T12:21:57Z

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