Message ID | cover.1715285340.git.balaton@eik.bme.hu (mailing list archive) |
---|---|
Headers | show |
Series | Misc PPC exception and BookE MMU clean ups | expand |
On Thu, 9 May 2024, BALATON Zoltan wrote: > This series does some further clean up mostly around BookE MMU to > untangle it from other MMU models. It also contains some other changes > that I've come up with while working on this. The Simplify > ppc_booke_xlate() part 1 and part 2 patches could be squashed together > but left them separate for easier review. > > v5: > - drop sc patches from this series > - eliminate uninit warning work arounds and also get rid of > get_physical_address_wtlb() (one memset is still needed temporarily > but can be removed at the end) Looks like the cases -3 and -4 are only for 6xx so splitting off the 4xx case from ppc_jumbo_xlate may resolve this warning as well. Let me try another round with this and send another version. I'll also include this patch: https://patchew.org/QEMU/20240505171444.333302-1-dave@treblig.org/20240505171444.333302-7-dave@treblig.org/ that would need rebasing otherwise. (I meant to do that before but forgot.) Regards, BALATON Zoltan > - use function instead of macro > > v4: > - Add a (probably redundant) check for MPC8xx case in ppc_xlate so we > don't have to care about it in lower levels > - Detangle BookE related functions from mmu_ctx_t to avoid some used > uninit work arounds and allow these to be moved out to mmu-booke.c > - Some other tweaks asked during review > > v3: > - Address review comments from Nick > - Rebase on master > - Squashed some patches together > - Add some more patches I've done since last version > > v2: > - Fix user mode issue in patch 1 by keeping old behaviour for user mode > - Add some more MMU clean up patches > > Regards, > BALATON Zoltan > > > BALATON Zoltan (32): > target/ppc: Remove unused helper > target/ppc/mmu_common.c: Move calculation of a value closer to its > usage > target/ppc/mmu_common.c: Remove unneeded local variable > target/ppc/mmu_common.c: Simplify checking for real mode > target/ppc/mmu_common.c: Drop cases for unimplemented MPC8xx MMU > target/ppc/mmu_common.c: Introduce mmu6xx_get_physical_address() > target/ppc/mmu_common.c: Move else branch to avoid large if block > target/ppc/mmu_common.c: Move some debug logging > target/ppc/mmu_common.c: Eliminate ret from > mmu6xx_get_physical_address() > target/ppc/mmu_common.c: Split out BookE cases before checking real > mode > target/ppc/mmu_common.c: Split off real mode cases in > get_physical_address_wtlb() > target/ppc/mmu_common.c: Inline and remove check_physical() > target/ppc/mmu_common.c: Fix misindented qemu_log_mask() calls > target/ppc/mmu_common.c: Deindent ppc_jumbo_xlate() > target/ppc/mmu_common.c: Replace hard coded constants in > ppc_jumbo_xlate() > target/ppc/mmu_common.c: Don't use mmu_ctx_t for > mmu40x_get_physical_address() > target/ppc/mmu_common.c: Don't use mmu_ctx_t in > mmubooke_get_physical_address() > target/ppc/mmu_common.c: Don't use mmu_ctx_t in > mmubooke206_get_physical_address() > target/ppc: Remove pp_check() and reuse ppc_hash32_pp_prot() > target/ppc/mmu_common.c: Remove BookE from direct store handling > target/ppc/mmu_common.c: Split off BookE handling from > ppc_jumbo_xlate() > target/ppc/mmu_common.c: Eliminate get_physical_address_wtlb() > target/ppc/mmu_common.c: Move mmu_ctx_t type to mmu_common.c > target/ppc/mmu_common.c: Simplify ppc_booke_xlate() part 1 > target/ppc/mmu_common.c: Simplify ppc_booke_xlate() part 2 > target/ppc: Remove id_tlbs flag from CPU env > target/ppc: Split off common embedded TLB init > target/ppc/mmu-hash32.c: Drop a local variable > target/ppc/mmu-radix64.c: Drop a local variable > target/ppc: Add a function to check for page protection bit > target/ppc: Move out BookE and related MMU functions from mmu_common.c > target/ppc/mmu_common.c: Remove work around for spurious warnings > > hw/ppc/pegasos2.c | 2 +- > target/ppc/cpu.h | 9 +- > target/ppc/cpu_init.c | 70 +-- > target/ppc/helper.h | 2 - > target/ppc/helper_regs.c | 1 - > target/ppc/internal.h | 75 +-- > target/ppc/meson.build | 1 + > target/ppc/mmu-booke.c | 531 +++++++++++++++++ > target/ppc/mmu-booke.h | 17 + > target/ppc/mmu-hash32.c | 54 +- > target/ppc/mmu-hash64.c | 2 +- > target/ppc/mmu-radix64.c | 5 +- > target/ppc/mmu_common.c | 1158 +++++++++----------------------------- > target/ppc/mmu_helper.c | 37 +- > 14 files changed, 891 insertions(+), 1073 deletions(-) > create mode 100644 target/ppc/mmu-booke.c > create mode 100644 target/ppc/mmu-booke.h > >