This patchset overhauls the stellaris_enet TX and RX handling code, and converts it to use vmstate.
The principal motivation is to fix the buffer overrun noted in the first patch, and to reimplement things using simpler state fields which are easier to migrate and to validate in post_load. I also fixed a couple of other bugs I noticed while I was there. This isn't actually sufficient to get my test image to work: that needs proper implementation of the MII registers in the PHY. I tested this with a minor hack to make all MII registers return 0x24, which happens to satisfy the test image's setup code. However implementing the PHY registers is more work than I want to do on this device right now... Changes v1->v2: * only transmit when 1 is written to TR, not on any write * new patches to get rid of rx_fifo, rx_fifo_len * vmstate conversion (includes migration sanitizing code) Peter Maydell (7): hw/net/stellaris_enet: Restructure tx_fifo code to avoid buffer overrun hw/net/stellaris_enet: Correct handling of packet padding hw/net/stellaris_enet: Rewrite tx fifo handling code hw/net/stellaris_enet: Correctly implement the TR and THR registers hw/net/stellaris_enet: Fix debug format strings hw/net/stellaris_enet: Get rid of rx_fifo pointer hw/net/stellaris_enet: Convert to vmstate hw/net/stellaris_enet.c | 311 ++++++++++++++++++++++++++++-------------------- 1 file changed, 185 insertions(+), 126 deletions(-) -- 1.9.0