mbox series

[v2,00/13] Fixes for DP8393X SONIC device emulation

Message ID cover.1576815466.git.fthain@telegraphics.com.au (mailing list archive)
Headers show
Series Fixes for DP8393X SONIC device emulation | expand

Message

Finn Thain Dec. 20, 2019, 4:17 a.m. UTC
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(-)

Comments

Laurent Vivier Dec. 20, 2019, 10:16 a.m. UTC | #1
Le 20/12/2019 à 05:17, Finn Thain a écrit :
> 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(-)
> 

For q800:

Tested-by: Laurent Vivier <laurent@vivier.eu>