[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 0/2] Require hypervisor privilege for tlbie[l] when PSR=0 and
From: |
matheus . ferst |
Subject: |
[PATCH v2 0/2] Require hypervisor privilege for tlbie[l] when PSR=0 and HR=1. |
Date: |
Fri, 17 Sep 2021 08:47:49 -0300 |
From: Matheus Ferst <matheus.ferst@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 | 28 +++++++++++++++++++++++-----
3 files changed, 27 insertions(+), 5 deletions(-)
--
2.25.1
- [PATCH v2 0/2] Require hypervisor privilege for tlbie[l] when PSR=0 and HR=1.,
matheus . ferst <=