diff options
author | Remy Bohmer <linux@bohmer.net> | 2008-06-03 15:26:25 +0200 |
---|---|---|
committer | Ben Warren <biggerbadderben@gmail.com> | 2008-06-04 23:47:31 -0700 |
commit | 850ba7555dbd4ca8d14fc475b864d534797adab3 (patch) | |
tree | 497c9dc4c0e24539b998c86f5234c6de602eef89 /common/xilinx.c | |
parent | fbcb7ece0ea1e364180f1cf963e0fa0ce7f6560d (diff) | |
download | u-boot-imx-850ba7555dbd4ca8d14fc475b864d534797adab3.zip u-boot-imx-850ba7555dbd4ca8d14fc475b864d534797adab3.tar.gz u-boot-imx-850ba7555dbd4ca8d14fc475b864d534797adab3.tar.bz2 |
DM9000: Make driver work properly for DM9000A
The DM9000A network controller does not work with the U-boot DM9000x driver.
Analysis showed that many incoming packets are lost.
The DM9000A Application Notes V1.20 (section 5.6.1) recommend that the poll to
check for a valid rx packet be done on the interrupt status register, not
directly by performing the dummy read and the rx status check as is currently
the case in the u-boot driver.
When the recommended poll is done as suggested the driver starts working
correctly on 10Mbit/HD, but on 100MBit/FD packets come in faster so that there
can be more than 1 package in the fifo at the same time.
The driver must perform the rx-status check in a loop and read and handle all
packages until there is no more left _after_ the interrupt RX flag is set.
This change has been tested with DM9000A, DM9000E, DM9000EP.
Signed-off-by: Remy Bohmer <linux@bohmer.net>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
Diffstat (limited to 'common/xilinx.c')
0 files changed, 0 insertions, 0 deletions