summaryrefslogtreecommitdiffstats
path: root/include/hw/ppc/pnv_core.h
diff options
context:
space:
mode:
authorCédric Le Goater2019-03-07 23:35:44 +0100
committerDavid Gibson2019-03-12 04:33:04 +0100
commit5dad902ce09877a97a6f32e5f6c75b4f8506bd73 (patch)
treee17c6171757a39c2072a4b3909b9c77dbf5150ac /include/hw/ppc/pnv_core.h
parentppc/pnv: extend XSCOM core support for POWER9 (diff)
downloadqemu-5dad902ce09877a97a6f32e5f6c75b4f8506bd73.tar.gz
qemu-5dad902ce09877a97a6f32e5f6c75b4f8506bd73.tar.xz
qemu-5dad902ce09877a97a6f32e5f6c75b4f8506bd73.zip
ppc/pnv: POWER9 XSCOM quad support
The POWER9 processor does not support per-core frequency control. The cores are arranged in groups of four, along with their respective L2 and L3 caches, into a structure known as a Quad. The frequency must be managed at the Quad level. Provide a basic Quad model to fake the settings done by the firmware on the Non-Cacheable Unit (NCU). Each core pair (EX) needs a special BAR setting for the TIMA area of XIVE because it resides on the same address on all chips. Signed-off-by: Cédric Le Goater <clg@kaod.org> Message-Id: <20190307223548.20516-12-clg@kaod.org> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'include/hw/ppc/pnv_core.h')
-rw-r--r--include/hw/ppc/pnv_core.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/include/hw/ppc/pnv_core.h b/include/hw/ppc/pnv_core.h
index cbe9ad36f3..50cdb2b358 100644
--- a/include/hw/ppc/pnv_core.h
+++ b/include/hw/ppc/pnv_core.h
@@ -58,4 +58,14 @@ static inline PnvCPUState *pnv_cpu_state(PowerPCCPU *cpu)
return (PnvCPUState *)cpu->machine_data;
}
+#define TYPE_PNV_QUAD "powernv-cpu-quad"
+#define PNV_QUAD(obj) \
+ OBJECT_CHECK(PnvQuad, (obj), TYPE_PNV_QUAD)
+
+typedef struct PnvQuad {
+ DeviceState parent_obj;
+
+ uint32_t id;
+ MemoryRegion xscom_regs;
+} PnvQuad;
#endif /* _PPC_PNV_CORE_H */