[U-Boot] [PATCH 1/5] net: ll_temac: Add LL TEMAC driver to u-boot
Stephan Linz
linz at li-pro.net
Sun Jan 15 19:29:26 CET 2012
Am Sonntag, den 15.01.2012, 12:28 -0500 schrieb Mike Frysinger:
> On Sunday 15 January 2012 10:46:02 Stephan Linz wrote:
> > +/* Data buffer for LL TEMAC Rx and Tx direction */
> > +static unsigned char rx_buffer[PKTSIZE_ALIGN]
> > __attribute((aligned(DMAALIGN)));
> > +static unsigned char tx_buffer[PKTSIZE_ALIGN]
> > __attribute((aligned(DMAALIGN)));
>
> come code already declares PktBuf ... can't you use that ?
Hm, what do you mean exactly here?
These are the two DMA transfer buffers. I have no idea if there are
buffers in the upper layer (NET) and how I can use it for DMA transfers.
Therfore I create my own rx/tx buffers and copy data. That reduce the
performance a little bit, but it's OK. Furthermore I have to use DMA
safe buffers here (no cache, 32 byte alignment).
>
> > +static struct ll_temac_info ll_temac_info[] = {
>
> this looks like a struct that should get allocated on the fly based on
> arguments given to the driver's registration func
OK, it wast a little bit RAM. We can optimize the code later. I want to
see more testing results on differnet Microblaze and PPC platforms.
>
> > +int xilinx_ll_temac_initialize(bd_t *bis, struct ll_temac_info *devinf)
> > ...
> > + dev = calloc(1, sizeof(*dev));
> > ...
> > + /* Tell u-boot to get the addr from the env */
> > + for (i = 0; i < 6; i++)
> > + dev->enetaddr[i] = 0;
>
> the memory is already zero-ed by the call to calloc, so this for loop is
> useless (and if it wasn't, you'd still use memset())
Sure, we can remove this part in one of the next code optimization.
--
Best regards,
Stephan Linz
______________________________________________________________________________
MB-Ref: http://www.li-pro.de/xilinx_mb:mbref:start
OpenDCC: http://www.li-pro.net/opendcc.phtml
PC/M: http://www.li-pro.net/pcm.phtml
Sourceforge: http://sourceforge.net/users/slz
Gitorious: https://gitorious.org/~slz
More information about the U-Boot
mailing list