summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCédric Le Goater2019-10-22 18:38:09 +0200
committerDavid Gibson2019-10-24 04:33:33 +0200
commitaa5ac64b2394712b6269d0b15ba06c9c564dee92 (patch)
treee5ca781759f759efe4c42407f212cbfd074f8b93
parentppc/pnv: Introduce a PnvCore reset handler (diff)
downloadqemu-aa5ac64b2394712b6269d0b15ba06c9c564dee92.tar.gz
qemu-aa5ac64b2394712b6269d0b15ba06c9c564dee92.tar.xz
qemu-aa5ac64b2394712b6269d0b15ba06c9c564dee92.zip
ppc/pnv: Add a PnvChip pointer to PnvCore
We will use it to reset the interrupt presenter from the CPU reset handler. Signed-off-by: Cédric Le Goater <clg@kaod.org> Reviewed-by: Greg Kurz <groug@kaod.org> Message-Id: <20191022163812.330-5-clg@kaod.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
-rw-r--r--hw/ppc/pnv_core.c3
-rw-r--r--include/hw/ppc/pnv_core.h3
2 files changed, 5 insertions, 1 deletions
diff --git a/hw/ppc/pnv_core.c b/hw/ppc/pnv_core.c
index 9f981a4940..cc17bbfed8 100644
--- a/hw/ppc/pnv_core.c
+++ b/hw/ppc/pnv_core.c
@@ -222,6 +222,7 @@ static void pnv_core_realize(DeviceState *dev, Error **errp)
"required link 'chip' not found: ");
return;
}
+ pc->chip = PNV_CHIP(chip);
pc->threads = g_new(PowerPCCPU *, cc->nr_threads);
for (i = 0; i < cc->nr_threads; i++) {
@@ -243,7 +244,7 @@ static void pnv_core_realize(DeviceState *dev, Error **errp)
}
for (j = 0; j < cc->nr_threads; j++) {
- pnv_realize_vcpu(pc->threads[j], PNV_CHIP(chip), &local_err);
+ pnv_realize_vcpu(pc->threads[j], pc->chip, &local_err);
if (local_err) {
goto err;
}
diff --git a/include/hw/ppc/pnv_core.h b/include/hw/ppc/pnv_core.h
index bfbd2ec42a..55eee95104 100644
--- a/include/hw/ppc/pnv_core.h
+++ b/include/hw/ppc/pnv_core.h
@@ -31,6 +31,8 @@
#define PNV_CORE_GET_CLASS(obj) \
OBJECT_GET_CLASS(PnvCoreClass, (obj), TYPE_PNV_CORE)
+typedef struct PnvChip PnvChip;
+
typedef struct PnvCore {
/*< private >*/
CPUCore parent_obj;
@@ -38,6 +40,7 @@ typedef struct PnvCore {
/*< public >*/
PowerPCCPU **threads;
uint32_t pir;
+ PnvChip *chip;
MemoryRegion xscom_regs;
} PnvCore;