[U-Boot] [PATCHv2 1/3] A320: driver for FTMAC100 ethernet controller

Ben Warren biggerbadderben at gmail.com
Fri Jul 10 07:32:43 CEST 2009


Hi Po-Yu Chang,

Po-Yu Chuang wrote:
> Dear Jean-Christophe,
>
> 2009/7/8 Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>:
>   
>> On 19:12 Wed 01 Jul     , Po-Yu Chuang wrote:
>>     
>>> This patch adds an FTMAC100 ethernet driver for Faraday A320 evaluation board.
>>>       
>> it's seem good for me
>> but I'll add it after the core soc
>>     
>
> Thank you for your detailed review.
> I will resubmit this patch with new soc patch.
>
>   
>>> diff --git a/drivers/net/Makefile b/drivers/net/Makefile
>>> index c6097c3..8edf529 100644
>>> --- a/drivers/net/Makefile
>>> +++ b/drivers/net/Makefile
>>> @@ -38,6 +38,7 @@ COBJS-$(CONFIG_E1000) += e1000.o
>>>  COBJS-$(CONFIG_EEPRO100) += eepro100.o
>>>  COBJS-$(CONFIG_ENC28J60) += enc28j60.o
>>>  COBJS-$(CONFIG_FSLDMAFEC) += fsl_mcdmafec.o mcfmii.o
>>> +COBJS-$(CONFIG_DRIVER_FTMAC100) += ftmac100.o
>>>       
>> please remove the DRIVER_
>>     
>
> OK, but some recent patches use DRIVER_  naming.
>
> CONFIG_DRIVER_TI_EMAC
> CONFIG_DRIVER_AX88180
>
> Is it not the preferred style?
>
>   
I don't have a strong opinion, but don't think the 'DRIVER' part adds 
anything useful, so I guess remove.
>>>  COBJS-$(CONFIG_GRETH) += greth.o
>>>  COBJS-$(CONFIG_INCA_IP_SWITCH) += inca-ip_sw.o
>>>  COBJS-$(CONFIG_KIRKWOOD_EGIGA) += kirkwood_egiga.o
>>> diff --git a/drivers/net/ftmac100.c b/drivers/net/ftmac100.c
>>> new file mode 100644
>>> index 0000000..3057822
>>> --- /dev/null
>>> +++ b/drivers/net/ftmac100.c
>>> +static void ftmac100_reset (struct eth_device *dev)
>>> +{
>>> +     volatile struct ftmac100 *ftmac100 = (struct ftmac100 *)dev->iobase;
>>>       
>> do you really need to have all the struct volatile?
>>     
>
> I had submitted a v3 of this driver which removed unnecessary volatiles
> according to the warnings told by checkpatch.pl.
>
> http://lists.denx.de/pipermail/u-boot/2009-July/055421.html
>
> Please ignore it, since I need to resubmit a new patch later.
>
>   
>>> +
>>> +     debug ("%s()\n", __func__);
>>> +
>>> +     writel (FTMAC100_MACCR_SW_RST, &ftmac100->maccr);
>>> +
>>> +     while (readl (&ftmac100->maccr) & FTMAC100_MACCR_SW_RST) ;
>>> +}
>>> +
>>> +/*
>>> + * Set MAC address
>>> + */
>>>       
>>> +int ftmac100_initialize (bd_t * bd)
>>> +{
>>> +     struct eth_device *dev;
>>> +     struct ftmac100_data *priv;
>>> +
>>> +     if (!(dev = malloc (sizeof *dev))) {
>>>       
>> use calloc instead
>>     
>
> Is it preferred way?
> No driver in driver/net/ uses calloc.
>
>   
malloc() is OK.
>>> +             printf ("%s(): failed to allocate dev\n", __func__);
>>> +             goto out;
>>> +     }
>>> +
>>> +     /* Transmit and receive descriptors should align to 16 bytes */
>>> +
>>> +     if (!(priv = memalign (16, sizeof (struct ftmac100_data)))) {
>>> +             printf ("%s(): failed to allocate priv\n", __func__);
>>> +             goto free_dev;
>>> +     }
>>> +
>>> +     memset (dev, 0, sizeof (*dev));
>>> +     memset (priv, 0, sizeof (*priv));
>>> +
>>> +     sprintf (dev->name, "FTMAC100");
>>> +     dev->iobase = CONFIG_SYS_MAC100_BASE;
>>> +     dev->init   = ftmac100_init;
>>>       
>> please use tab for indent
>>     
>
> ok, fixed.
>
>   
>>> +     dev->halt   = ftmac100_halt;
>>> +     dev->send   = ftmac100_send;
>>> +     dev->recv   = ftmac100_recv;
>>> +     dev->priv   = priv;
>>>       
>
> best regards,
> Po-Yu Chuang
>   
Looking forward to the next spin.

regards,
B en


More information about the U-Boot mailing list