Message ID | cover.1714606359.git.balaton@eik.bme.hu (mailing list archive) |
---|---|
Headers | show |
Series | Misc PPC exception and BookE MMU clean ups | expand |
On Thu May 2, 2024 at 9:43 AM AEST, 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 first 3 patches are > from the last exception handling clean up series that were dropped due > to some error on CI but I'm not sure if that was because of some CI > infrastructure problem or some problem with the patches as the error > did not make much sense. So these patches are only rebased now, I made > no other change to them until the issue is understood better. The rest > are new patches I've added since tha last series. Please review. Not CI infrastructure as far as I could tell it's upstream gitlab. But I could not figure out how to reproduce at the time... I ended up running out of time to look too closely though. I think I won't take the first 2, yes arguably the CPU does execute the sc instruction, but it's actually a good rule for the exception handler to be invoked with the nip that caused the exception, and SRR0/1 to be set by the handler according to semantics. Thanks, Nick > > 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 (28): > target/ppc: Fix gen_sc to use correct nip > target/ppc: Move patching nip from exception handler to helper_scv > target/ppc: Simplify syscall exception handlers > target/ppc: Remove unused helper > target/ppc/mmu_common.c: Move calculation of a value closer to its > usage > 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: Rename get_bat_6xx_tlb() > 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: Simplify mmubooke_get_physical_address() > target/ppc/mmu_common.c: Simplify mmubooke206_get_physical_address() > 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: Make get_physical_address_wtlb() static > target/ppc: Move mmu_ctx_t definition to mmu_common.c > target/ppc: Remove ppc_hash32_pp_prot() and reuse common function > target/ppc/mmu_common.c: Split off BookE handling from > ppc_jumbo_xlate() > target/ppc/mmu_common.c: Remove BookE handling from > get_physical_address_wtlb() > target/ppc/mmu_common.c: Simplify ppc_booke_xlate() > target/ppc/mmu_common.c: Move BookE MMU functions together > target/ppc: Remove id_tlbs flag from CPU env > target/ppc: Split off common 4xx TLB init > > hw/ppc/pegasos2.c | 2 +- > target/ppc/cpu.h | 1 - > target/ppc/cpu_init.c | 65 ++-- > target/ppc/excp_helper.c | 67 +--- > target/ppc/helper.h | 2 - > target/ppc/helper_regs.c | 1 - > target/ppc/internal.h | 19 +- > target/ppc/mmu-hash32.c | 47 +-- > target/ppc/mmu_common.c | 792 +++++++++++++++++++-------------------- > target/ppc/mmu_helper.c | 36 +- > target/ppc/translate.c | 21 +- > 11 files changed, 438 insertions(+), 615 deletions(-)
On Tue, 7 May 2024, Nicholas Piggin wrote: > On Thu May 2, 2024 at 9:43 AM AEST, 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 first 3 patches are >> from the last exception handling clean up series that were dropped due >> to some error on CI but I'm not sure if that was because of some CI >> infrastructure problem or some problem with the patches as the error >> did not make much sense. So these patches are only rebased now, I made >> no other change to them until the issue is understood better. The rest >> are new patches I've added since tha last series. Please review. > > Not CI infrastructure as far as I could tell it's upstream gitlab. > But I could not figure out how to reproduce at the time... I ended > up running out of time to look too closely though. I could reproduce it at the end so it wasn't CI failure but I don't completely understand what is it. > I think I won't take the first 2, yes arguably the CPU does execute > the sc instruction, but it's actually a good rule for the exception > handler to be invoked with the nip that caused the exception, and > SRR0/1 to be set by the handler according to semantics. >> >> v2: >> - Fix user mode issue in patch 1 by keeping old behaviour for user mode I forgot to change the blurb above but in this v2 version I think I've solved that problem as noted here but I don't know why the user mode SC is different and could not find where is it handled. This version seems to work though. Regards, BALATON Zoltan