Remy Bohmer 850ba7555d 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>
2008-06-04 23:47:31 -07:00
..
2008-05-21 00:14:08 +02:00
2008-05-21 00:14:08 +02:00
2008-05-21 00:14:08 +02:00
2008-05-21 00:14:08 +02:00
2008-05-21 00:14:08 +02:00
2008-04-28 22:22:34 -07:00
2008-04-28 22:22:34 -07:00
2008-05-21 00:14:08 +02:00
2008-01-10 01:06:02 +01:00
2008-02-14 01:11:00 +01:00
2008-05-21 00:14:08 +02:00
2008-04-01 01:46:12 +02:00
2008-02-14 09:37:58 +00:00
2008-05-21 00:14:08 +02:00
2008-05-21 00:14:08 +02:00
2008-02-14 01:11:00 +01:00
2008-05-21 00:14:08 +02:00
2008-05-21 00:14:08 +02:00
2008-04-28 12:48:47 +02:00
2008-05-21 00:14:08 +02:00
2008-02-14 01:11:00 +01:00
2008-05-21 00:14:08 +02:00
2008-04-28 20:42:55 +02:00
2008-05-22 23:10:01 -07:00
2008-05-21 00:14:08 +02:00
2008-05-21 00:14:08 +02:00
2008-05-23 20:25:19 -07:00
2008-05-21 00:14:08 +02:00
2008-01-10 01:06:02 +01:00
2008-05-21 00:14:08 +02:00