[U-Boot-Users] dbau1550 patch

Andrew Dyer amdyer at gmail.com
Wed Dec 29 07:17:33 CET 2004


On Tue, 07 Dec 2004 13:45:44 +0100, Leif Lindholm
<leif.lindholm at i3micro.com> wrote:
> On Mon, 2004-12-06 at 14:05 -0600, Andrew Dyer wrote:
> > A while back (Sep 23, 2004) someone named Leif posted a note about a patch
> > to add support for the AMD DbAU1550 board to u-boot here
> > https://sourceforge.net/mailarchive/forum.php?thread_id=5624545&forum_id=12898
> 
> Will send this to you privately, and later try to clean it up a bit and
> fix a few bugs this caused with the db1000 board, so Wolfgang might
> accept it into the CVS.

I've been working with your patch and expanding it a bit for stuff we wanted to
use on our custom au1550 boards.

I noticed a problem with the cpu/mips/au1x00_ether.c net driver -
it certainly causes problems for me on the au1550.

next_tx and next_rx are set to zero in the init routine - the au1550 docs 
(section 9.4.3.2 of au1550 databook) says the dmas may not start at
buffer 0 coming out of reset, so those values are not guaranteed to
be zero.  The correct value can be init'd based on the dma address
register CB field.

I changed the lines setting these up in au1x00_init() to:

        next_tx = TX_GET_DMA_BUFFER(fifo_tx[0].addr);
        next_rx = RX_GET_DMA_BUFFER(fifo_rx[0].addr);

this issue was causing me problems with rx and tx timeouts, and 
changing these values fixes my problem (at least in limited testing).
Can someone else try out this change on au1000/1100/1500
based systems?

Also, what is txbuf in au1x00_ether.c used for?  It doesn't look
like that storage ever gets used - every time through the
au1x00_send routine the buffer gets passed in from the
net code.

-- 
Hardware, n.:
        The parts of a computer system that can be kicked.




More information about the U-Boot mailing list