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>