mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 00:03:54 -06:00
spapr: Small cleanup of PPC MMU enums
The PPC MMU types are sometimes treated as if they were a bit field and sometime as if they were an enum which causes maintenance problems: flipping bits in the MMU type (which is done on both the 1TB segment and 64K segment bits) currently produces new MMU type values that are not handled in every "switch" on it, sometimes causing an abort(). This patch provides some macros that can be used to filter out the "bit field-like" bits so that the remainder of the value can be switched on, like an enum. This allows removal of all of the "degraded" types from the list and should ease maintenance. Signed-off-by: Sam Bobroff <sam.bobroff@au1.ibm.com> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
bb99864528
commit
ec975e839c
6 changed files with 55 additions and 72 deletions
|
@ -283,8 +283,8 @@ static void kvm_get_fallback_smmu_info(PowerPCCPU *cpu,
|
|||
info->flags |= KVM_PPC_1T_SEGMENTS;
|
||||
}
|
||||
|
||||
if (env->mmu_model == POWERPC_MMU_2_06 ||
|
||||
env->mmu_model == POWERPC_MMU_2_07) {
|
||||
if (POWERPC_MMU_VER(env->mmu_model) == POWERPC_MMU_VER_2_06 ||
|
||||
POWERPC_MMU_VER(env->mmu_model) == POWERPC_MMU_VER_2_07) {
|
||||
info->slb_size = 32;
|
||||
} else {
|
||||
info->slb_size = 64;
|
||||
|
@ -298,8 +298,8 @@ static void kvm_get_fallback_smmu_info(PowerPCCPU *cpu,
|
|||
i++;
|
||||
|
||||
/* 64K on MMU 2.06 and later */
|
||||
if (env->mmu_model == POWERPC_MMU_2_06 ||
|
||||
env->mmu_model == POWERPC_MMU_2_07) {
|
||||
if (POWERPC_MMU_VER(env->mmu_model) == POWERPC_MMU_VER_2_06 ||
|
||||
POWERPC_MMU_VER(env->mmu_model) == POWERPC_MMU_VER_2_07) {
|
||||
info->sps[i].page_shift = 16;
|
||||
info->sps[i].slb_enc = 0x110;
|
||||
info->sps[i].enc[0].page_shift = 16;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue