[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 1/5] hw/alpha: Set minimum PCI device ID to 1 to match Clipper IRQ
From: |
Richard Henderson |
Subject: |
[PULL 1/5] hw/alpha: Set minimum PCI device ID to 1 to match Clipper IRQ mappings |
Date: |
Mon, 28 Jun 2021 07:35:47 -0700 |
From: Jason Thorpe <thorpej@me.com>
Since we are emulating a Clipper device topology, we need to set the
minimum PCI device ID to 1, as there is no IRQ mapping for a device
at ID 0 (see sys_dp264.c:clipper_map_irq()).
- Add a 'devfn_min' argument to typhoon_init(). Pass that argument
along to pci_register_root_bus().
- In clipper_init(), pass PCI_DEVFN(1, 0) as the minimum PCI device
ID/function.
Signed-off-by: Jason Thorpe <thorpej@me.com>
Message-Id: <20210613211549.18094-3-thorpej@me.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
hw/alpha/alpha_sys.h | 2 +-
hw/alpha/dp264.c | 7 +++++--
hw/alpha/typhoon.c | 5 +++--
3 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/hw/alpha/alpha_sys.h b/hw/alpha/alpha_sys.h
index e2c02e2bbe..4835b3d5ee 100644
--- a/hw/alpha/alpha_sys.h
+++ b/hw/alpha/alpha_sys.h
@@ -11,7 +11,7 @@
PCIBus *typhoon_init(MemoryRegion *, ISABus **, qemu_irq *, AlphaCPU *[4],
- pci_map_irq_fn);
+ pci_map_irq_fn, uint8_t devfn_min);
/* alpha_pci.c. */
extern const MemoryRegionOps alpha_pci_ignore_ops;
diff --git a/hw/alpha/dp264.c b/hw/alpha/dp264.c
index 1017ecf330..010d22476b 100644
--- a/hw/alpha/dp264.c
+++ b/hw/alpha/dp264.c
@@ -76,9 +76,12 @@ static void clipper_init(MachineState *machine)
cpus[0]->env.trap_arg1 = 0;
cpus[0]->env.trap_arg2 = smp_cpus;
- /* Init the chipset. */
+ /*
+ * Init the chipset. Because we're using CLIPPER IRQ mappings,
+ * the minimum PCI device IdSel is 1.
+ */
pci_bus = typhoon_init(machine->ram, &isa_bus, &rtc_irq, cpus,
- clipper_pci_map_irq);
+ clipper_pci_map_irq, PCI_DEVFN(1, 0));
/* Since we have an SRM-compatible PALcode, use the SRM epoch. */
mc146818_rtc_init(isa_bus, 1900, rtc_irq);
diff --git a/hw/alpha/typhoon.c b/hw/alpha/typhoon.c
index 87020cbe0d..fa31a2f286 100644
--- a/hw/alpha/typhoon.c
+++ b/hw/alpha/typhoon.c
@@ -815,7 +815,8 @@ static void typhoon_alarm_timer(void *opaque)
}
PCIBus *typhoon_init(MemoryRegion *ram, ISABus **isa_bus, qemu_irq *p_rtc_irq,
- AlphaCPU *cpus[4], pci_map_irq_fn sys_map_irq)
+ AlphaCPU *cpus[4], pci_map_irq_fn sys_map_irq,
+ uint8_t devfn_min)
{
MemoryRegion *addr_space = get_system_memory();
DeviceState *dev;
@@ -885,7 +886,7 @@ PCIBus *typhoon_init(MemoryRegion *ram, ISABus **isa_bus,
qemu_irq *p_rtc_irq,
b = pci_register_root_bus(dev, "pci",
typhoon_set_irq, sys_map_irq, s,
&s->pchip.reg_mem, &s->pchip.reg_io,
- 0, 64, TYPE_PCI_BUS);
+ devfn_min, 64, TYPE_PCI_BUS);
phb->bus = b;
sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal);
--
2.25.1
- [PULL 0/5] target/alpha patch queue, Richard Henderson, 2021/06/28
- [PULL 2/5] hw/alpha: Provide console information to the PALcode at start-up, Richard Henderson, 2021/06/28
- [PULL 1/5] hw/alpha: Set minimum PCI device ID to 1 to match Clipper IRQ mappings,
Richard Henderson <=
- [PULL 3/5] hw/alpha: Provide a PCI-ISA bridge device node, Richard Henderson, 2021/06/28
- [PULL 5/5] target/alpha: Honor the FEN bit, Richard Henderson, 2021/06/28
- [PULL 4/5] pc-bios: Update the palcode-clipper image, Richard Henderson, 2021/06/28
- Re: [PULL 0/5] target/alpha patch queue, no-reply, 2021/06/28
- Re: [PULL 0/5] target/alpha patch queue, Peter Maydell, 2021/06/29