This patchset fixes some bugs in the lan9118 emulation that were found while debugging UEFI network support on the emulated VExpress platform.
The 9118 ethernet controller supports transmission of multi-buffer packets with arbitrary byte alignment of the start and end bytes of each buffer. All writes to the packet fifo are 32 bits, so the controller discards bytes at the beginning and end of each buffer based on the 'Data start offset' and 'Buffer size' of the TX command 'A' word. The UEFI network driver uses 1 buffer for the packet header, and one for the payload. The mishandling of the start offset and buffer length resulted in extra bytes being inserted in the packet. With these changes the UEFI network driver that works with the real 9118 chip on the VExpress evaluation board works unmodified on QEMU. The Linux kernel driver continues to work on QEMU as well. Since the Linux driver was unaffected by these bugs I am inferring that it is using a single buffer for each packet. Roy Franz (2): Fix lan9118 TX "CMD A" handling Fix lan9118 buffer length handling hw/net/lan9118.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) -- 1.7.10.4