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@redhat.com> Reviewed-by: Cédric Le Goater <clg@kaod.org> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
		
							parent
							
								
									230bf719d3
								
							
						
					
					
						commit
						4cbec30d76
					
				| 
						 | 
				
			
			@ -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) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue