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

Ricardo Ribalda Delgado ricardo.ribalda at gmail.com
Tue Jan 26 13:43:20 CET 2016


Hello Bin

On Tue, Jan 26, 2016 at 1:21 PM, Bin Meng <bmeng.cn at gmail.com> wrote:
> Hi Ricardo,
>
> On Tue, Jan 26, 2016 at 6:24 PM, Ricardo Ribalda Delgado
> <ricardo.ribalda at 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 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
>
> No DM ethernet driver for LLTEMAC?


Not as far as I know

>
>> +
>> +       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.
>

I want to build it only when the core is present. This is checked with
the definitions from the xparameters.h file, obtained by the fpga
syntesis tool.

>> +#endif
>> +
>>  /*Generic Configs*/
>>  #include <configs/xilinx-ppc.h>
>>
>> --
>
> Regards,
> Bin

Thanks!



-- 
Ricardo Ribalda


More information about the U-Boot mailing list