[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