From: Matheus Ferst <matheus.fe...@eldorado.org.br> While working on FreeBSD radix support, Leandro Lupori (CC'ed) noticed that the latest build still fails in KVM but works in TCG[1]. This difference occurs because the current implementation of "tlbiel" does not validate the instruction parameters and always check for supervisor privilege.
This patch series partially address this problem by requiring hypervisor privilege for radix mode when PSR=0. The validation of other parameters can be done when we move storage control instructions to decodetree. [1] To reproduce the issue, grab an ISO from [2] run qemu as qemu-system-ppc64 -cpu power9 -m 2G \ -machine pseries,cap-cfpc=broken,cap-sbbc=broken,cap-ibs=broken,cap-ccf-assist=off \ -boot d -vga none -nographic -cdrom FreeBSD-14.0-CURRENT-powerpc-*.iso or qemu-system-ppc64 -cpu power9 -m 2G -enable-kvm \ -machine pseries,cap-cfpc=broken,cap-sbbc=broken,cap-ibs=broken,cap-ccf-assist=off \ -boot d -vga none -nographic -cdrom FreeBSD-14.0-CURRENT-powerpc-*.iso Stop the boot at the prompt and use OK set radix_mmu=1 OK boot [2] https://download.freebsd.org/ftp/snapshots/powerpc/powerpc64/ISO-IMAGES/14.0/ Matheus Ferst (2): target/ppc: add LPCR[HR] to DisasContext and hflags target/ppc: Check privilege level based on PSR and LPCR[HR] in tlbie[l] target/ppc/cpu.h | 1 + target/ppc/helper_regs.c | 3 +++ target/ppc/translate.c | 23 ++++++++++++++++++----- 3 files changed, 22 insertions(+), 5 deletions(-) -- 2.25.1