[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] system/physmem: Fix cpu_memory_rw_debug for armv7m MPU
From: |
Xiong Nandi |
Subject: |
[PATCH] system/physmem: Fix cpu_memory_rw_debug for armv7m MPU |
Date: |
Wed, 20 Nov 2024 23:15:15 +0800 |
The actual page size (region size for MPU) of armv7m may
smaller than TARGET_PAGE_SIZE (2^5 vs 2^10). So we should
use the actual virtual address to get the phys page address.
Signed-off-by: Xiong Nandi <xndchn@gmail.com>
---
system/physmem.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/system/physmem.c b/system/physmem.c
index dc1db3a384..a76b305130 100644
--- a/system/physmem.c
+++ b/system/physmem.c
@@ -3564,11 +3564,12 @@ int cpu_memory_rw_debug(CPUState *cpu, vaddr addr,
MemTxResult res;
page = addr & TARGET_PAGE_MASK;
- phys_addr = cpu_get_phys_page_attrs_debug(cpu, page, &attrs);
+ phys_addr = cpu_get_phys_page_attrs_debug(cpu, addr, &attrs);
asidx = cpu_asidx_from_attrs(cpu, attrs);
/* if no physical page mapped, return an error */
if (phys_addr == -1)
return -1;
+ phys_addr &= TARGET_PAGE_MASK;
l = (page + TARGET_PAGE_SIZE) - addr;
if (l > len)
l = len;
--
2.25.1