[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [qemu-xen master] hw/ppc/spapr: Fix the selection of the processor features



commit 45a4f18e2ec40b96893c780c28ab18c246906355
Author:     Thomas Huth <thuth@xxxxxxxxxx>
AuthorDate: Wed Sep 28 13:16:29 2016 +0200
Commit:     David Gibson <david@xxxxxxxxxxxxxxxxxxxxx>
CommitDate: Thu Oct 13 12:58:06 2016 +1100

    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: Thomas Huth <thuth@xxxxxxxxxx>
    Reviewed-by: Cédric Le Goater <clg@xxxxxxxx>
    Signed-off-by: David Gibson <david@xxxxxxxxxxxxxxxxxxxxx>
    (cherry picked from commit 4cbec30d769a73853b60dc7f275e6e7da9ab5162)
---
 hw/ppc/spapr.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 36d9077..9f0d99b 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -607,12 +607,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) {
--
generated by git-patchbot for /home/xen/git/qemu-xen.git#master

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
https://lists.xenproject.org/xen-changelog

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.