From nobody Mon May 20 02:35:13 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1575416722; cv=none; d=zohomail.com; s=zohoarc; b=U7Y2eGOYuJXQ3uyq4rJ4hFRXI2sR9hPFLKfNncDXXtAMtOjjfNMqJJpLXE/+a4wJG4a7UsD4wHNQkaZ/KS0X22X5aKjm+xJaYFHAADyHaqoIHLFPpZ3qC2RoNXKLkF+4c49zzjxtJwAOOgpJs7C/ovMFSllEw6Ri6LWaofccJAo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1575416722; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=/dG0vms7SBwlzTpS1M8Jc87zaIsx5MqGFuBibUfxWTI=; b=dm24pQz305PrOO07p5blb+3fPQQTPwwqHY8uSyDu41wcgyOGY1njRYux2cTeiQHjqeSUOjvbJuLUkkufp/dnfOPwFVxceRobh36XNLOsHLEvu2/Wq3j3auZK3VNgosOmbRF6CHKL9BYUJzcnLQCm137NbDGBhaT3zdBn2M2JPa0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 15754167222181005.556752581924; Tue, 3 Dec 2019 15:45:22 -0800 (PST) Received: from localhost ([::1]:60580 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1icHr6-0005WO-3k for importer@patchew.org; Tue, 03 Dec 2019 18:45:20 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:38738) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1icHol-00048l-I6 for qemu-devel@nongnu.org; Tue, 03 Dec 2019 18:42:57 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1icHoh-0006U2-KF for qemu-devel@nongnu.org; Tue, 03 Dec 2019 18:42:53 -0500 Received: from mail-pg1-x541.google.com ([2607:f8b0:4864:20::541]:38792) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1icHof-0006Rm-S6 for qemu-devel@nongnu.org; Tue, 03 Dec 2019 18:42:51 -0500 Received: by mail-pg1-x541.google.com with SMTP id t3so2383166pgl.5 for ; Tue, 03 Dec 2019 15:42:49 -0800 (PST) Received: from localhost.localdomain (97-113-7-119.tukw.qwest.net. [97.113.7.119]) by smtp.gmail.com with ESMTPSA id k5sm4128256pju.14.2019.12.03.15.42.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Dec 2019 15:42:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=/dG0vms7SBwlzTpS1M8Jc87zaIsx5MqGFuBibUfxWTI=; b=EwwIjJ/oQT7jo5Ss3LX74mBDgAu2q4DysQI3E4xOCJan5lGbN2Fd+Vcc79UCC6//O2 k6ZLwSK3rDnIUssYKzifUaGPafsC9m+ZhZzfdd2+6DgD5dTwB/uPFHNAV3Sb/P2VRKtk g/g6+5u4kum5h/BF2de/Z5fdi5aYd72bav6kyZXD5DpYUPNiSxowsSgKW1SGqQ4hPxVw AegURwrDSgzWt3bbELQqY+hDTtTCYj0KNOiZk0Bg6Pic2dAdoaRg1lQGWEQKQ3hmBfFz /10AZdAlVqUgeRp9O+aZwl5nqpR0Va1LwzYG+xZCitolkQ4Ui5XI43uewcfD5xgjfw8n ZY+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=/dG0vms7SBwlzTpS1M8Jc87zaIsx5MqGFuBibUfxWTI=; b=eLeTQ+mHVaP+o4RWRTB5nGRzAZxTgvWrt8nPcEnuvhhW84ZvOzrjjwjKQtWTWDDjfy oAfDdKRA3QL5OXvaubVBN9e0cGChpBm7iESPh9tAnS47TEQN9D6jp8GLTA1UloZHnQU2 rhw2zVmHahVJ2cafQ0/MYZstgVzvqjGTNZRU+5OWGr62gr6wYHiI3nqrC8BLQ59Qh9b1 alrPx+raFixeq5iMV1b3FZSV11BOsYj+zGMbTQ1YFkhrpkwmgGFCNoOYQBJDwPx4lhSd O/g4NvZijl0/NJsyQXbeXWfQ4vJwnfF5FWC4tySHa5KCsY1lFu1Fzurm6er3CBcuEqKr YmBg== X-Gm-Message-State: APjAAAUJNfkJkOV7QoHO8UD5+va4xCq+HyNvNyYZZmF76s3fukkyiPRE pBIiTOl3tYM40ajAq6uluMQWpBkbJCI= X-Google-Smtp-Source: APXvYqyAIWoESinunuq9ntkMExsoYYGL6m3FKTgxKGcDyjDaXeGZEVLhFdcZGJg9fZgXaEvhwGNnGQ== X-Received: by 2002:a63:4e0e:: with SMTP id c14mr271849pgb.237.1575416567822; Tue, 03 Dec 2019 15:42:47 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH 1/4] target/arm: Add ID_AA64MMFR2_EL1 Date: Tue, 3 Dec 2019 15:42:41 -0800 Message-Id: <20191203234244.9124-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191203234244.9124-1-richard.henderson@linaro.org> References: <20191203234244.9124-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::541 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: peter.maydell@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Add definitions for all of the fields, up to ARMv8.5. Convert the existing RESERVED register to a full register. Query KVM for the value of the register for the host. Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/cpu.h | 17 +++++++++++++++++ target/arm/helper.c | 4 ++-- target/arm/kvm64.c | 2 ++ 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/target/arm/cpu.h b/target/arm/cpu.h index d403dc5947..cdf6caf869 100644 --- a/target/arm/cpu.h +++ b/target/arm/cpu.h @@ -864,6 +864,7 @@ struct ARMCPU { uint64_t id_aa64pfr1; uint64_t id_aa64mmfr0; uint64_t id_aa64mmfr1; + uint64_t id_aa64mmfr2; } isar; uint32_t midr; uint32_t revidr; @@ -1778,6 +1779,22 @@ FIELD(ID_AA64MMFR1, PAN, 20, 4) FIELD(ID_AA64MMFR1, SPECSEI, 24, 4) FIELD(ID_AA64MMFR1, XNX, 28, 4) =20 +FIELD(ID_AA64MMFR2, CNP, 0, 4) +FIELD(ID_AA64MMFR2, UAO, 4, 4) +FIELD(ID_AA64MMFR2, LSM, 8, 4) +FIELD(ID_AA64MMFR2, IESB, 12, 4) +FIELD(ID_AA64MMFR2, VARANGE, 16, 4) +FIELD(ID_AA64MMFR2, CCIDX, 20, 4) +FIELD(ID_AA64MMFR2, NV, 24, 4) +FIELD(ID_AA64MMFR2, ST, 28, 4) +FIELD(ID_AA64MMFR2, AT, 32, 4) +FIELD(ID_AA64MMFR2, IDS, 36, 4) +FIELD(ID_AA64MMFR2, FWB, 40, 4) +FIELD(ID_AA64MMFR2, TTL, 48, 4) +FIELD(ID_AA64MMFR2, BBM, 52, 4) +FIELD(ID_AA64MMFR2, EVT, 56, 4) +FIELD(ID_AA64MMFR2, E0PD, 60, 4) + FIELD(ID_DFR0, COPDBG, 0, 4) FIELD(ID_DFR0, COPSDBG, 4, 4) FIELD(ID_DFR0, MMAPDBG, 8, 4) diff --git a/target/arm/helper.c b/target/arm/helper.c index f1eab4fb28..70f2db5447 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -6825,11 +6825,11 @@ void register_cp_regs_for_features(ARMCPU *cpu) .access =3D PL1_R, .type =3D ARM_CP_CONST, .accessfn =3D access_aa64_tid3, .resetvalue =3D cpu->isar.id_aa64mmfr1 }, - { .name =3D "ID_AA64MMFR2_EL1_RESERVED", .state =3D ARM_CP_STA= TE_AA64, + { .name =3D "ID_AA64MMFR2_EL1", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 3, .opc1 =3D 0, .crn =3D 0, .crm =3D 7, .opc2 =3D = 2, .access =3D PL1_R, .type =3D ARM_CP_CONST, .accessfn =3D access_aa64_tid3, - .resetvalue =3D 0 }, + .resetvalue =3D cpu->isar.id_aa64mmfr2 }, { .name =3D "ID_AA64MMFR3_EL1_RESERVED", .state =3D ARM_CP_STA= TE_AA64, .opc0 =3D 3, .opc1 =3D 0, .crn =3D 0, .crm =3D 7, .opc2 =3D = 3, .access =3D PL1_R, .type =3D ARM_CP_CONST, diff --git a/target/arm/kvm64.c b/target/arm/kvm64.c index 876184b8fe..482e7fdfbb 100644 --- a/target/arm/kvm64.c +++ b/target/arm/kvm64.c @@ -549,6 +549,8 @@ bool kvm_arm_get_host_cpu_features(ARMHostCPUFeatures *= ahcf) ARM64_SYS_REG(3, 0, 0, 7, 0)); err |=3D read_sys_reg64(fdarray[2], &ahcf->isar.id_aa64mmfr1, ARM64_SYS_REG(3, 0, 0, 7, 1)); + err |=3D read_sys_reg64(fdarray[2], &ahcf->isar.id_aa64mmfr2, + ARM64_SYS_REG(3, 0, 0, 7, 2)); =20 /* * Note that if AArch32 support is not present in the host, --=20 2.17.1 From nobody Mon May 20 02:35:13 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1575417347; cv=none; d=zohomail.com; s=zohoarc; b=kUB5XZpXhGKtEbA/6w7Wtzm3oUKSCWGA/OzEC0TXIUln3PdwKsHAB6ppK5L2nnQXDfab2sLh6KiwzgAUe8sRh08u/qX6ZjF+GBNP5CApcRvCF6ZXpVOIRjHaHybIWEE/fBrq9kfq9YwXOyAxEiZ7LA9nFuhxGnQn5y3y4wNdtNc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1575417347; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=7MVIDNVevAOck6qQcN8WApev5jEl5Rubg+oXUTbOUTk=; b=mHpmKtvhl+3uwZaDWTVpiRLZY38yLD5oiIxOdwntDUJ0bKeqwMx32Dp5siXoFHLKvdbAZE9NQNNhLkaCp0Rehp58hjiclFBuPCzmI8wwTwQbhRC8KkJ9YmOOrTKiJKiF20GEd/horbJR4R+Tp21/qucE0N6wTdVxvKhEhV2QdGQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1575417347570833.0359165217768; Tue, 3 Dec 2019 15:55:47 -0800 (PST) Received: from localhost ([::1]:60678 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1icI1C-0002ay-Cl for importer@patchew.org; Tue, 03 Dec 2019 18:55:46 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:38763) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1icHor-000498-RR for qemu-devel@nongnu.org; Tue, 03 Dec 2019 18:43:04 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1icHoh-0006Uh-N6 for qemu-devel@nongnu.org; Tue, 03 Dec 2019 18:42:53 -0500 Received: from mail-pg1-x52b.google.com ([2607:f8b0:4864:20::52b]:36311) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1icHoh-0006TE-Fg for qemu-devel@nongnu.org; Tue, 03 Dec 2019 18:42:51 -0500 Received: by mail-pg1-x52b.google.com with SMTP id k13so2384127pgh.3 for ; Tue, 03 Dec 2019 15:42:50 -0800 (PST) Received: from localhost.localdomain (97-113-7-119.tukw.qwest.net. [97.113.7.119]) by smtp.gmail.com with ESMTPSA id k5sm4128256pju.14.2019.12.03.15.42.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Dec 2019 15:42:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=7MVIDNVevAOck6qQcN8WApev5jEl5Rubg+oXUTbOUTk=; b=P4ZZiAfxWWEoKunNKcpxLUHv0QjWTix7hf2Dg/+dcPeXA6SF/5rf+m0QydnvoMsnFX 4ReacV1B0OEsRbeL6+BuF/3qnf0sBZc64mnS5heOC1+PS1DZNZNEClxQoy4FLARKsFc8 Lrfvt7zdJoVfYUIdU908FDHCYtnusIfPccedqZjwcpUCykPvlcaDSB9l2hmL+t0QX8cP gwC0Qejgfk4T8MHQnTYOOrybFGdQPdM15s8KN5T14DCjG7FAZCCKreavbdmq1qV9imZ8 Usled3xEcqJDkKipJwq+6Iv9LeY1WqgxoMiaqXgFi/4iNCRpMdzPAl03LXssBwm8hpeJ KIWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=7MVIDNVevAOck6qQcN8WApev5jEl5Rubg+oXUTbOUTk=; b=jFk3XYgAO0/93R+hUIIIl/jw2Ej8pmye77dGGmZnwWNUkkxRD6pM4PGtOtl6ZB0BBQ dym+WlXmGIBmXi+b8sOYhbruiBDbwtz7+3wydAhY0tHbHgtmlD23Nveg3LEopNs6630T Houf8cHBPYBtC57dOZA6R2mVy5lXIS7Rv8xDQ/FhxDvIFZvivRTaIs5tWOBwYiYv+V4z +J6WhV7hYi4Lgz7NTqCu5z290EL3VDPnrZ2NsWlbHmNTB+32KKfXK8oDxchiER33SZ8o nqve1TlJoiYAT+Gfd1yw1u4eFvhk+Pcsj4ZZA+mbaSlupqnP8gTx9H5OAuhjioBH8gvA y6eQ== X-Gm-Message-State: APjAAAVF1tUfQ7VXsNKmYxLs9Bgl+nv11DP4ZuA+Lmt6xbAaFVpYOxqN Itvugbd3pLvMop0KozDsM5qtlz8rTUg= X-Google-Smtp-Source: APXvYqyOGOFecK+Ka1VpfQ6KH0eJmPGIycLSY2aLs5WUEv/PBczINSC2uG3FBqMoRHTgxpaVlmASdg== X-Received: by 2002:a63:d153:: with SMTP id c19mr319473pgj.78.1575416569080; Tue, 03 Dec 2019 15:42:49 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH 2/4] target/arm: Update MSR access to UAO Date: Tue, 3 Dec 2019 15:42:42 -0800 Message-Id: <20191203234244.9124-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191203234244.9124-1-richard.henderson@linaro.org> References: <20191203234244.9124-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::52b 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: peter.maydell@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/cpu.h | 6 ++++++ target/arm/helper.c | 21 +++++++++++++++++++++ target/arm/translate-a64.c | 14 ++++++++++++++ 3 files changed, 41 insertions(+) diff --git a/target/arm/cpu.h b/target/arm/cpu.h index cdf6caf869..dd284ba5c7 100644 --- a/target/arm/cpu.h +++ b/target/arm/cpu.h @@ -1228,6 +1228,7 @@ void pmu_init(ARMCPU *cpu); #define PSTATE_IL (1U << 20) #define PSTATE_SS (1U << 21) #define PSTATE_PAN (1U << 22) +#define PSTATE_UAO (1U << 23) #define PSTATE_V (1U << 28) #define PSTATE_C (1U << 29) #define PSTATE_Z (1U << 30) @@ -3598,6 +3599,11 @@ static inline bool isar_feature_aa64_ats1e1(const AR= MISARegisters *id) return FIELD_EX64(id->id_aa64mmfr1, ID_AA64MMFR1, PAN) >=3D 2; } =20 +static inline bool isar_feature_aa64_uao(const ARMISARegisters *id) +{ + return FIELD_EX64(id->id_aa64mmfr2, ID_AA64MMFR2, UAO) !=3D 0; +} + static inline bool isar_feature_aa64_bti(const ARMISARegisters *id) { return FIELD_EX64(id->id_aa64pfr1, ID_AA64PFR1, BT) !=3D 0; diff --git a/target/arm/helper.c b/target/arm/helper.c index 70f2db5447..8941a6c10f 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -4131,6 +4131,17 @@ static void aa64_pan_write(CPUARMState *env, const A= RMCPRegInfo *ri, env->pstate =3D (env->pstate & ~PSTATE_PAN) | (value & PSTATE_PAN); } =20 +static uint64_t aa64_uao_read(CPUARMState *env, const ARMCPRegInfo *ri) +{ + return env->pstate & PSTATE_UAO; +} + +static void aa64_uao_write(CPUARMState *env, const ARMCPRegInfo *ri, + uint64_t value) +{ + env->pstate =3D (env->pstate & ~PSTATE_UAO) | (value & PSTATE_UAO); +} + static CPAccessResult aa64_cacheop_access(CPUARMState *env, const ARMCPRegInfo *ri, bool isread) @@ -7464,6 +7475,16 @@ void register_cp_regs_for_features(ARMCPU *cpu) define_arm_cp_regs(cpu, ats1cp_reginfo); } #endif + if (cpu_isar_feature(aa64_uao, cpu)) { + static const ARMCPRegInfo uao_reginfo[] =3D { + { .name =3D "UAO", .state =3D ARM_CP_STATE_AA64, + .opc0 =3D 3, .opc1 =3D 0, .crn =3D 4, .crm =3D 2, .opc2 =3D = 4, + .type =3D ARM_CP_NO_RAW, .access =3D PL1_RW, + .readfn =3D aa64_uao_read, .writefn =3D aa64_uao_write, }, + REGINFO_SENTINEL + }; + define_arm_cp_regs(cpu, uao_reginfo); + } =20 if (arm_feature(env, ARM_FEATURE_EL2) && cpu_isar_feature(aa64_vh, cpu= )) { static const ARMCPRegInfo vhe_reginfo[] =3D { diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c index 7f5a68106b..2b6846ef01 100644 --- a/target/arm/translate-a64.c +++ b/target/arm/translate-a64.c @@ -1601,6 +1601,20 @@ static void handle_msr_i(DisasContext *s, uint32_t i= nsn, s->base.is_jmp =3D DISAS_NEXT; break; =20 + case 0x03: /* UAO */ + if (!dc_isar_feature(aa64_uao, s) || s->current_el =3D=3D 0) { + goto do_unallocated; + } + if (crm & 1) { + set_pstate_bits(PSTATE_UAO); + } else { + clear_pstate_bits(PSTATE_UAO); + } + t1 =3D tcg_const_i32(s->current_el); + gen_helper_rebuild_hflags_a64(cpu_env, t1); + tcg_temp_free_i32(t1); + break; + case 0x04: /* PAN */ if (!dc_isar_feature(aa64_pan, s) || s->current_el =3D=3D 0) { goto do_unallocated; --=20 2.17.1 From nobody Mon May 20 02:35:13 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1575416753; cv=none; d=zohomail.com; s=zohoarc; b=CX1KyCkRlcv4/6fyeK1jzgml5GLEIS9oo71jMkHpk+JAWFGy9vYuZ8AxNgr3lER25HWDW+MNadtna0Two0DXji/312YMhglHvytZ4NF12XKPSoN2e4Lxrbwp/PzgSqHPLXRcEGOYEiEMrU+S2s/oyDKiZMTvhcoUQxfil4TCn6c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1575416753; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=lxpFC0QAcEEE37xlJz3y9LIaFzl9qGfUGofGgmNc6Hw=; b=iNrMrABuERqTO7ajgHuVp4tASFCOe0zId5904xrguraVcwdHuLjO14yU3JwNI4m8aAdkcJujkltv295LdSnyq10AhiMBKnntafJa2b66SuuJuSf5dDUl041Rf3mpUrFVPvXs7x33rW+TDJOE57SZG0k0PKvplg6aYhX5J5XmayE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1575416753735677.3516235487649; Tue, 3 Dec 2019 15:45:53 -0800 (PST) Received: from localhost ([::1]:60584 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1icHrb-0005oo-Gw for importer@patchew.org; Tue, 03 Dec 2019 18:45:51 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:38741) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1icHoj-00048p-Sx for qemu-devel@nongnu.org; Tue, 03 Dec 2019 18:42:55 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1icHoi-0006WM-4h for qemu-devel@nongnu.org; Tue, 03 Dec 2019 18:42:53 -0500 Received: from mail-pf1-x442.google.com ([2607:f8b0:4864:20::442]:45916) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1icHoh-0006TX-T0 for qemu-devel@nongnu.org; Tue, 03 Dec 2019 18:42:52 -0500 Received: by mail-pf1-x442.google.com with SMTP id 2so2612097pfg.12 for ; Tue, 03 Dec 2019 15:42:51 -0800 (PST) Received: from localhost.localdomain (97-113-7-119.tukw.qwest.net. [97.113.7.119]) by smtp.gmail.com with ESMTPSA id k5sm4128256pju.14.2019.12.03.15.42.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Dec 2019 15:42:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=lxpFC0QAcEEE37xlJz3y9LIaFzl9qGfUGofGgmNc6Hw=; b=o3tuX1HUoAvDNtmt+1KGIV75e1nXDZ5lRpQcyRQTnZA9WxuCk3jfTLG/KkmWuY5ddu OBn+p/iEQxamAbCiPJAaUy0F+ddfsz4F35QiJZMG9vr7hUc7u4kcBIXhgESFLRpE+ssB kye2A5nKd6ppqaEuHaCC3HzatD6VlWsaazR9f0uAxzXb031ytjhAvUkh3XVGlXfbUlAh bSxc9u78/8LawgVqIyYYIaTc/C/KG3zbBOvu0PUukS5Nknr3C098+BaXwhkxpy8nBYSS QCJUpbQfaOMoq0nQy73LxZID9BTf+YnWiAhbmB44QtPzgVSMsasLNoKaQzDukV2kIo73 D6qg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=lxpFC0QAcEEE37xlJz3y9LIaFzl9qGfUGofGgmNc6Hw=; b=KOOgP/f5sERz/tms30Bpvtl8mixslfiogvGfNo5VPJ+JEM2N8QgpYNVxSWIUBEok2k gpZP45KeiuJ3gddQz6yKvv3mZvUxnjg08y3QoXzkI5XHS0wZLXiQ2GDiKXv7ka88gInN +8X0IMEIzmzOqGmML+1yvEJabM/HdjjqNn54vyH29EwpJUZDKESf28qmaJW2f3wM8RR0 QljQ9RC/zGtDTwVsxmq+rDFq9RkzgcoUXnsuxx5/ydx5mcymIXCulqYukmiP7LxWUwEh fUjhZRgMqlIXcktRviVAZcigqS7IP0b2Vy8TEZrXDb48X21HbCg+WdJZcnyHRF2MwDmv kagg== X-Gm-Message-State: APjAAAWDJpcLKaoEi2RvXYVeiThUY8vvF9FbHdwBl3k6Dx3xWWWrBkaR xgW0GIntrEcOigYrDQutsnVktl7hdl0= X-Google-Smtp-Source: APXvYqz8hHVuaHQtXRpMFjoe6qZcEahrgBSIlEUSZDtM/nlNUNcSmN6ToYgaRqZsXJq12XnttFZr/A== X-Received: by 2002:a65:6916:: with SMTP id s22mr302392pgq.244.1575416570450; Tue, 03 Dec 2019 15:42:50 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH 3/4] target/arm: Implement UAO semantics Date: Tue, 3 Dec 2019 15:42:43 -0800 Message-Id: <20191203234244.9124-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191203234244.9124-1-richard.henderson@linaro.org> References: <20191203234244.9124-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::442 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: peter.maydell@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" We need only override the current condition under which TBFLAG_A64.UNPRIV is set. Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/helper.c | 41 +++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/target/arm/helper.c b/target/arm/helper.c index 8941a6c10f..6d7a8349b5 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -12050,28 +12050,29 @@ static uint32_t rebuild_hflags_a64(CPUARMState *e= nv, int el, int fp_el, } =20 /* Compute the condition for using AccType_UNPRIV for LDTR et al. */ - /* TODO: ARMv8.2-UAO */ - switch (mmu_idx) { - case ARMMMUIdx_EL10_1: - case ARMMMUIdx_EL10_1_PAN: - case ARMMMUIdx_SE1: - case ARMMMUIdx_SE1_PAN: - /* TODO: ARMv8.3-NV */ - flags =3D FIELD_DP32(flags, TBFLAG_A64, UNPRIV, 1); - break; - case ARMMMUIdx_EL20_2: - case ARMMMUIdx_EL20_2_PAN: - /* TODO: ARMv8.4-SecEL2 */ - /* - * Note that EL20_2 is gated by HCR_EL2.E2H =3D=3D 1, but EL20_0 is - * gated by HCR_EL2. =3D=3D '11', and so is LDTR. - */ - if (env->cp15.hcr_el2 & HCR_TGE) { + if (!(env->pstate & PSTATE_UAO)) { + switch (mmu_idx) { + case ARMMMUIdx_EL10_1: + case ARMMMUIdx_EL10_1_PAN: + case ARMMMUIdx_SE1: + case ARMMMUIdx_SE1_PAN: + /* TODO: ARMv8.3-NV */ flags =3D FIELD_DP32(flags, TBFLAG_A64, UNPRIV, 1); + break; + case ARMMMUIdx_EL20_2: + case ARMMMUIdx_EL20_2_PAN: + /* TODO: ARMv8.4-SecEL2 */ + /* + * Note that EL20_2 is gated by HCR_EL2.E2H =3D=3D 1, but EL20= _0 is + * gated by HCR_EL2. =3D=3D '11', and so is LDTR. + */ + if (env->cp15.hcr_el2 & HCR_TGE) { + flags =3D FIELD_DP32(flags, TBFLAG_A64, UNPRIV, 1); + } + break; + default: + break; } - break; - default: - break; } =20 return rebuild_hflags_common(env, fp_el, mmu_idx, flags); --=20 2.17.1 From nobody Mon May 20 02:35:13 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1575417052; cv=none; d=zohomail.com; s=zohoarc; b=G9pxe2uPsQDPPMkdMUFp3IDMLi5Z7cmn08VBrdQBbktHf3rwVTkeS+Cv3Y9BKKpIzbv8AlOtF/vdd1gxVuIh/Xhl82Fryl7mUpZTRAFs5BHz6ekGgR+1ZZ8R3uMwYsiE4ENcOmFytr3KlBGSvRPw2kaeH062R/8vsYhAkZUIgJY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1575417052; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=LDEaaXMkISHBRBQq2wWOEn0yi/1F+Nwrnq77hCMsb2U=; b=YYPg0G/JKkwP1BAJ2U28TRlQ6IoC0372hk9TC1On1j5gGdf74oSBf/0rXhfwNhxkEmSlRZ6nr/QqDvHF/hpndIy7luEWzX+LPAIx6yM3gx+/XXqxcv4WAKQ3aPbsrVkyNEsmkOXPRqQA4fbLHJAtlicmFTuNzRFFubk2gcvwLdw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1575417052103542.8516961363791; Tue, 3 Dec 2019 15:50:52 -0800 (PST) Received: from localhost ([::1]:60640 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1icHwQ-0000F9-Mk for importer@patchew.org; Tue, 03 Dec 2019 18:50:50 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:39025) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1icHom-0004Bc-H0 for qemu-devel@nongnu.org; Tue, 03 Dec 2019 18:42:58 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1icHol-0006hE-BF for qemu-devel@nongnu.org; Tue, 03 Dec 2019 18:42:56 -0500 Received: from mail-pf1-x442.google.com ([2607:f8b0:4864:20::442]:38737) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1icHol-0006XW-2r for qemu-devel@nongnu.org; Tue, 03 Dec 2019 18:42:55 -0500 Received: by mail-pf1-x442.google.com with SMTP id x185so2633650pfc.5 for ; Tue, 03 Dec 2019 15:42:52 -0800 (PST) Received: from localhost.localdomain (97-113-7-119.tukw.qwest.net. [97.113.7.119]) by smtp.gmail.com with ESMTPSA id k5sm4128256pju.14.2019.12.03.15.42.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Dec 2019 15:42:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=LDEaaXMkISHBRBQq2wWOEn0yi/1F+Nwrnq77hCMsb2U=; b=bT2K3/kCLVPgrnXrJUuITCBoXoouDNXGn+ITjOme4r9eyi0eeGLWofgQYgUwyx4hLs 8a/4J5RPHckXgp2rdhfxmXy81j/QJjyMR6RxeC/9Di1Wuogp+SbmCCSsAtmayhqS14V1 VZDS3nftwm+7N4f2wUuC8+4F2vtJJX8r3LPeSZM+XsAsOsZPmzdyBJtD0LuHIlCAQ/Hf i7j6UAVrrt8J8IMkHChDqc29pd2QlQHwksR8Riowb5jLAHEyttpki+v5SyYlCCp9tUib gxzb4YsGhq/gI2SXkOYe4FLtI4Lluxvzg/8sVf+itPrHUzzCuiAIiPQa9zXkdyoxG+Og Scjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=LDEaaXMkISHBRBQq2wWOEn0yi/1F+Nwrnq77hCMsb2U=; b=PSq5aqkVJsebGrAb0P50IRcORr6zW+dbd7Zxbp8iW7IRva7xq40+hhFaH9PegTIcVr LMw51Xeuwm9MiZfUoqKalQPurbZH3TFSUXR0FBYyn4N8FQNeW8PtHX8kb6sxZ+Wm9nOh HDiFdOIUBYY4lXkacWGcLAgWqQ2vSZ1yZuD1sjeUIku5P/oh8nnsGywdPZlE6RKMJFH9 t+Mii95NgbYCqeKq7d3i93aP6gmSwSPp/So5m5SZQvc0m9Quz45NTPn9jOQWm5f57/qb ZyvwOEqhnSzhANdvdrkBxG5PS98N0A6p+5TA4rDH2LJikhqsA1UuU4j7vco6xjholsVl olLQ== X-Gm-Message-State: APjAAAVpNzH7dazM8IVUQwC+G4aeAK3pWVIkuSLdAGfVXnIWIANdAXkd K9xOaaQiQOqiDSAJ7qI3pyG9ejk1Jfc= X-Google-Smtp-Source: APXvYqwVJHifGdBZ2XKr61kQnrDwZUvQAdC5IsUGSe4q2WNvsK4vZ5I7zag1G3hmG+/PJwBawNimHw== X-Received: by 2002:a62:ed02:: with SMTP id u2mr510848pfh.240.1575416571689; Tue, 03 Dec 2019 15:42:51 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH 4/4] target/arm: Enable ARMv8.2-UAO in -cpu max Date: Tue, 3 Dec 2019 15:42:44 -0800 Message-Id: <20191203234244.9124-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191203234244.9124-1-richard.henderson@linaro.org> References: <20191203234244.9124-1-richard.henderson@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::442 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: peter.maydell@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/cpu64.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/target/arm/cpu64.c b/target/arm/cpu64.c index 9399253b4c..03377084e3 100644 --- a/target/arm/cpu64.c +++ b/target/arm/cpu64.c @@ -674,6 +674,10 @@ static void aarch64_max_initfn(Object *obj) t =3D FIELD_DP64(t, ID_AA64MMFR1, PAN, 2); /* ATS1E1 */ cpu->isar.id_aa64mmfr1 =3D t; =20 + t =3D cpu->isar.id_aa64mmfr2; + t =3D FIELD_DP64(t, ID_AA64MMFR2, UAO, 1); + cpu->isar.id_aa64mmfr2 =3D t; + /* Replicate the same data to the 32-bit id registers. */ u =3D cpu->isar.id_isar5; u =3D FIELD_DP32(u, ID_ISAR5, AES, 2); /* AES + PMULL */ --=20 2.17.1