Hello, I have a board which uses dec21140-like ethernet, non-pci. In Linksys' GPL release is old u-boot (seems 1.1.4). I had same problem with 2010.09, in that when I enable netconsole, I saw each putc/puts twice!
I read dec2114x datasheet in detail, and firstly, wonder if anyone else has tested this driver with netconsole. I made many changes to mine to ensure MIPS cache coherency, but here are my findings for those interested to maybe one day find in the mailing list archive.. the TX/RX descriptors can be rings or chains. the driver seems to setup chains and use the End of Ring bit as well. Thus, in the net_send routine, the chipset should send buffer1, see buffer2size=0, and start again at ring base. If TX ring has only 1 entry, it see's the same descriptor again, and sends the packet twice. Since the chipset makes use of next descriptor if buffer2 size is 0, I made use of buffer2 itself. Then with buffer1size=0, it will only use buffer2. This is labeled "next" currently in the descriptor struct. So that, inside the net_send routine, you would set next = cpu_to_le32(phys_to_bus((u32)packet)); instead of buf. then des1 can be set as: des1 = cpu_to_le32(TD_LS | TD_FS | (length << 11)); This is currently good for 1 tx descriptor and u-boots small packets which never use >1, and certainly fixes a lot. Also, my board is the Linksys T-Mobile branded WRTU54G-TM, uses ADM8668 chipset for those curious, but this is from DEC21140 datasheet. Please inform me if this is not the case for whichever target uses it. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot