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
>
>