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 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot