target/ppc: Allow virtual hypervisor on CPU without HV
authorBALATON Zoltan <balaton@eik.bme.hu>
Sun, 27 Jun 2021 16:27:13 +0000 (18:27 +0200)
committerDavid Gibson <david@gibson.dropbear.id.au>
Fri, 9 Jul 2021 00:38:19 +0000 (10:38 +1000)
Change the assert in ppc_store_sdr1() to allow vhyp to be set on CPUs
without HV bit. This allows using the vhyp interface for firmware
emulation on pegasos2.

Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <21c7745aabbb68fcc50bb2ffaf16b939ba21261c.1624811233.git.balaton@eik.bme.hu>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
target/ppc/cpu.c

index 19d67b5b07668afdfae3bbd60e2860b9e7b04001..a29299882a6d5911c3bd8b7d9a0df47972699909 100644 (file)
@@ -72,7 +72,7 @@ void ppc_store_sdr1(CPUPPCState *env, target_ulong value)
 {
     PowerPCCPU *cpu = env_archcpu(env);
     qemu_log_mask(CPU_LOG_MMU, "%s: " TARGET_FMT_lx "\n", __func__, value);
-    assert(!cpu->vhyp);
+    assert(!cpu->env.has_hv_mode || !cpu->vhyp);
 #if defined(TARGET_PPC64)
     if (mmu_is_64bit(env->mmu_model)) {
         target_ulong sdr_mask = SDR_64_HTABORG | SDR_64_HTABSIZE;