From patchwork Thu Sep 9 20:34:37 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Matheus K. Ferst" X-Patchwork-Id: 12483865 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-11.7 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id F05D7C433F5 for ; Thu, 9 Sep 2021 20:37:57 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id A10D46115A for ; Thu, 9 Sep 2021 20:37:57 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org A10D46115A Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=eldorado.org.br Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=nongnu.org Received: from localhost ([::1]:57852 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mOQo0-0008Lx-Kg for qemu-devel@archiver.kernel.org; Thu, 09 Sep 2021 16:37:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47666) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mOQld-0004RC-KZ; Thu, 09 Sep 2021 16:35:29 -0400 Received: from [201.28.113.2] (port=9947 helo=outlook.eldorado.org.br) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mOQlZ-0005xi-MV; Thu, 09 Sep 2021 16:35:28 -0400 Received: from power9a ([10.10.71.235]) by outlook.eldorado.org.br with Microsoft SMTPSVC(8.5.9600.16384); Thu, 9 Sep 2021 17:35:15 -0300 Received: from eldorado.org.br (unknown [10.10.70.45]) by power9a (Postfix) with ESMTP id 54B3D80121D; Thu, 9 Sep 2021 17:35:15 -0300 (-03) From: matheus.ferst@eldorado.org.br To: qemu-devel@nongnu.org, qemu-ppc@nongnu.org Subject: [PATCH 0/2] Require hypervisor privilege for tlbie[l] when PSR=0 and HR=1. Date: Thu, 9 Sep 2021 17:34:37 -0300 Message-Id: <20210909203439.4114179-1-matheus.ferst@eldorado.org.br> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-OriginalArrivalTime: 09 Sep 2021 20:35:15.0711 (UTC) FILETIME=[324CC0F0:01D7A5BA] X-Host-Lookup-Failed: Reverse DNS lookup failed for 201.28.113.2 (failed) Received-SPF: pass client-ip=201.28.113.2; envelope-from=matheus.ferst@eldorado.org.br; helo=outlook.eldorado.org.br X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: leandro.lupori@eldorado.org.br, Matheus Ferst , richard.henderson@linaro.org, groug@kaod.org, david@gibson.dropbear.id.au Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Matheus Ferst 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(-)