QEMU is now stricter with MMIO sizes and accesses. uintptr_t on RV64
is 8 bytes and generates an sd instruction that Store/AMO faults
because sifive_test MMIO expects 4 bytes accesses.
---
 bsps/riscv/riscv/start/bsp_fatal_halt.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/bsps/riscv/riscv/start/bsp_fatal_halt.c 
b/bsps/riscv/riscv/start/bsp_fatal_halt.c
index af9e2ac7c6..348fa4f8f4 100644
--- a/bsps/riscv/riscv/start/bsp_fatal_halt.c
+++ b/bsps/riscv/riscv/start/bsp_fatal_halt.c
@@ -35,7 +35,7 @@ void _CPU_Fatal_halt(uint32_t source, uint32_t error)
 {
   const char *fdt;
   int node;
-  volatile uintptr_t *sifive_test;
+  volatile uint32_t *sifive_test;
 
 #if RISCV_ENABLE_HTIF_SUPPORT != 0
   htif_poweroff();
-- 
2.25.1

_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to