Hi All, There are bugs in the DP8393X emulation that can stop packet reception.
Whilst debugging the device I found that the receiver algorithm differs from the one described in the National Semiconductor datasheet. These issues and others are addressed by this patch series. This series has only been tested with Linux/m68k guests. It needs further testing with MIPS Magnum guests such as NetBSD or Windows NT. Note that the mainline Linux sonic driver also has bugs. Those bugs have been fixed in a series of patches at, https://github.com/fthain/linux/commits/mac68k --- Changed since v1: - Minor revisions described in patch descriptions. - Dropped patches 4/10 and 7/10. - Added 5 new patches. Finn Thain (13): dp8393x: Mask EOL bit from descriptor addresses dp8393x: Clean up endianness hacks dp8393x: Have dp8393x_receive() return the packet size dp8393x: Update LLFA and CRDA registers from rx descriptor dp8393x: Clear RRRA command register bit only when appropriate dp8393x: Implement packet size limit and RBAE interrupt dp8393x: Don't stop reception upon RBE interrupt assertion dp8393x: Don't clobber packet checksum dp8393x: Use long-word-aligned RRA pointers in 32-bit mode dp8393x: Pad frames to word or long word boundary dp8393x: Clear descriptor in_use field when necessary dp8393x: Always update RRA pointers and sequence numbers dp8393x: Correctly advance RRP hw/net/dp8393x.c | 147 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 100 insertions(+), 47 deletions(-) -- 2.23.0