summary refs log tree commit diff stats
path: root/hw/pci-host/astro.c
diff options
context:
space:
mode:
authorHelge Deller <deller@gmx.de>2023-10-25 21:46:39 +0200
committerRichard Henderson <richard.henderson@linaro.org>2023-11-06 18:49:34 -0800
commit64bf09674a5911fd70a3b4050c2d7081b0353cf5 (patch)
tree152e4f8faaabd102dba6846bcc46d2c21120e973 /hw/pci-host/astro.c
parentfd842b2f4ce2da082b400f9b9278fa6bd45d0864 (diff)
downloadfocaccia-qemu-64bf09674a5911fd70a3b4050c2d7081b0353cf5.tar.gz
focaccia-qemu-64bf09674a5911fd70a3b4050c2d7081b0353cf5.zip
hw/pci-host/astro: Trigger CPU irq on CPU HPA in high memory
The CPU HPA is in the high F-region on PA2.0 CPUs, so use F_EXTEND()
to trigger interrupt request at the right CPU HPA address.
Note that the cpu_hpa value comes out of the IRT, which doesn't store the
higher addresss bits.

Signed-off-by: Helge Deller <deller@gmx.de>
Diffstat (limited to 'hw/pci-host/astro.c')
-rw-r--r--hw/pci-host/astro.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/hw/pci-host/astro.c b/hw/pci-host/astro.c
index df61386bd9..b19f0917c5 100644
--- a/hw/pci-host/astro.c
+++ b/hw/pci-host/astro.c
@@ -384,7 +384,7 @@ static void elroy_set_irq(void *opaque, int irq, int level)
         uint32_t ena = bit & ~old_ilr;
         s->ilr = old_ilr | bit;
         if (ena != 0) {
-            stl_be_phys(&address_space_memory, cpu_hpa, val & 63);
+            stl_be_phys(&address_space_memory, F_EXTEND(cpu_hpa), val & 63);
         }
     } else {
         s->ilr = old_ilr & ~bit;