Patchwork target/hppa: forward requests to CPU HPA

login
register
mail settings
Submitter Sven Schnelle
Date Feb. 11, 2019, 7:20 p.m.
Message ID <20190211192039.5457-1-svens@stackframe.org>
Download mbox | patch
Permalink /patch/723287/
State New
Headers show

Comments

Sven Schnelle - Feb. 11, 2019, 7:20 p.m.
HP-UX 10.20 uses busmaster writes to the CPU EIR to signal
interrupts from the SCSI constroller. (Similar to what is known
as MSI on x86)

Signed-off-by: Sven Schnelle <svens@stackframe.org>
---
 hw/hppa/dino.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)
Richard Henderson - Feb. 12, 2019, 4:51 a.m.
On 2/11/19 11:20 AM, Sven Schnelle wrote:
> HP-UX 10.20 uses busmaster writes to the CPU EIR to signal
> interrupts from the SCSI constroller. (Similar to what is known
> as MSI on x86)
> 
> Signed-off-by: Sven Schnelle <svens@stackframe.org>
> ---
>  hw/hppa/dino.c | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)

Queued, thanks.


r~

Patch

diff --git a/hw/hppa/dino.c b/hw/hppa/dino.c
index 31e09942b5..360716de57 100644
--- a/hw/hppa/dino.c
+++ b/hw/hppa/dino.c
@@ -105,6 +105,7 @@  typedef struct DinoState {
     MemoryRegion bm;
     MemoryRegion bm_ram_alias;
     MemoryRegion bm_pci_alias;
+    MemoryRegion bm_cpu_alias;
 
     MemoryRegion cpu0_eir_mem;
 } DinoState;
@@ -473,12 +474,17 @@  PCIBus *dino_init(MemoryRegion *addr_space,
     memory_region_init_alias(&s->bm_pci_alias, OBJECT(s),
                              "bm-pci", &s->pci_mem,
                              0xf0000000 + DINO_MEM_CHUNK_SIZE,
-                             31 * DINO_MEM_CHUNK_SIZE);
+                             30 * DINO_MEM_CHUNK_SIZE);
+    memory_region_init_alias(&s->bm_cpu_alias, OBJECT(s),
+                             "bm-cpu", addr_space, 0xfff00000,
+                             0xfffff);
     memory_region_add_subregion(&s->bm, 0,
                                 &s->bm_ram_alias);
     memory_region_add_subregion(&s->bm,
                                 0xf0000000 + DINO_MEM_CHUNK_SIZE,
                                 &s->bm_pci_alias);
+    memory_region_add_subregion(&s->bm, 0xfff00000,
+                                &s->bm_cpu_alias);
     address_space_init(&s->bm_as, &s->bm, "pci-bm");
     pci_setup_iommu(b, dino_pcihost_set_iommu, s);