qemu/hw
Roy Franz 2ad657e3f3 Fix lan9118 TX "CMD A" handling
The 9118 ethernet controller supports transmission of multi-buffer packets
with arbitrary byte alignment of the start and end bytes.  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' format.

This patch changes the buffer size and offset internal state variables to be
updated on every "TX command A" write.  Previously they were only updated for
the first segment, which resulted incorrect behavior for packets with more
than one segment. Each segment of the packet has its own CMD A command, with
its own buffer size and start offset.

Also update extraction of fields from the CMD A word to use extract32().

Signed-off-by: Roy Franz <roy.franz@linaro.org>
Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2014-01-27 15:44:06 +01:00
..
9pfs virtio-9p: Convert to QOM realize 2013-12-09 21:46:49 +01:00
acpi acpi,pci,pc,fedora,virtio fixes and enhancements 2014-01-10 11:04:48 -08:00
alpha sysbus: Set cannot_instantiate_with_device_add_yet 2013-12-23 00:27:22 +01:00
arm QOM infrastructure fixes and device conversions 2014-01-09 11:24:48 -08:00
audio hda-codec: disable streams on reset 2014-01-20 12:17:20 +01:00
block block: rename buffer_alignment to guest_block_size 2014-01-24 17:40:01 +01:00
bt Preparation for usb-bt-dongle conditional build 2013-09-10 11:14:41 +02:00
char Merge remote-tracking branch 'mjt/trivial-patches' into staging 2014-01-09 11:24:12 -08:00
core Merge remote branch 'luiz/queue/qmp' into qmpq 2014-01-14 12:10:08 +10:00
cpu icc_bus: QOM'ify ICC 2013-12-24 18:02:18 +01:00
cris axis_dev88: Don't enforce use of kernel for qtest 2013-11-05 17:47:29 +01:00
display sysbus: Set cannot_instantiate_with_device_add_yet 2013-12-23 00:27:22 +01:00
dma Merge remote branch 'luiz/queue/qmp' into qmpq 2014-01-14 12:10:08 +10:00
gpio hw: cannot_instantiate_with_device_add_yet due to pointer props 2013-12-24 17:27:17 +01:00
i2c hw: cannot_instantiate_with_device_add_yet due to pointer props 2013-12-24 17:27:17 +01:00
i386 usb: add support for microsoft os descriptors 2014-01-16 12:59:59 +01:00
ide block: rename buffer_alignment to guest_block_size 2014-01-24 17:40:01 +01:00
input QOM infrastructure fixes and device conversions 2014-01-09 11:24:48 -08:00
intc QOM infrastructure fixes and device conversions 2014-01-09 11:24:48 -08:00
isa vt82c686: Clean up use of cannot_instantiate_with_device_add_yet 2013-12-23 00:27:23 +01:00
lm32 milkymist: Suppress -kernel/-bios/-drive error for qtest 2013-11-05 17:47:29 +01:00
m68k an5206: Don't enforce use of kernel for qtest 2013-11-05 17:47:29 +01:00
microblaze Microblaze: Convert Microblaze-pic handling to GPIOs 2014-01-14 11:08:36 +10:00
mips pci-host: Consistently set cannot_instantiate_with_device_add_yet 2013-12-23 00:27:23 +01:00
misc QOM infrastructure fixes and device conversions 2014-01-09 11:24:48 -08:00
moxie memory: add owner argument to initialization functions 2013-07-04 17:42:44 +02:00
net Fix lan9118 TX "CMD A" handling 2014-01-27 15:44:06 +01:00
nvram sysbus: Set cannot_instantiate_with_device_add_yet 2013-12-23 00:27:22 +01:00
openrisc openrisc-timer: Reduce overhead, Separate clock update functions 2013-11-20 21:46:45 +08:00
pci acpi,pci,pc,fedora,virtio fixes and enhancements 2014-01-10 11:04:48 -08:00
pci-bridge pci-host: Consistently set cannot_instantiate_with_device_add_yet 2013-12-23 00:27:23 +01:00
pci-host acpi,pci,pc,fedora,virtio fixes and enhancements 2014-01-10 11:04:48 -08:00
pcmcia pcmcia/pxa2xx: QOM'ify PXA2xxPCMCIAState 2013-11-05 18:06:52 +01:00
ppc pci-host: Consistently set cannot_instantiate_with_device_add_yet 2013-12-23 00:27:23 +01:00
s390x acpi,pci,pc,fedora,virtio fixes and enhancements 2014-01-10 11:04:48 -08:00
scsi Merge remote-tracking branch 'bonzini/scsi-next' into staging 2014-01-24 15:50:14 -08:00
sd sysbus: Set cannot_instantiate_with_device_add_yet 2013-12-23 00:27:22 +01:00
sh4 pci-host: Consistently set cannot_instantiate_with_device_add_yet 2013-12-23 00:27:23 +01:00
sparc sun4m: Add FCode ROM for TCX framebuffer 2013-11-21 17:38:52 +01:00
sparc64 pc,pci,virtio fixes and cleanups 2013-09-03 12:31:07 -05:00
ssi xilinx_spi: QOM cast cleanup 2013-07-29 21:07:01 +02:00
timer isa: Clean up use of cannot_instantiate_with_device_add_yet 2013-12-23 00:27:23 +01:00
tpm aio / timers: Untangle include files 2013-08-22 19:10:27 +02:00
unicore32 puv3: Turn puv3_load_kernel() into a no-op for qtest without -kernel 2013-11-05 17:47:28 +01:00
usb usb-hid: add microsoft os descriptor support 2014-01-16 12:59:59 +01:00
virtio dataplane: fix shadowed return value 2014-01-22 13:48:18 +01:00
watchdog qemu-option: Remove qemu_opts_create_nofail 2014-01-06 15:02:30 -05:00
xen apic: QOM'ify APIC 2013-12-24 18:02:18 +01:00
xtensa pc,pci,virtio fixes and cleanups 2013-09-03 12:31:07 -05:00
Makefile.objs pcmcia: QOM'ify PCMCIACardState and MicroDriveState 2013-11-05 18:06:52 +01:00