The driver parts (patches 3-8) are unchanged, so didn't repost. 1) Rebased onto more recent git tree. 2) New stub is virtio_get_byteswap() 3) PPC64 uses endianness of first CPU interrupt vectors, not CPU endiannes.
Hope this one is closer... Rusty. Rusty Russell (8): virtio_get_byteswap: function for endian-ambivalent targets using virtio. target-ppc: ppc64 target's virtio can be either endian. virtio: allow byte swapping for vring and config access hw/net/virtio-net: use virtio wrappers to access headers. hw/net/virtio-balloon: use virtio wrappers to access page frame numbers. hw/block/virtio-blk: use virtio wrappers to access headers. hw/scsi/virtio-scsi: use virtio wrappers to access headers. hw/char/virtio-serial-bus: use virtio wrappers to access headers. hw/block/virtio-blk.c | 35 +++++----- hw/char/virtio-serial-bus.c | 34 +++++----- hw/net/virtio-net.c | 15 +++-- hw/scsi/virtio-scsi.c | 33 +++++----- hw/virtio/virtio-balloon.c | 3 +- hw/virtio/virtio.c | 29 +++++---- include/hw/virtio/virtio-access.h | 130 ++++++++++++++++++++++++++++++++++++++ include/hw/virtio/virtio.h | 2 + stubs/Makefile.objs | 1 + stubs/virtio_get_byteswap.c | 6 ++ target-ppc/misc_helper.c | 9 +++ 11 files changed, 226 insertions(+), 71 deletions(-) create mode 100644 include/hw/virtio/virtio-access.h create mode 100644 stubs/virtio_get_byteswap.c -- 1.8.1.2