From 0696e7fe197dd2eb607e89b16ee992f759805147 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Sun, 18 Feb 2018 18:06:04 -0500 Subject: [PATCH] exec: allows 8-byte accesses in subpage_ops Otherwise fw_cfg accesses are split into 4-byte ones before they reach the fw_cfg ops / handlers. Backports commit ff6cff7554be06e95f8d712f66cd16bd6681c746 from qemu --- qemu/exec.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/qemu/exec.c b/qemu/exec.c index 3717d7aa..df73c57c 100644 --- a/qemu/exec.c +++ b/qemu/exec.c @@ -1422,7 +1422,7 @@ static MemTxResult subpage_read(struct uc_struct* uc, void *opaque, hwaddr addr, uint64_t *data, unsigned len, MemTxAttrs attrs) { subpage_t *subpage = opaque; - uint8_t buf[4]; + uint8_t buf[8]; MemTxResult res; #if defined(DEBUG_SUBPAGE) @@ -1456,7 +1456,7 @@ static MemTxResult subpage_write(struct uc_struct* uc, void *opaque, hwaddr addr uint64_t value, unsigned len, MemTxAttrs attrs) { subpage_t *subpage = opaque; - uint8_t buf[4]; + uint8_t buf[8]; #if defined(DEBUG_SUBPAGE) printf("%s: subpage %p len %u addr " TARGET_FMT_plx @@ -1503,8 +1503,11 @@ static const MemoryRegionOps subpage_ops = { subpage_write, DEVICE_NATIVE_ENDIAN, { - 0, 0, false, subpage_accepts, + 1, 8, false, subpage_accepts, }, + { + 1, 8, false, + } }; static int subpage_register (subpage_t *mmio, uint32_t start, uint32_t end,