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

Finn Thain posted 13 patches 4 years, 4 months ago
Test asan failed
Test checkpatch failed
Test FreeBSD failed
Test docker-mingw@fedora failed
Test docker-clang@ubuntu failed
Test docker-quick@centos7 failed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/cover.1576815466.git.fthain@telegraphics.com.au
Maintainers: Jason Wang <jasowang@redhat.com>
There is a newer version of this series
hw/net/dp8393x.c | 147 ++++++++++++++++++++++++++++++++---------------
1 file changed, 100 insertions(+), 47 deletions(-)
[PATCH v2 00/13] Fixes for DP8393X SONIC device emulation
Posted by Finn Thain 4 years, 4 months ago
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


Re: [PATCH v2 00/13] Fixes for DP8393X SONIC device emulation
Posted by Laurent Vivier 4 years, 4 months ago
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>