[U-Boot] [PATCH 2/4] net: Move Emaclite to NET_MULTI

Michal Simek monstr at monstr.eu
Mon Oct 11 03:37:09 CEST 2010


Hi Ben,

Ben Warren wrote:
>  Hi Michal,
> 
> Sorry for the delay in reviewing
> 
> On 8/2/2010 5:49 AM, Michal Simek wrote:
>> Emaclite was using old net api that's why
>> this patch move emaclite to NET_MULTI api.
>>
>> Signed-off-by: Michal Simek<monstr at monstr.eu>
>> ---
>>   drivers/net/xilinx_emaclite.c |   84
>> +++++++++++++++++++++++------------------
>>   include/netdev.h              |    1 +
>>   2 files changed, 48 insertions(+), 37 deletions(-)
>>
>> diff --git a/drivers/net/xilinx_emaclite.c
>> b/drivers/net/xilinx_emaclite.c
>> index 0820daa..f460525 100644
...

>>    * TX - TX_PING&  TX_PONG initialization
>> @@ -158,7 +145,7 @@ int eth_init (bd_t * bis)
>>       /* Restart PING TX */
>>       out_be32 (emaclite.baseaddress + XEL_TSR_OFFSET, 0);
>>       /* Copy MAC address */
>> -    xemaclite_alignedwrite (enetaddr,
>> +    xemaclite_alignedwrite (dev->enetaddr,
>>           emaclite.baseaddress, ENET_ADDR_LENGTH);
>>       /* Set the length */
>>       out_be32 (emaclite.baseaddress + XEL_TPLR_OFFSET,
>> ENET_ADDR_LENGTH);
>> @@ -171,7 +158,7 @@ int eth_init (bd_t * bis)
>>   #ifdef CONFIG_XILINX_EMACLITE_TX_PING_PONG
>>       /* The same operation with PONG TX */
>>       out_be32 (emaclite.baseaddress + XEL_TSR_OFFSET +
>> XEL_BUFFER_OFFSET, 0);
>> -    xemaclite_alignedwrite (enetaddr, emaclite.baseaddress +
>> +    xemaclite_alignedwrite (dev->enetaddr, emaclite.baseaddress +
>>           XEL_BUFFER_OFFSET, ENET_ADDR_LENGTH);
>>       out_be32 (emaclite.baseaddress + XEL_TPLR_OFFSET,
>> ENET_ADDR_LENGTH);
> Please consider moving this stuff to a separate function.  If you bind
> it to dev->write_hwaddr(), programming will occur at initialization time.

I consider it. This driver is well tested. We are using it for a long time
that's why I prefer to keep it as is. I would look at it when I have free time.


...
>> +
>> +int xilinx_emaclite_initialize (bd_t *bis)
>> +{
>> +    struct eth_device *dev;
>> +
>> +    dev = malloc(sizeof(*dev));
>> +    if (dev == NULL)
>> +        hang();
>> +
>> +    memset(dev, 0, sizeof(*dev));
>> +    sprintf(dev->name, "Xilinx Emaclite");
>> +
>> +    dev->iobase = XILINX_EMACLITE_BASEADDR;
> Can you pass this in as a parameter instead?  You don't seem to use
> 'bis', so it's not necessary

I did it. version 2 will contain this change.

I am going to send v2. Please review it. I am also sending second patch
with little endian support.

Thanks,
Michal


-- 
Michal Simek, Ing. (M.Eng)
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel 2.6 Microblaze Linux - http://www.monstr.eu/fdt/
Microblaze U-BOOT custodian


More information about the U-Boot mailing list