[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC PATCH 2/6] ppc/pnv: Activate support for the Processor Attention in
From: |
Leandro Lupori |
Subject: |
[RFC PATCH 2/6] ppc/pnv: Activate support for the Processor Attention instruction |
Date: |
Thu, 24 Mar 2022 16:08:50 -0300 |
From: Cédric Le Goater <clg@kaod.org>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: Leandro Lupori <leandro.lupori@eldorado.org.br>
---
hw/ppc/pnv_core.c | 6 ++++++
include/hw/ppc/pnv_core.h | 1 +
2 files changed, 7 insertions(+)
diff --git a/hw/ppc/pnv_core.c b/hw/ppc/pnv_core.c
index 19e8eb885f..eb59b44a6c 100644
--- a/hw/ppc/pnv_core.c
+++ b/hw/ppc/pnv_core.c
@@ -46,6 +46,7 @@ static void pnv_core_cpu_reset(PnvCore *pc, PowerPCCPU *cpu)
CPUState *cs = CPU(cpu);
CPUPPCState *env = &cpu->env;
PnvChipClass *pcc = PNV_CHIP_GET_CLASS(pc->chip);
+ PnvCoreClass *pcorec = PNV_CORE_GET_CLASS(pc);
cpu_reset(cs);
@@ -57,6 +58,8 @@ static void pnv_core_cpu_reset(PnvCore *pc, PowerPCCPU *cpu)
env->nip = 0x10;
env->msr |= MSR_HVB; /* Hypervisor mode */
env->spr[SPR_HRMOR] = pc->hrmor;
+ env->spr[SPR_HID0] |= pcorec->attn;
+
hreg_compute_hflags(env);
pcc->intc_reset(pc->chip, cpu);
@@ -300,6 +303,7 @@ static void pnv_core_power8_class_init(ObjectClass *oc,
void *data)
PnvCoreClass *pcc = PNV_CORE_CLASS(oc);
pcc->xscom_ops = &pnv_core_power8_xscom_ops;
+ pcc->attn = HID0_ATTN;
}
static void pnv_core_power9_class_init(ObjectClass *oc, void *data)
@@ -307,6 +311,7 @@ static void pnv_core_power9_class_init(ObjectClass *oc,
void *data)
PnvCoreClass *pcc = PNV_CORE_CLASS(oc);
pcc->xscom_ops = &pnv_core_power9_xscom_ops;
+ pcc->attn = HID0_POWER9_ATTN;
}
static void pnv_core_power10_class_init(ObjectClass *oc, void *data)
@@ -315,6 +320,7 @@ static void pnv_core_power10_class_init(ObjectClass *oc,
void *data)
/* TODO: Use the P9 XSCOMs for now on P10 */
pcc->xscom_ops = &pnv_core_power9_xscom_ops;
+ pcc->attn = HID0_POWER9_ATTN;
}
static void pnv_core_class_init(ObjectClass *oc, void *data)
diff --git a/include/hw/ppc/pnv_core.h b/include/hw/ppc/pnv_core.h
index c22eab2e1f..04e1fec1f3 100644
--- a/include/hw/ppc/pnv_core.h
+++ b/include/hw/ppc/pnv_core.h
@@ -47,6 +47,7 @@ struct PnvCoreClass {
DeviceClass parent_class;
const MemoryRegionOps *xscom_ops;
+ uint64_t attn;
};
#define PNV_CORE_TYPE_SUFFIX "-" TYPE_PNV_CORE
--
2.25.1
[RFC PATCH 5/6] tests/tcg/ppc64: add MMU test sources, Leandro Lupori, 2022/03/24
[RFC PATCH 6/6] tests/tcg/ppc64: add rules to build PowerNV tests, Leandro Lupori, 2022/03/24
Re: [RFC PATCH 0/6] Port PPC64/PowerNV MMU tests to QEMU, Richard Henderson, 2022/03/26