From: djtodoro <[email protected]>
The virtio-mmio transport registers are always little-endian per spec.
DEVICE_NATIVE_ENDIAN caused a double byte-swap on BE targets, making
the kernel see a swapped magic value.
---
hw/virtio/virtio-mmio.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/virtio/virtio-mmio.c b/hw/virtio/virtio-mmio.c
index 0b0412b22f..92ff793d2c 100644
--- a/hw/virtio/virtio-mmio.c
+++ b/hw/virtio/virtio-mmio.c
@@ -527,7 +527,7 @@ static void virtio_mmio_write(void *opaque, hwaddr offset,
uint64_t value,
static const MemoryRegionOps virtio_legacy_mem_ops = {
.read = virtio_mmio_read,
.write = virtio_mmio_write,
- .endianness = DEVICE_NATIVE_ENDIAN,
+ .endianness = DEVICE_LITTLE_ENDIAN,
};
static const MemoryRegionOps virtio_mem_ops = {
--
2.34.1