qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: BALATON Zoltan <balaton@eik.bme.hu>
To: qemu-devel@nongnu.org, qemu-ppc@nongnu.org
Cc: Nicholas Piggin <npiggin@gmail.com>,
	Daniel Henrique Barboza <danielhb413@gmail.com>
Subject: [PATCH v6 00/48] Misc PPC exception and BookE MMU clean ups
Date: Sat, 11 May 2024 03:45:38 +0200 (CEST)	[thread overview]
Message-ID: <cover.1715390232.git.balaton@eik.bme.hu> (raw)

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. This could still be continued
which I might do in the future but I had enough of it for now.

v6:
- Finish breaking up ppc_jumbo_xlate by MMU model as the TODO comment
said and remove it completely
- Add some more small clean ups

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


Dr. David Alan Gilbert (1):
  target/ppc: Remove unused struct 'mmu_ctx_hash32'

BALATON Zoltan (47):
  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: Simplify ppc_booke_xlate() part 1
  target/ppc/mmu_common.c: Simplify ppc_booke_xlate() part 2
  target/ppc/mmu_common.c: Split off real mode handling from
    get_physical_address_wtlb()
  target/ppc/mmu_common.c: Split off 40x cases from ppc_jumbo_xlate()
  target/ppc/mmu_common.c: Transform ppc_jumbo_xlate() into
    ppc_6xx_xlate()
  target/ppc/mmu_common.c: Move mmu_ctx_t type to mmu_common.c
  target/ppc/mmu_common.c: Remove pte_update_flags()
  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 local name for a constant
  target/ppc/mmu_common.c: Remove single use local variable
  target/ppc/mmu_common.c: Remove single use local variable
  target/ppc/mmu_common.c: Remove another single use local
  target/ppc/mmu_common.c: Remove yet another single use local
  target/ppc/mmu_common.c: Return directly in ppc6xx_tlb_pte_check()
  target/ppc/mmu_common.c: Simplify ppc6xx_tlb_pte_check()
  target/ppc/mmu_common.c: Remove unused field from mmu_ctx_t
  target/ppc/mmu_common.c: Remove hash field from mmu_ctx_t
  target/ppc/mmu_common.c: Remove nx field from mmu_ctx_t
  target/ppc/mmu_common.c: Convert local variable to bool
  target/ppc/mmu_common.c: Remove single use local variable
  target/ppc/mmu_common.c: Simplify a switch statement

 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  |   60 +-
 target/ppc/mmu-hash64.c  |    2 +-
 target/ppc/mmu-radix64.c |    5 +-
 target/ppc/mmu_common.c  | 1289 ++++++++++----------------------------
 target/ppc/mmu_helper.c  |   37 +-
 14 files changed, 954 insertions(+), 1147 deletions(-)
 create mode 100644 target/ppc/mmu-booke.c
 create mode 100644 target/ppc/mmu-booke.h

