Commit 4cbec30d authored by Thomas Huth's avatar Thomas Huth Committed by David Gibson
Browse files

hw/ppc/spapr: Fix the selection of the processor features



The current code uses pa_features_206 for POWERPC_MMU_2_06, and
for everything else, it uses pa_features_207. This is bad in some
cases because there is also a "degraded" MMU version of ISA 2.06,
called POWERPC_MMU_2_06a, which should of course use the flags for
2.06 instead. And there is also the possibility that the user runs
the pseries machine with a POWER5+ or even 970 processor. In that
case we certainly do not want to set the flags for 2.07, and rather
simply skip the setting of the pa-features property instead.

Signed-off-by: default avatarThomas Huth <thuth@redhat.com>
Reviewed-by: default avatarCédric Le Goater <clg@kaod.org>
Signed-off-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
parent 230bf719
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -559,12 +559,19 @@ static void spapr_populate_pa_features(CPUPPCState *env, void *fdt, int offset)
    uint8_t *pa_features;
    size_t pa_size;

    if (env->mmu_model == POWERPC_MMU_2_06) {
    switch (env->mmu_model) {
    case POWERPC_MMU_2_06:
    case POWERPC_MMU_2_06a:
        pa_features = pa_features_206;
        pa_size = sizeof(pa_features_206);
    } else { /* env->mmu_model == POWERPC_MMU_2_07 */
        break;
    case POWERPC_MMU_2_07:
    case POWERPC_MMU_2_07a:
        pa_features = pa_features_207;
        pa_size = sizeof(pa_features_207);
        break;
    default:
        return;
    }

    if (env->ci_large_pages) {