Virtio is currently defined as "guest-endian", but that's a slippery concept when the target can change endian. In particular, virtio devices fail on little-endian powerpc 64.
Feedback welcome! Rusty. Rusty Russell (7): virtio: allow byte swapping for vring and config access target-ppc: ppc64 targets can be either endian. 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. configure | 1 + 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 | 46 +++++++++---- include/hw/virtio/virtio-access.h | 138 ++++++++++++++++++++++++++++++++++++++ target-ppc/misc_helper.c | 8 +++ 9 files changed, 242 insertions(+), 71 deletions(-) create mode 100644 include/hw/virtio/virtio-access.h -- 1.8.1.2