-- 
2.30.9



             reply	other threads:[~2024-05-11  1:48 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-11  1:45 BALATON Zoltan [this message]
2024-05-11  1:45 ` [PATCH v6 01/48] target/ppc: Remove unused struct 'mmu_ctx_hash32' BALATON Zoltan
2024-05-11  1:45 ` [PATCH v6 02/48] target/ppc: Remove unused helper BALATON Zoltan
2024-05-11  1:45 ` [PATCH v6 03/48] target/ppc/mmu_common.c: Move calculation of a value closer to its usage BALATON Zoltan
2024-05-11  1:45 ` [PATCH v6 04/48] target/ppc/mmu_common.c: Remove unneeded local variable BALATON Zoltan
2024-05-11  1:45 ` [PATCH v6 05/48] target/ppc/mmu_common.c: Simplify checking for real mode BALATON Zoltan
2024-05-11  1:45 ` [PATCH v6 06/48] target/ppc/mmu_common.c: Drop cases for unimplemented MPC8xx MMU BALATON Zoltan
2024-05-11  1:45 ` [PATCH v6 07/48] target/ppc/mmu_common.c: Introduce mmu6xx_get_physical_address() BALATON Zoltan
2024-05-11  1:45 ` [PATCH v6 08/48] target/ppc/mmu_common.c: Move else branch to avoid large if block BALATON Zoltan
2024-05-11  1:45 ` [PATCH v6 09/48] target/ppc/mmu_common.c: Move some debug logging BALATON Zoltan
2024-05-11  1:45 ` [PATCH v6 10/48] target/ppc/mmu_common.c: Eliminate ret from mmu6xx_get_physical_address() BALATON Zoltan
2024-05-11  1:45 ` [PATCH v6 11/48] target/ppc/mmu_common.c: Split out BookE cases before checking real mode BALATON Zoltan
2024-05-11  1:45 ` [PATCH v6 12/48] target/ppc/mmu_common.c: Split off real mode cases in get_physical_address_wtlb() BALATON Zoltan
2024-05-11  1:45 ` [PATCH v6 13/48] target/ppc/mmu_common.c: Inline and remove check_physical() BALATON Zoltan
2024-05-11  1:45 ` [PATCH v6 14/48] target/ppc/mmu_common.c: Fix misindented qemu_log_mask() calls BALATON Zoltan
2024-05-11  1:45 ` [PATCH v6 15/48] target/ppc/mmu_common.c: Deindent ppc_jumbo_xlate() BALATON Zoltan
2024-05-11  1:45 ` [PATCH v6 16/48] target/ppc/mmu_common.c: Replace hard coded constants in ppc_jumbo_xlate() BALATON Zoltan
2024-05-11  1:45 ` [PATCH v6 17/48] target/ppc/mmu_common.c: Don't use mmu_ctx_t for mmu40x_get_physical_address() BALATON Zoltan
2024-05-11  1:45 ` [PATCH v6 18/48] target/ppc/mmu_common.c: Don't use mmu_ctx_t in mmubooke_get_physical_address() BALATON Zoltan
2024-05-11  1:45 ` [PATCH v6 19/48] target/ppc/mmu_common.c: Don't use mmu_ctx_t in mmubooke206_get_physical_address() BALATON Zoltan
2024-05-11  1:45 ` [PATCH v6 20/48] target/ppc: Remove pp_check() and reuse ppc_hash32_pp_prot() BALATON Zoltan
2024-05-11  1:46 ` [PATCH v6 21/48] target/ppc/mmu_common.c: Remove BookE from direct store handling BALATON Zoltan
2024-05-11  1:46 ` [PATCH v6 22/48] target/ppc/mmu_common.c: Split off BookE handling from ppc_jumbo_xlate() BALATON Zoltan
2024-05-11  1:46 ` [PATCH v6 23/48] target/ppc/mmu_common.c: Simplify ppc_booke_xlate() part 1 BALATON Zoltan
2024-05-11  1:46 ` [PATCH v6 24/48] target/ppc/mmu_common.c: Simplify ppc_booke_xlate() part 2 BALATON Zoltan
2024-05-11  1:46 ` [PATCH v6 25/48] target/ppc/mmu_common.c: Split off real mode handling from get_physical_address_wtlb() BALATON Zoltan
2024-05-11  1:46 ` [PATCH v6 26/48] target/ppc/mmu_common.c: Split off 40x cases from ppc_jumbo_xlate() BALATON Zoltan
2024-05-11  1:46 ` [PATCH v6 27/48] target/ppc/mmu_common.c: Transform ppc_jumbo_xlate() into ppc_6xx_xlate() BALATON Zoltan
2024-05-11  1:46 ` [PATCH v6 28/48] target/ppc/mmu_common.c: Move mmu_ctx_t type to mmu_common.c BALATON Zoltan
2024-05-11  1:46 ` [PATCH v6 29/48] target/ppc/mmu_common.c: Remove pte_update_flags() BALATON Zoltan
2024-05-11  1:46 ` [PATCH v6 30/48] target/ppc: Remove id_tlbs flag from CPU env BALATON Zoltan
2024-05-11  1:46 ` [PATCH v6 31/48] target/ppc: Split off common embedded TLB init BALATON Zoltan
2024-05-11  1:46 ` [PATCH v6 32/48] target/ppc/mmu-hash32.c: Drop a local variable BALATON Zoltan
2024-05-11  1:46 ` [PATCH v6 33/48] target/ppc/mmu-radix64.c: " BALATON Zoltan
2024-05-11  1:46 ` [PATCH v6 34/48] target/ppc: Add a function to check for page protection bit BALATON Zoltan
2024-05-11  1:46 ` [PATCH v6 35/48] target/ppc: Move out BookE and related MMU functions from mmu_common.c BALATON Zoltan
2024-05-11  1:46 ` [PATCH v6 36/48] target/ppc/mmu_common.c: Remove local name for a constant BALATON Zoltan
2024-05-11  1:46 ` [PATCH v6 37/48] target/ppc/mmu_common.c: Remove single use local variable BALATON Zoltan
2024-05-11  1:46 ` [PATCH v6 38/48] " BALATON Zoltan
2024-05-11  1:46 ` [PATCH v6 39/48] target/ppc/mmu_common.c: Remove another single use local BALATON Zoltan
2024-05-11  1:46 ` [PATCH v6 40/48] target/ppc/mmu_common.c: Remove yet " BALATON Zoltan
2024-05-11  1:46 ` [PATCH v6 41/48] target/ppc/mmu_common.c: Return directly in ppc6xx_tlb_pte_check() BALATON Zoltan
2024-05-11  1:46 ` [PATCH v6 42/48] target/ppc/mmu_common.c: Simplify ppc6xx_tlb_pte_check() BALATON Zoltan
2024-05-11  1:46 ` [PATCH v6 43/48] target/ppc/mmu_common.c: Remove unused field from mmu_ctx_t BALATON Zoltan
2024-05-11  1:46 ` [PATCH v6 44/48] target/ppc/mmu_common.c: Remove hash " BALATON Zoltan
2024-05-11  1:46 ` [PATCH v6 45/48] target/ppc/mmu_common.c: Remove nx " BALATON Zoltan
2024-05-11  1:46 ` [PATCH v6 46/48] target/ppc/mmu_common.c: Convert local variable to bool BALATON Zoltan
2024-05-11  1:46 ` [PATCH v6 47/48] target/ppc/mmu_common.c: Remove single use local variable BALATON Zoltan
2024-05-11  1:46 ` [PATCH v6 48/48] target/ppc/mmu_common.c: Simplify a switch statement BALATON Zoltan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cover.1715390232.git.balaton@eik.bme.hu \
    --to=balaton@eik.bme.hu \
    --cc=danielhb413@gmail.com \
    --cc=npiggin@gmail.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).