From patchwork Tue Dec 5 16:47:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Brown X-Patchwork-Id: 174133 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:bcd1:0:b0:403:3b70:6f57 with SMTP id r17csp3564352vqy; Tue, 5 Dec 2023 08:55:09 -0800 (PST) X-Google-Smtp-Source: AGHT+IH65v7kU2gSB4VMb6XBq936385m1fDXcF/MNVFhQeLpAwchtEBsfYLXdBig4L/n9LomuCeF X-Received: by 2002:a17:90a:1901:b0:280:235:19d with SMTP id 1-20020a17090a190100b002800235019dmr1459669pjg.36.1701795308908; Tue, 05 Dec 2023 08:55:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701795308; cv=none; d=google.com; s=arc-20160816; b=kMpEpaEcjEtw9szr2VZi+bos+pdvJ3pMQsKb3eO1aTzT48YDIFEUbVgINMwEA4X10v LBRJuglJkBEuX2+JwgK+CAxBMM51ZgaHeBzn4ZMEKLlF5y3nnoEJmmkl/RqqV8qTth6B VdIYNd5/O9zUCZlpdCEj8/SmbIWJz92nzgunuZBWOi9BFchwEOcAaL7iSmXbNxtDWnSI 6J/Im4BSixpqGBYxd/x+Ixurx69lDc/1N4UlP9A4DlGfmrZ06D16VhH27Ae6Q/DtK4/4 dVD6NkQ/jcwpjwtcHrmNspxgDfdI8xOybWRQahiiI8OwMKjfmVevOX1gaPX+84GYUUkK NjEA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=3Svziqg0RNSZP0wAs8eXp6Xb7jGZ275bBfmZ+S3lLyU=; fh=YkHi0OKyzCxiOYBLKPiYIDkwR1WpYn/xs8G+kcuZCxc=; b=O8toT5UYG/72irsbMuhO86JDgM+Q2s86x5zSn8uSJpm1on513zBaBTUKVedZhbcHOR 1WE/ki71qpGd+D49B+HzprKEUkHHuRgXaSuhqxgpt+dvzPuPEsWvPAQ6gIvjIkqouzmO bzK4leTKmw1owlKcpSXJYg/eLhWlhJ1y3HGR7QmwcWZ++6qwXTP7Z6mUocpMkJV+DdFO RTAFNoXiayZSFKr89lEpDitjkfyeP/5WJLjpVj30qiW0EsW7lpCFfi9/4z7ZlME10RKr 7Ws/g4FlgIoHjNOA1oMywRLC077UuMe3q6/p3cVJGqRAiH6yWjkaCJfKOSmEzkAu96Ma QIUg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=ADI9sPog; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from fry.vger.email (fry.vger.email. [2620:137:e000::3:8]) by mx.google.com with ESMTPS id n89-20020a17090a5ae200b00286453388bcsi9293531pji.60.2023.12.05.08.55.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 08:55:08 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) client-ip=2620:137:e000::3:8; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=ADI9sPog; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by fry.vger.email (Postfix) with ESMTP id 105E98068C5D; Tue, 5 Dec 2023 08:51:41 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at fry.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345145AbjLEQvK (ORCPT + 99 others); Tue, 5 Dec 2023 11:51:10 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35902 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345115AbjLEQvI (ORCPT ); Tue, 5 Dec 2023 11:51:08 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EF7C29B for ; Tue, 5 Dec 2023 08:51:14 -0800 (PST) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 81F8BC433CA; Tue, 5 Dec 2023 16:51:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1701795074; bh=7RNGzDmYQmscIH9JLPqJXNwGek+pQVepVhKqfj7iORk=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=ADI9sPog+fjm9K3T+A9ZApXzEebNj3iy0cn9GF4b1skSpglBT9KEzLjlW5LpOuQnF gla0szlkjmrr6SGLwgk8JkczMUBy/Fmmp7vhp0JvX9MPIGiQ6qW8ybMx/bNb5CyeDm /IP2hoM9dQ8KYr3mg/ZboPBVrTH8viiMWhubBzmJMmXKByk20lI1qVzEykw9TdD/YL ofAeJpFPCIQoPn6MFbOM9LDto7J8Y+WMtIbgObXp+wbkavK4HKG0qM3vE8+550u2at f/czwxuvzEQFO8iRSl9nPG+WNIDml3Z6Aqswf0JOwlME2DhAyT8FtoE/ZL/X9M1GEF 4bsVPDYsaOyOA== From: Mark Brown Date: Tue, 05 Dec 2023 16:47:59 +0000 Subject: [PATCH v3 01/21] arm64/sysreg: Add definition for ID_AA64PFR2_EL1 MIME-Version: 1.0 Message-Id: <20231205-arm64-2023-dpisa-v3-1-dbcbcd867a7f@kernel.org> References: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> In-Reply-To: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , James Morse , Suzuki K Poulose , Jonathan Corbet , Shuah Khan Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvmarm@lists.linux.dev, linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org, Mark Brown X-Mailer: b4 0.13-dev-5c066 X-Developer-Signature: v=1; a=openpgp-sha256; l=956; i=broonie@kernel.org; h=from:subject:message-id; bh=7RNGzDmYQmscIH9JLPqJXNwGek+pQVepVhKqfj7iORk=; b=owEBbQGS/pANAwAKASTWi3JdVIfQAcsmYgBlb1TpX108CHonTAhZqb98RgydAoTiu67u4fx1tQ5P vBeCHyKJATMEAAEKAB0WIQSt5miqZ1cYtZ/in+ok1otyXVSH0AUCZW9U6QAKCRAk1otyXVSH0B/dB/ 0RaLXek3gvFEvOZl1SWe1zdDv/e4Q0eaM5oM/hhkXiZKwWXB4R8bg9xdESjxJyhtekmqtIbTZS9Nx0 b7lCGDvJTiS/59bSAcdIKb9KGfvicEnoh6lJoVy2lMfJMmcufgK0cWw9XuazhKy0499kxA9U+1tXZc hmrgZQZJPfftJWRURroCGHUIALMdimzVhvYwLb05f62E+9SJUb4lxQ16Oy00EOgCxVrS1twwLbD08b 58RDQ9DI4x2BjFwkKQqqJTjccC+oV/5KNGemgZ1IfcsoJYByntBBaq6f8Mg6YUEl3t1A5SXnPyTyJN hv4FbexGnUDga5QONSsZwVFdBC4Ohg X-Developer-Key: i=broonie@kernel.org; a=openpgp; fpr=3F2568AAC26998F9E813A1C5C3F436CA30F5D8EB X-Spam-Status: No, score=-1.2 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on fry.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (fry.vger.email [0.0.0.0]); Tue, 05 Dec 2023 08:51:42 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1784461717898140353 X-GMAIL-MSGID: 1784461717898140353 DDI0601 2023-09 defines a new system register ID_AA64PFR2_EL1 which enumerates FPMR and some new MTE features. Add a definition of this register. Signed-off-by: Mark Brown --- arch/arm64/tools/sysreg | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg index 96cbeeab4eec..f22ade8f1fa7 100644 --- a/arch/arm64/tools/sysreg +++ b/arch/arm64/tools/sysreg @@ -1002,6 +1002,27 @@ UnsignedEnum 3:0 BT EndEnum EndSysreg +Sysreg ID_AA64PFR2_EL1 3 0 0 4 2 +Res0 63:36 +UnsignedEnum 35:32 FPMR + 0b0000 NI + 0b0001 IMP +EndEnum +Res0 31:12 +UnsignedEnum 11:8 MTEFAR + 0b0000 NI + 0b0001 IMP +EndEnum +UnsignedEnum 7:4 MTESTOREONLY + 0b0000 NI + 0b0001 IMP +EndEnum +UnsignedEnum 3:0 MTEPERM + 0b0000 NI + 0b0001 IMP +EndEnum +EndSysreg + Sysreg ID_AA64ZFR0_EL1 3 0 0 4 4 Res0 63:60 UnsignedEnum 59:56 F64MM From patchwork Tue Dec 5 16:48:00 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Brown X-Patchwork-Id: 174116 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:bcd1:0:b0:403:3b70:6f57 with SMTP id r17csp3562551vqy; Tue, 5 Dec 2023 08:51:41 -0800 (PST) X-Google-Smtp-Source: AGHT+IEBLyi1yozDan6BhEmugiz8WpjPJJc9meUzyMLRvSytl0JrR5M83/30Wbdh3mvHwpjr0gjw X-Received: by 2002:a92:b712:0:b0:35d:624a:3037 with SMTP id k18-20020a92b712000000b0035d624a3037mr5952364ili.9.1701795101650; Tue, 05 Dec 2023 08:51:41 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701795101; cv=none; d=google.com; s=arc-20160816; b=HARS89ao/NUX8GnZ3HrBXOOlGJkN3e00U5Ed3QVOAX8angnknROUs3SKWSVx2eLgUU 4cqUByaAhYlGiRrbG30TvMJaP+ppQ9S/keNIlgBwuW5mZbxH2F2/If2/osxKqG3OheLK 6KoCJwhUy5so2tP7yvMnrt2nKNmg06vfSv7gbZdWtMfPX+oQCHtgB4X9QumvAYfB5gIS ZWPTdzPpmilorqW30Ao+xuEMN+M+bAD4WG+EtGfUYpv9+vkyl1oJh2UNFxqwzsnNRQRU YYvB9jVRZo7RQZnEQ9gA+b2Sh/lZONNVKJSoFKZsTJh2qS6kswk/7Lw/QdH+ES///yst JR1w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=P/ZAgePSZjzatAc42GuEIlP7FTGZmo9Cp7svQMAhfwc=; fh=YkHi0OKyzCxiOYBLKPiYIDkwR1WpYn/xs8G+kcuZCxc=; b=Fbr5iLYsBWCMzYlS0kVzA/SVSLzdp0BDZL0FthnyGVjZwpL5LDgcVeQwyYAe+vZ5yt J3ld6dQkcBUxaJWH1nq5A9Y1EtCtvpq6m62scew/0wueZT5a7H0gI1p7nPMRqFOJooUV nct/JIo4nPlx1/Z+YTrBA8XNtdg7LEXSnTYia6P9nSLR+EXOoB1g0MBCX2YAhdPnJ3De wrlCQqRRpwWRXlh7kGTOFTMjDq3Nw3Givr+64ighw4gUZVP2y6E1o3qVVeq3jNC+imKv /w2ruhuN8IQWb4I2WolBJQVHI5+owN6alhpN80693j2+MN9tBIDFvON35uwvGOPo8YzA hBgA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=lrmJaaJz; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from pete.vger.email (pete.vger.email. [2620:137:e000::3:6]) by mx.google.com with ESMTPS id j30-20020a63231e000000b005c6ac5b5fd0si1052532pgj.248.2023.12.05.08.51.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 08:51:41 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 as permitted sender) client-ip=2620:137:e000::3:6; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=lrmJaaJz; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by pete.vger.email (Postfix) with ESMTP id 8FE7980CF547; Tue, 5 Dec 2023 08:51:33 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at pete.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229710AbjLEQvQ (ORCPT + 99 others); Tue, 5 Dec 2023 11:51:16 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49852 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232198AbjLEQvN (ORCPT ); Tue, 5 Dec 2023 11:51:13 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E08691B3 for ; Tue, 5 Dec 2023 08:51:18 -0800 (PST) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 12EA0C433CD; Tue, 5 Dec 2023 16:51:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1701795078; bh=yGEIdovBwYeKe84KQvqQuF6UfRvXTIIewONLZW3lJjY=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=lrmJaaJz7csx4cTSAn/g53zpNTXaWkn2ParAcP/v1+H+9KiJiv/gCs2+j4XkShfA0 E2IdUfMUy4GJA7dhSkqa+lq5uSIUOiCTW/6zxmfsjZ5yYM15HnQzdt/ueaIPP6jS4g K5e9zshdmnNJ57AJgw0IL9ZnDdI0r9M0d32pV6m2zF7KbH533lI+dq1PUkGbCuMvAo FuAODu2KGXFjlOd9kPSZOCF4EV02X+evnoTwal6qHAgFFjEi6DOLgOvNPdbBfgG08C O/WVyVO4XrNKhiRMmvu5Cp7kEW+U1GeDrMx+0WKibXoanJueSk322gMW2+vp4da20P dWBwwx7zvV8ug== From: Mark Brown Date: Tue, 05 Dec 2023 16:48:00 +0000 Subject: [PATCH v3 02/21] arm64/sysreg: Update ID_AA64ISAR2_EL1 defintion for DDI0601 2023-09 MIME-Version: 1.0 Message-Id: <20231205-arm64-2023-dpisa-v3-2-dbcbcd867a7f@kernel.org> References: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> In-Reply-To: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , James Morse , Suzuki K Poulose , Jonathan Corbet , Shuah Khan Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvmarm@lists.linux.dev, linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org, Mark Brown X-Mailer: b4 0.13-dev-5c066 X-Developer-Signature: v=1; a=openpgp-sha256; l=1340; i=broonie@kernel.org; h=from:subject:message-id; bh=yGEIdovBwYeKe84KQvqQuF6UfRvXTIIewONLZW3lJjY=; b=owEBbQGS/pANAwAKASTWi3JdVIfQAcsmYgBlb1TqJj/PHrAXfTngRmg+JNAI8LnfyAIgs6I/oO1p KaqvxmiJATMEAAEKAB0WIQSt5miqZ1cYtZ/in+ok1otyXVSH0AUCZW9U6gAKCRAk1otyXVSH0FPnB/ 91d9hA/HISKqxPHud6SP9aifwHjcb93GHR5j8Sqs777GxGDtJ0TjRkPjbDf8Ou1apPzIe6racVfzcU Cdh24FpAF8bFmoJkXqxMTQUvRvv1oJgC29S7dMzXAQcspAN/C1gyrQ9vdnocgbaLvTi0iEFk/AA8o7 597tlSqx2qFUNsclQqnhRTKz76R9NfExXaYWC2wDaL9TPt7oeBXuCJ7ui2Rf3Qd1UDUQFgMH/obRvz D3ZxSknS5EaX5NDMA3Me/dCynSWUwSOm/rqy4MOqqSISsYI4Q5PmcGIBYAmkJe4BAL+l6rKIGk0BEY ZaUwoKzUfmhVkCUZRIV9PCdWQz/teV X-Developer-Key: i=broonie@kernel.org; a=openpgp; fpr=3F2568AAC26998F9E813A1C5C3F436CA30F5D8EB X-Spam-Status: No, score=-1.2 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on pete.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (pete.vger.email [0.0.0.0]); Tue, 05 Dec 2023 08:51:33 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1784461500425381287 X-GMAIL-MSGID: 1784461500425381287 DDI0601 2023-09 defines some new fields in previously RES0 space in ID_AA64ISAR2_EL1, together with one new enum value. Update the system register definition to reflect this. Signed-off-by: Mark Brown --- arch/arm64/tools/sysreg | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg index f22ade8f1fa7..27d79644e1a0 100644 --- a/arch/arm64/tools/sysreg +++ b/arch/arm64/tools/sysreg @@ -1365,7 +1365,14 @@ EndEnum EndSysreg Sysreg ID_AA64ISAR2_EL1 3 0 0 6 2 -Res0 63:56 +UnsignedEnum 63:60 ATS1A + 0b0000 NI + 0b0001 IMP +EndEnum +UnsignedEnum 59:56 LUT + 0b0000 NI + 0b0001 IMP +EndEnum UnsignedEnum 55:52 CSSC 0b0000 NI 0b0001 IMP @@ -1374,7 +1381,19 @@ UnsignedEnum 51:48 RPRFM 0b0000 NI 0b0001 IMP EndEnum -Res0 47:32 +Res0 47:44 +UnsignedEnum 43:40 PRFMSLC + 0b0000 NI + 0b0001 IMP +EndEnum +UnsignedEnum 39:36 SYSINSTR_128 + 0b0000 NI + 0b0001 IMP +EndEnum +UnsignedEnum 35:32 SYSREG_128 + 0b0000 NI + 0b0001 IMP +EndEnum UnsignedEnum 31:28 CLRBHB 0b0000 NI 0b0001 IMP @@ -1398,6 +1417,7 @@ UnsignedEnum 15:12 APA3 0b0011 PAuth2 0b0100 FPAC 0b0101 FPACCOMBINE + 0b0110 PAUTH_LR EndEnum UnsignedEnum 11:8 GPA3 0b0000 NI From patchwork Tue Dec 5 16:48:01 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Brown X-Patchwork-Id: 174117 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:bcd1:0:b0:403:3b70:6f57 with SMTP id r17csp3562631vqy; Tue, 5 Dec 2023 08:51:51 -0800 (PST) X-Google-Smtp-Source: AGHT+IFEi6EvWrIM0VNg7LCa7nqM93w0Pu908FTLGF4QcLV5hDNKWnPmi23JVggtWtLCZ89eNaSs X-Received: by 2002:a05:6a20:c1a8:b0:18f:97c:4f64 with SMTP id bg40-20020a056a20c1a800b0018f097c4f64mr4695534pzb.112.1701795110931; Tue, 05 Dec 2023 08:51:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701795110; cv=none; d=google.com; s=arc-20160816; b=0THcT+kGHX0dJeLoEhInXg8Pv6xf5+inofOzisw9q1/T3ZjEC2SgWM1tdWM47RC7wQ OVnczQhr1VKc0HaV21ROAUHQ5nLcRrJ9cdH2WYRcjoU4i5XLki0r+x83CRfkjARmbT0s /e+HneUsh2gLgeEWvEOvmA4nF0d3fJElxk+RwWklxl3x3Du4/kdZivT2n7iSyHKtWiw4 6gnqU5WPoYsH7q5YqCo0Mi2gD8fXTam7L0w7Q7T6Y8sX2dDgZNpQHc4xo/zGYbx/gils HZie3EiqZ67CnWDUUZb2veL3xq8jpP1woXftX8SQOHS06kURJKtU67MtWshSDK2XvIiC HI6A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=Zyd70WfEIH321GtQKdgVOiR2Fl/2K4o2LEoLGF8jHwk=; fh=YkHi0OKyzCxiOYBLKPiYIDkwR1WpYn/xs8G+kcuZCxc=; b=Jrml/fJW/81QCPT+o8bHm2wMEzhsVFmpOXTeEhYOzYxP++2M96UHQy8xRI3G95cDQz 5mDZU4LvI3lqJTqXq9AIYIzIS8hqd5dAIicQNSD5UclKC5BaH1HpkQOdKLtXp9ak3tbN w7NF/Y/BIV5UIxARBZohAhhXW8GtbFpaItjZ/xCe+EYXSlpWisi+WbMR1lFZ5NdWhjW1 uxSyAe5VD4OFy812xrfYuI58s606FMbpENIqKP25xfZ8Bm++P7GovAY/FbWWjmrz8S3X BtDubtG8dFrqxxEUzu5WoX0ceNTr98eZ8Q9+W/3GfhPyZVwlq6P28aJL+weah8/yqjvK 9E/g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=DZZPbcVd; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from lipwig.vger.email (lipwig.vger.email. [23.128.96.33]) by mx.google.com with ESMTPS id mm21-20020a17090b359500b00286eeac293fsi664962pjb.155.2023.12.05.08.51.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 08:51:50 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) client-ip=23.128.96.33; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=DZZPbcVd; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by lipwig.vger.email (Postfix) with ESMTP id E40AA8035AF0; Tue, 5 Dec 2023 08:51:39 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at lipwig.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232256AbjLEQvV (ORCPT + 99 others); Tue, 5 Dec 2023 11:51:21 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49822 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232425AbjLEQvP (ORCPT ); Tue, 5 Dec 2023 11:51:15 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F1D0D1A4 for ; Tue, 5 Dec 2023 08:51:21 -0800 (PST) Received: by smtp.kernel.org (Postfix) with ESMTPSA id EAEE4C433CC; Tue, 5 Dec 2023 16:51:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1701795081; bh=S3NMLYQ19RrEAdoy2+4KbBwGNVT5MhUVc+1BjCfl9/g=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=DZZPbcVdX6uoNANo8sWSB0TLE+kL48bS2twTwM5l4YoEmkV91+8HKuktE28AKoz/E WUJuLvEe51Ix4LgFAnOFSwoc0N77c2rdYlPwXEd/EUWNyWlgjHOs9CClavT5UCYqtr OMXPvHlxF/sBErlmETESmFxM/oASZSCSdaeaezuZQb7uUVLczT0URi5yoOr15sySoY Kb+syezVVyIGQeXE/axf3E5RSaqORG4nCCuYAvy7rYC6d6rX7pLoKcrH/1MLsN4css y0/XXZ6AFdyvht+mzw8YmFpnjz//xwpKeQveuWulMjC4/dt9ekoOzmjAF1mH2mQa1s hV6a4dhr5v6XQ== From: Mark Brown Date: Tue, 05 Dec 2023 16:48:01 +0000 Subject: [PATCH v3 03/21] arm64/sysreg: Add definition for ID_AA64ISAR3_EL1 MIME-Version: 1.0 Message-Id: <20231205-arm64-2023-dpisa-v3-3-dbcbcd867a7f@kernel.org> References: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> In-Reply-To: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , James Morse , Suzuki K Poulose , Jonathan Corbet , Shuah Khan Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvmarm@lists.linux.dev, linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org, Mark Brown X-Mailer: b4 0.13-dev-5c066 X-Developer-Signature: v=1; a=openpgp-sha256; l=883; i=broonie@kernel.org; h=from:subject:message-id; bh=S3NMLYQ19RrEAdoy2+4KbBwGNVT5MhUVc+1BjCfl9/g=; b=owEBbQGS/pANAwAKASTWi3JdVIfQAcsmYgBlb1TrGOb2jvRQaEf1M3wFPk1u9bRLf5uYzQoUEzvy /XSuJOmJATMEAAEKAB0WIQSt5miqZ1cYtZ/in+ok1otyXVSH0AUCZW9U6wAKCRAk1otyXVSH0LD5B/ 99D29MUG9pg2WSRHsIzvG3h9U5lLOK3bkS8LVHFibFOFFuez3PqD1zCfCe4upcfQd0tEr0VkbYXx0a yrb514ri0dQ9NSFnemew4ZI7ZF9k09ftGPkMjnDpC3m3yqHZdCC5aJcWyG9sVEZX74xjcqTGOE5tnt KgRpbr6x3NPLcVSHi0A74PC2Mx98A17SGiYfgFUN+ObQbb6Pa7Z6QefubPGknxC6ldzzcH2t+rHhJP ybM32ZhOWL/TOfnZEWlUmCwkXrYtE8WIMYVAD9lQ25h99jaiozV3cRHOA9rZktL37BqvLOcaRffQso LQ7Tbj1GO2jFgIPSwzFXA0XVvk9xM9 X-Developer-Key: i=broonie@kernel.org; a=openpgp; fpr=3F2568AAC26998F9E813A1C5C3F436CA30F5D8EB X-Spam-Status: No, score=-1.2 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lipwig.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (lipwig.vger.email [0.0.0.0]); Tue, 05 Dec 2023 08:51:40 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1784461510608086532 X-GMAIL-MSGID: 1784461510608086532 DDI0601 2023-09 adds a new system register ID_AA64ISAR3_EL1 enumerating new floating point and TLB invalidation features. Add a defintion for it. Signed-off-by: Mark Brown --- arch/arm64/tools/sysreg | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg index 27d79644e1a0..3d623a04934c 100644 --- a/arch/arm64/tools/sysreg +++ b/arch/arm64/tools/sysreg @@ -1433,6 +1433,23 @@ UnsignedEnum 3:0 WFxT EndEnum EndSysreg +Sysreg ID_AA64ISAR3_EL1 3 0 0 6 3 +Res0 63:12 +UnsignedEnum 11:8 TLBIW + 0b0000 NI + 0b0001 IMP +EndEnum +UnsignedEnum 7:4 FAMINMAX + 0b0000 NI + 0b0001 IMP +EndEnum +UnsignedEnum 3:0 CPA + 0b0000 NI + 0b0001 IMP + 0b0010 CPA2 +EndEnum +EndSysreg + Sysreg ID_AA64MMFR0_EL1 3 0 0 7 0 UnsignedEnum 63:60 ECV 0b0000 NI From patchwork Tue Dec 5 16:48:02 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Brown X-Patchwork-Id: 174135 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:bcd1:0:b0:403:3b70:6f57 with SMTP id r17csp3564554vqy; Tue, 5 Dec 2023 08:55:30 -0800 (PST) X-Google-Smtp-Source: AGHT+IEr6Bsa5yCEpctECV5Ui7Ls6bHMvXw08ERRvh7vhoesYkXG2tbFvEWgNmISrkPjc+p+v710 X-Received: by 2002:a05:6a20:8e28:b0:18f:97c:823c with SMTP id y40-20020a056a208e2800b0018f097c823cmr4205227pzj.70.1701795330445; Tue, 05 Dec 2023 08:55:30 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701795330; cv=none; d=google.com; s=arc-20160816; b=fmf+a73JQp1nwt1WUMzV/lTg0EvR7KEERP1riRqW8OUm8nyVHE4rXMfuXEH5wKhmC9 O1CUDE+laGq4dRmaGC5fuS4qRvyWmkWAX0Y78UtGdR2lHjCrH2qJ2/yiB1KqpAIuKtyo 3gQ8xxpKKv7sL1Ned6asf1E+xyXo8JZ9n+/k8W94svCI2ell0I3T6HSAAgtub3Y42+B/ 44b5rJH3HSgR8qtFIweuHWtDWhO2J/j+BtkdUMNKvHtBveUD/sTjGRBgXsg1o7eipax6 iyRtVD9JF91/3Tx7QTdF1PaIkguFzoS+0YDJthGQ6J1Fw/2ddIlStTyKlW/6xeJt7oPW 7H4g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=v2clKWjyfUigKsWAcXie8goEB1m7BMiCZcMcBgsB0O4=; fh=YkHi0OKyzCxiOYBLKPiYIDkwR1WpYn/xs8G+kcuZCxc=; b=bCaxXTzqvHLnZ+xDFCHKanbwacUhX24zHKw6+iqsm53zMcVdPiWaAu3i83ylORXJFR qR/KA/AsQ6H0xEcey6+1jeF+3lBHYBZYDfVMqOrI5wDYtIUKtHnlrxStz95xMy+FDlI2 SS7wIQ2MKJBaJXxi5gi4t1GzmOACD6VnvxRGdUbCnU/MW05SAZjPl6DbN1Yg6pfZab62 SavR1wpoz1ParfHqhsoGiKSl2CQTOrMGJb39DKxxzQwbbcUAN4BGhoZ7aNoRg+K2UU/3 jrSONqqlRv+3o/WA5wywB8PXYuMTsrqq/luJ3NHxsQAbQLaBo9x355IZHoFEqEDVYYgx ODEw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=bCUlN2GG; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from snail.vger.email (snail.vger.email. [23.128.96.37]) by mx.google.com with ESMTPS id y1-20020a17090322c100b001cffbe81706si4850359plg.354.2023.12.05.08.55.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 08:55:30 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) client-ip=23.128.96.37; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=bCUlN2GG; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id D12A88087260; Tue, 5 Dec 2023 08:51:38 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345216AbjLEQvX (ORCPT + 99 others); Tue, 5 Dec 2023 11:51:23 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49958 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345167AbjLEQvS (ORCPT ); Tue, 5 Dec 2023 11:51:18 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 20EFB1A5 for ; Tue, 5 Dec 2023 08:51:25 -0800 (PST) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 18E47C433C9; Tue, 5 Dec 2023 16:51:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1701795084; bh=9pvl6RJ+p+9jph69b/rCGpkJ7MZ4wRu40V+N9vMPcAQ=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=bCUlN2GGTua9qa72K1mtSyuE7ZxTuyttlLdzKH1zl9Rymz3dWDBuTUp7ApDepZ+me roMx7SK8lar/aOevnm/yGo/6Be//C1zF2+u769o4LXiFlu82n1VtUdfDtF8eT4QUFh wpbGKx0N77O1B5U6GOXHTM0WxLaBXFkOfOoop2DeR7FC+kGmTDM3OcR8iCFNdnyg64 27aHK/MNUqUOqVchtSwUofVzTjrk2vS/0CzmtLYwPO+fpXZTmOSbsNsEdaA8rjktit HOcFUptOyyvHyP10xqnKH6jVsvzwsNMH6zLWlDxyIV+zR1okBoKMH92DBIsLRWks5X QVEwIH3ZWvvPA== From: Mark Brown Date: Tue, 05 Dec 2023 16:48:02 +0000 Subject: [PATCH v3 04/21] arm64/sysreg: Add definition for ID_AA64FPFR0_EL1 MIME-Version: 1.0 Message-Id: <20231205-arm64-2023-dpisa-v3-4-dbcbcd867a7f@kernel.org> References: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> In-Reply-To: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , James Morse , Suzuki K Poulose , Jonathan Corbet , Shuah Khan Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvmarm@lists.linux.dev, linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org, Mark Brown X-Mailer: b4 0.13-dev-5c066 X-Developer-Signature: v=1; a=openpgp-sha256; l=1020; i=broonie@kernel.org; h=from:subject:message-id; bh=9pvl6RJ+p+9jph69b/rCGpkJ7MZ4wRu40V+N9vMPcAQ=; b=owEBbQGS/pANAwAKASTWi3JdVIfQAcsmYgBlb1TrvV5rna06zZ0R7YS6xNCHxITzVj9D3u4v8uxw d/s1LPyJATMEAAEKAB0WIQSt5miqZ1cYtZ/in+ok1otyXVSH0AUCZW9U6wAKCRAk1otyXVSH0FjaB/ 9O3byCSaZGu13WSmusqy9kOLd6fiiqn7ht96D8PImcQm4yUHZvffiH6ZcgmtXsHWq9jE04wp4qPU+q 38Z5A5BicCc0ouXQB2K7FuDnSsxlFjqxihj/3b7n/0fKmWVeQysU+/lFsPLwE/dt8ra8ezT4RIIRow DKy8RHIyEK+GzD46WKMX8epElIZLBydL7JFuQhvUYerjq+irrLMFLtYQ/Xxfu83bTLmIt8Nt2gq3Vo /K4InVaS7j9OXuG0p9tyTK5itak7khvpe8Eg1BWzLEudnK6nJ6M8297KVDdqfn1ovmKV6vFVVLqOdM TL9FIhBJOOjRDqFLxgGfPYmW2qLy0m X-Developer-Key: i=broonie@kernel.org; a=openpgp; fpr=3F2568AAC26998F9E813A1C5C3F436CA30F5D8EB X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Tue, 05 Dec 2023 08:51:38 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1784461740400845589 X-GMAIL-MSGID: 1784461740400845589 DDI0601 2023-09 defines a new feature register ID_AA64FPFR0_EL1 which enumerates a number of FP8 related features. Add a definition for it. Signed-off-by: Mark Brown --- arch/arm64/tools/sysreg | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg index 3d623a04934c..c9bb49d0ea03 100644 --- a/arch/arm64/tools/sysreg +++ b/arch/arm64/tools/sysreg @@ -1131,6 +1131,35 @@ EndEnum Res0 31:0 EndSysreg +Sysreg ID_AA64FPFR0_EL1 3 0 0 4 7 +Res0 63:32 +UnsignedEnum 31 F8CVT + 0b0 NI + 0b1 IMP +EndEnum +UnsignedEnum 30 F8FMA + 0b0 NI + 0b1 IMP +EndEnum +UnsignedEnum 29 F8DP4 + 0b0 NI + 0b1 IMP +EndEnum +UnsignedEnum 28 F8DP2 + 0b0 NI + 0b1 IMP +EndEnum +Res0 27:2 +UnsignedEnum 1 F8E4M3 + 0b0 NI + 0b1 IMP +EndEnum +UnsignedEnum 0 F8E5M2 + 0b0 NI + 0b1 IMP +EndEnum +EndSysreg + Sysreg ID_AA64DFR0_EL1 3 0 0 5 0 Enum 63:60 HPMN0 0b0000 UNPREDICTABLE From patchwork Tue Dec 5 16:48:03 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Brown X-Patchwork-Id: 174122 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:bcd1:0:b0:403:3b70:6f57 with SMTP id r17csp3563013vqy; Tue, 5 Dec 2023 08:52:32 -0800 (PST) X-Google-Smtp-Source: AGHT+IHEzsFEa0zKjUQAnc40C/9IOPP4gBvJmIc6toECdImTTkCXe7+Nsn/7cinPUw/Iehe2oY81 X-Received: by 2002:a05:6a20:e308:b0:18b:4e39:835 with SMTP id nb8-20020a056a20e30800b0018b4e390835mr3762809pzb.31.1701795152445; Tue, 05 Dec 2023 08:52:32 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701795152; cv=none; d=google.com; s=arc-20160816; b=eKtiHus1EWrl9zzY9LSSKMVSoWNMANwE5eok/xLAxId0XXZj3iAFqfZvHXaXyW2Rbk jDw4a4t1LmYeRKmroKLxBeQeS2GIs3gMwJ4yi4yOaSluwUP+rl4EXV+a5jYNTNG5/5Es 7kdQB8J4onqia+KMJGeVY92T8IDWFVmdtyRFodtzSqUuy4lvJ0LMVEIi3Go1egFW63tA aT7FMbXg5iBssqqPDRJuvRI3sqJQ8GIAWPEWljiJk1YtWvPb/9BDX/R11gncWxx83lZN bBWsqQ5ZI1OvLc/AEduAZSIPe7v0EHndnN436fEvABgcFNR+JdW+C0/YYDRioZGzgUW+ VkOw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=xYicHry5rzH7DSxEqQu+vuGw8k5q+gQXDEia4NGtdjI=; fh=YkHi0OKyzCxiOYBLKPiYIDkwR1WpYn/xs8G+kcuZCxc=; b=B/+rMQZIjcArd2k7ftqzKT01IHjIu+oZmzjFsp7cxFSTtaUC4ZDRTp8YpSMGHh/CJU xWsrve4GXhmZU23A4wncZ0iCOgG9jhsOoBONTkB2N/kGArI4A0+UyImR8CLmR8M7vXYE Q9YV44u+282St7vjpXpEL3xtSoeAkKQSMulMljOvK3e29xfTlD8KyCGoKmeWkiO7bOW0 3EyQcSAutM5ly6FAcFzaCHFiphsB8lmpZgWruajz75gFwyNOC8b2Cr/C7pHZhy23AT0/ wCHe+LYAIEvlOO7RMTp2gLkMZ4mMDE22JRVmFp9rqrMyqiURGrk+0b27bUx0FVNnP9Es eJDg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="U/yjq/Q4"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from agentk.vger.email (agentk.vger.email. [23.128.96.32]) by mx.google.com with ESMTPS id ca11-20020a056a00418b00b006ce6b4258ffsi1627275pfb.302.2023.12.05.08.52.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 08:52:32 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) client-ip=23.128.96.32; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="U/yjq/Q4"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by agentk.vger.email (Postfix) with ESMTP id 3091180AD9A9; Tue, 5 Dec 2023 08:51:41 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at agentk.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345220AbjLEQv1 (ORCPT + 99 others); Tue, 5 Dec 2023 11:51:27 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35152 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345240AbjLEQvX (ORCPT ); Tue, 5 Dec 2023 11:51:23 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5185CD45 for ; Tue, 5 Dec 2023 08:51:28 -0800 (PST) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3837CC433C7; Tue, 5 Dec 2023 16:51:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1701795088; bh=W6NILgEt2d5dF4rtCICDrMO+KDYmPRbi2cIO83aqtdM=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=U/yjq/Q4n+Uy944C3SvVJetHRPEuJ4H2z+ODEZlbSFsI1T9ebnE0KvOD1DlOvxy8E r52IGobAKYvYZlraf01qpIcYMXoqFu8Sta1YqHSaSx0xOY4LVjD/g9RrBtp83mROQY wr2RxD7boL+tuCSXsa4QqbXxIUT7GvsoNV6RpkEpm7VBp7xnJUnYYhWASFt1qiBl15 GAA9+tl3gv0AUVnkn7d/SwSH7UHXsfHamezG+6DnvH2MEf9Yn8WcUDDTi98KmHelvg WTppYrguRSTJ26nysMCBbspcHQSJlYDKofHWfuKvoY61Ln6k0r0XMhhmA6RBvAB33F gaWvkONXmb+ng== From: Mark Brown Date: Tue, 05 Dec 2023 16:48:03 +0000 Subject: [PATCH v3 05/21] arm64/sysreg: Update ID_AA64SMFR0_EL1 definition for DDI0601 2023-09 MIME-Version: 1.0 Message-Id: <20231205-arm64-2023-dpisa-v3-5-dbcbcd867a7f@kernel.org> References: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> In-Reply-To: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , James Morse , Suzuki K Poulose , Jonathan Corbet , Shuah Khan Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvmarm@lists.linux.dev, linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org, Mark Brown X-Mailer: b4 0.13-dev-5c066 X-Developer-Signature: v=1; a=openpgp-sha256; l=1275; i=broonie@kernel.org; h=from:subject:message-id; bh=W6NILgEt2d5dF4rtCICDrMO+KDYmPRbi2cIO83aqtdM=; b=owEBbQGS/pANAwAKASTWi3JdVIfQAcsmYgBlb1TsKq7swo01ZkVFa/VQHZoThC+z4Y4fL2g29UXE dzJ0FXCJATMEAAEKAB0WIQSt5miqZ1cYtZ/in+ok1otyXVSH0AUCZW9U7AAKCRAk1otyXVSH0AaVB/ 9lKtnavJF8ZGIV9aySxHECd6VY9AT0MZTZmplzW2effo/DO6sujl1Rjnx+Wr0Osariqu6lrr2gcnxf J7/osAEMjuaruInbAdqxq1pGvp1Ps79xHqDy/Qo96j8ii08IDnqToevRZijxjVOL+Dm9goH49P6D+h ei4VEQM6LYv8V/X6vjjkznyV9HkQsdJOkXpNZ9tErRL7RgQxjXBwI6R0KVU6tgyGz7f9Hbw18KXoZ+ GLLlbKUL6jJkLeJxs1VH3NnIHhQclXzeeekQgrsciLp3NENCaaZYI6OV3tcNBW9JGVe0tQSny8HUNh GOD+ZemjKdK54revv7GaXT3QnoItUj X-Developer-Key: i=broonie@kernel.org; a=openpgp; fpr=3F2568AAC26998F9E813A1C5C3F436CA30F5D8EB X-Spam-Status: No, score=-1.2 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on agentk.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (agentk.vger.email [0.0.0.0]); Tue, 05 Dec 2023 08:51:41 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1784461554030826815 X-GMAIL-MSGID: 1784461554030826815 The 2023-09 release of DDI0601 defines a number of new feature enumeration fields in ID_AA64SMFR0_EL1. Add these fields. Signed-off-by: Mark Brown --- arch/arm64/tools/sysreg | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg index c9bb49d0ea03..aee9ab4087c1 100644 --- a/arch/arm64/tools/sysreg +++ b/arch/arm64/tools/sysreg @@ -1079,7 +1079,11 @@ UnsignedEnum 63 FA64 0b0 NI 0b1 IMP EndEnum -Res0 62:60 +Res0 62:61 +UnsignedEnum 60 LUTv2 + 0b0 NI + 0b1 IMP +EndEnum UnsignedEnum 59:56 SMEver 0b0000 SME 0b0001 SME2 @@ -1107,7 +1111,14 @@ UnsignedEnum 42 F16F16 0b0 NI 0b1 IMP EndEnum -Res0 41:40 +UnsignedEnum 41 F8F16 + 0b0 NI + 0b1 IMP +EndEnum +UnsignedEnum 40 F8F32 + 0b0 NI + 0b1 IMP +EndEnum UnsignedEnum 39:36 I8I32 0b0000 NI 0b1111 IMP @@ -1128,7 +1139,20 @@ UnsignedEnum 32 F32F32 0b0 NI 0b1 IMP EndEnum -Res0 31:0 +Res0 31 +UnsignedEnum 30 SF8FMA + 0b0 NI + 0b1 IMP +EndEnum +UnsignedEnum 29 SF8DP4 + 0b0 NI + 0b1 IMP +EndEnum +UnsignedEnum 28 SF8DP2 + 0b0 NI + 0b1 IMP +EndEnum +Res0 27:0 EndSysreg Sysreg ID_AA64FPFR0_EL1 3 0 0 4 7 From patchwork Tue Dec 5 16:48:04 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Brown X-Patchwork-Id: 174119 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:bcd1:0:b0:403:3b70:6f57 with SMTP id r17csp3562912vqy; Tue, 5 Dec 2023 08:52:22 -0800 (PST) X-Google-Smtp-Source: AGHT+IEK+pljx321eM+ZPZ30hp2IF82HPkU8ijtHRlVYE0gIJfnny1S8ttVF+hVCUE1pWvWGBwOB X-Received: by 2002:a05:6870:f112:b0:1fa:3b7d:1578 with SMTP id k18-20020a056870f11200b001fa3b7d1578mr7149599oac.41.1701795142353; Tue, 05 Dec 2023 08:52:22 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701795142; cv=none; d=google.com; s=arc-20160816; b=oJU2VtsaRVWsxL1VQcQGmCUCfugnZq4bfyAURvDfYphcN9Nuy73BUczetv2C1hBPkk JZaAYuP4OV2mih6L9hKuOK0UCzsHgGcfi4hD7vJ8v2ZARh/EuTz8B0JQZ9prPQ2UDkAA 2KbfbHlq0llorkF/hjQ7LUafKF8e40C9zTjGlQIfepPKPFknSNHZW5H2XzZgw9oaY5sU Pf4ydVC4ev9tO5vXak69YVVs5CVfAbrrT54iR+p+PyrtDpKX3hjI6x64M++5fw4EaPk7 +TtbZz8XlKYn4b6+MR1InQ9LD2VoYh42YHGGHucdwUvYe+RL0m6VXueRM5EuWvlWEVhj 9TnQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=F65Y+s+S9wz7t6J9BW3QaVwpO2HU75EudwQ0bNMpbmw=; fh=YkHi0OKyzCxiOYBLKPiYIDkwR1WpYn/xs8G+kcuZCxc=; b=Xvt4EUUW4cfikbfvuVKSG5o/wdWOUeF+83+nu9w+fZ7ZD6z8KNpr7Dol2CNtbvNZh3 wT8s8UlHFGccyeexS/Gh4tTZopIUKli5SQS1moVN//0XfWLEpQqDfSH5tV9Qu8E2yBAT OPDeFRtVVh1r6y8ITwXI6qF3ECHM8r4QjEbC1Ve4zJh1PRNeQqE3T+DjsMNlbh8IlIZp s+/NaYSWR+AR+QPuEadxOK2nvPQJVOBWfQuCwgS3YPJQjsTDaxCgN18xokUVBfMKmCyz u1b10zHh0/bemdqKy/L8I+CweWZybsIfOURQeFMx3VSHYzyujEZwqcoyDzy/JoCaVEAU RDrg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="or8NS/lI"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from pete.vger.email (pete.vger.email. [2620:137:e000::3:6]) by mx.google.com with ESMTPS id v16-20020a63f850000000b005be1ee5be76si9994327pgj.373.2023.12.05.08.52.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 08:52:22 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 as permitted sender) client-ip=2620:137:e000::3:6; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="or8NS/lI"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by pete.vger.email (Postfix) with ESMTP id 7E143817DD3C; Tue, 5 Dec 2023 08:52:05 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at pete.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235174AbjLEQvg (ORCPT + 99 others); Tue, 5 Dec 2023 11:51:36 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35286 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345207AbjLEQvZ (ORCPT ); Tue, 5 Dec 2023 11:51:25 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7607D1BF for ; Tue, 5 Dec 2023 08:51:31 -0800 (PST) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 64EB4C433CD; Tue, 5 Dec 2023 16:51:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1701795091; bh=tnXYFwh5n0qNcsRXurtqbaVARrY3vmLHqYkv+SC46VU=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=or8NS/lIiiPb+Ox4HoxbwR/M43khZcE3NB/V8ZMDL52ZNkvdLQ3gXXql+jYrhObfS PSxX7yBYfoia2SuWoAlXDiXlMXdmrDGHMEKEiu2jj94fVr9EQC4LB8rryNVIv5Yw93 OtTNq7nx0Fb1eO+CyPI5ALIQxN84d2n8Kq1QeJKsnRaTdI09M2UwixZWvKNgVx37/N FPDQzJRqAc8sv04+3Vn1T53kTAnEIoc4AxCq3zb2/ZHXu7+DHui0t6IziUzUGTeiPB bQFQC81Z73tNP+3fkbkF3tGbdiKZrzr2EN/B/btjJBI+6F5Uv42jSks/MkNkH+bVQv ZCe+JfOhoWWPg== From: Mark Brown Date: Tue, 05 Dec 2023 16:48:04 +0000 Subject: [PATCH v3 06/21] arm64/sysreg: Update SCTLR_EL1 for DDI0601 2023-09 MIME-Version: 1.0 Message-Id: <20231205-arm64-2023-dpisa-v3-6-dbcbcd867a7f@kernel.org> References: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> In-Reply-To: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , James Morse , Suzuki K Poulose , Jonathan Corbet , Shuah Khan Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvmarm@lists.linux.dev, linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org, Mark Brown X-Mailer: b4 0.13-dev-5c066 X-Developer-Signature: v=1; a=openpgp-sha256; l=817; i=broonie@kernel.org; h=from:subject:message-id; bh=tnXYFwh5n0qNcsRXurtqbaVARrY3vmLHqYkv+SC46VU=; b=owEBbQGS/pANAwAKASTWi3JdVIfQAcsmYgBlb1Tt+MU8UN4NHN0+s9UCS1BON2jT/gqU9v/mIok0 xaVCdHuJATMEAAEKAB0WIQSt5miqZ1cYtZ/in+ok1otyXVSH0AUCZW9U7QAKCRAk1otyXVSH0JKxB/ 99uZPdcZFWCto/Ulu54dapGdYxX7ULcMwSlNjA3UIlhcgqs9/LB2LQrxzM0IqlTwhWI/LbTf8gO2w/ tIv6mIuH2bIY49WyACEo3MYxSsOwxaFgh+xpLumD7eHzZ964y40a5aPPeXQx1z7BcITnKJbDgsZSdh 8Euh32VYyIuTO+LUj+dhwHIYM9dApkYG+mteEkIgsWZOxSmWiXC4UzEIKXPkmZGkWS2sgq9i6Q8AWr 4YMSIzOauc4lEJQMSXBRz1HAgpykhxXyOM+LdorbPDxXM06+d65GcvgATsC2edMC+okljyGqVZtdDo IvqWXHE+zuoqr7Gz8DiYD2RUVUWMSe X-Developer-Key: i=broonie@kernel.org; a=openpgp; fpr=3F2568AAC26998F9E813A1C5C3F436CA30F5D8EB X-Spam-Status: No, score=-1.2 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on pete.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (pete.vger.email [0.0.0.0]); Tue, 05 Dec 2023 08:52:05 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1784461543057182787 X-GMAIL-MSGID: 1784461543057182787 DDI0601 2023-09 defines some new fields in SCTLR_EL1 controlling new MTE and floating point features. Update our sysreg definition to reflect these. Signed-off-by: Mark Brown --- arch/arm64/tools/sysreg | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg index aee9ab4087c1..eea69bb48fa7 100644 --- a/arch/arm64/tools/sysreg +++ b/arch/arm64/tools/sysreg @@ -1791,7 +1791,8 @@ Field 63 TIDCP Field 62 SPINTMASK Field 61 NMI Field 60 EnTP2 -Res0 59:58 +Field 59 TCSO +Field 58 TCSO0 Field 57 EPAN Field 56 EnALS Field 55 EnAS0 @@ -1820,7 +1821,7 @@ EndEnum Field 37 ITFSB Field 36 BT1 Field 35 BT0 -Res0 34 +Field 34 EnFPM Field 33 MSCEn Field 32 CMOW Field 31 EnIA From patchwork Tue Dec 5 16:48:05 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Brown X-Patchwork-Id: 174118 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:bcd1:0:b0:403:3b70:6f57 with SMTP id r17csp3562775vqy; Tue, 5 Dec 2023 08:52:08 -0800 (PST) X-Google-Smtp-Source: AGHT+IGn6xPjzFfsoOMItMK2mqFTGQ8IoFiK+LMYpxEpZY4I7xLtM3cOj4PN0aWAxCs9o4Gi91ju X-Received: by 2002:a05:6358:c398:b0:170:17eb:2fba with SMTP id fl24-20020a056358c39800b0017017eb2fbamr1992586rwb.51.1701795128280; Tue, 05 Dec 2023 08:52:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701795128; cv=none; d=google.com; s=arc-20160816; b=iUTqIzGl6dOmjwNF/vQ6ifvIqHaaETgN9rTXevRrqp3wKBSxnxOoOTjjGc/eLH6IBk zDWi5SqCabd5FXciXhpyeI0Asgp+FjnZ2JUNLDYbUDlQHRPK2xufIPZxIUaTkAhkM0RF +ZBm9bFG7rvTD29ca2sxXEj8AYJNJXipteA68hWPDOFOKt1terq3DOWizeQHtHqxECXQ e8KcnfEz3yfrRZ/JCmYo7Apmq3WOBSyy5tWJorMciG1hyu9tPNLlAxcX6aJ5YBcb6VbA NG07zSCeISze0B7EnBbqJhbiy6aIEtpegLXjKYGcWBBYTKLQeBy4LjJujOw/ms5Dd/KL cBow== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=Buh6wzTfna1hPAP9x2omLDr9sqyKOH7zyVl/NLOxwbk=; fh=YkHi0OKyzCxiOYBLKPiYIDkwR1WpYn/xs8G+kcuZCxc=; b=XWS1rRz8kfHR3eBVUz+cZPNAJqSy2KdbugWpyKb5iF6OLukeVR8s5eSZ0b1iO1QxDw nUTJ0f989J1CmZCxhQH/mw7v3NEFj5FCF9a5zU1W2ohOgxn8iikbFYSpMPRMKvzyyl4u Dpg8UaHPXHT9QBRjfAnX6HQXZq6z8y238uwcrtZr9gBniOhY8dMWLBcP7L1JaxnKXzM6 6ZcfpWqOnI1tmqHg5VbmBSJnMM9MY3mKnVXvDzNL+7QCwcIsfEsj1SaQvJ5me83gSbCt XNOcvmIYR1AEGDZxovCTzIvohKvAcJg02At5KpWl7bwlzh6oARLDWYTZbrbiqthaQ7G+ 4lAg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=jqyb5YMt; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from lipwig.vger.email (lipwig.vger.email. [23.128.96.33]) by mx.google.com with ESMTPS id j2-20020a056a00174200b006ce56664fd5si3177023pfc.157.2023.12.05.08.51.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 08:52:08 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) client-ip=23.128.96.33; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=jqyb5YMt; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by lipwig.vger.email (Postfix) with ESMTP id DABC1803510F; Tue, 5 Dec 2023 08:51:52 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at lipwig.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345236AbjLEQvl (ORCPT + 99 others); Tue, 5 Dec 2023 11:51:41 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48274 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235047AbjLEQvc (ORCPT ); Tue, 5 Dec 2023 11:51:32 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A211DD48 for ; Tue, 5 Dec 2023 08:51:34 -0800 (PST) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8FD1DC433C9; Tue, 5 Dec 2023 16:51:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1701795094; bh=BQwIlG0oOgH2zbKU3AwqILoaXU3JMfSvJqswNhTlD0w=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=jqyb5YMtNSsewilq3YgjUOLKB+5TZZxOhPMYtacsADuHV8SBMnhdKtzSjTyhHZzEm oHXzvNzWcQ35s5gb0XHhcwYsPuCIfmzAWUOjxccMbJ7aLMNYNu7h5m7yhO69cr6X8t LsO6yW8ieiimIM9EXiu1nACFt0WA42BnELODdvKRUqRokUjAT/C5ykYMeifPEIqOBW mIYJ54EZGqaRkHnYm0SqWHEbfLZ0M3trtrhBndFjMptqvobpIvoDWlQ9L2I03m/Cc+ 5Wh2CroQRUBi4vwTtvYR6gBzWxLVb/qKP15pjJVdEWF2Zt2yeRzVQmoSGbJNUieP+I Z810MDLonuF4w== From: Mark Brown Date: Tue, 05 Dec 2023 16:48:05 +0000 Subject: [PATCH v3 07/21] arm64/sysreg: Update HCRX_EL2 definition for DDI0601 2023-09 MIME-Version: 1.0 Message-Id: <20231205-arm64-2023-dpisa-v3-7-dbcbcd867a7f@kernel.org> References: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> In-Reply-To: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , James Morse , Suzuki K Poulose , Jonathan Corbet , Shuah Khan Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvmarm@lists.linux.dev, linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org, Mark Brown X-Mailer: b4 0.13-dev-5c066 X-Developer-Signature: v=1; a=openpgp-sha256; l=666; i=broonie@kernel.org; h=from:subject:message-id; bh=BQwIlG0oOgH2zbKU3AwqILoaXU3JMfSvJqswNhTlD0w=; b=owEBbQGS/pANAwAKASTWi3JdVIfQAcsmYgBlb1TuD6frcSkllH1UYYR40YWIjqreDBRNueDypCOq XjYki6OJATMEAAEKAB0WIQSt5miqZ1cYtZ/in+ok1otyXVSH0AUCZW9U7gAKCRAk1otyXVSH0BxSB/ 9+aykVaLXXkovSxvPoWNp/dLjsV1+Cm+xxFo/z24bos92b6gHOP83wnIEddgbLtyoJtveduZ+hsSeY ZvnCX1wUSAZLjZhpk0cj+8IlJE+GzQjGOBch6dmNJyy6GxvrkJ7rgbtuzUcPbRRKC1awZTD+zZbthm deDPd8ar/7eFE3e+/XV6heK4bWGNaXJWPHZin6myifMPB5U5pES0DduUMSnGzZiFqX8Qg6jGZqOB29 BgYGCxIQOyEwNsIHOblnca6qoeB9K3jKV+u6VV3dz4NqhWWYFSmOor2/jrtkJKriL0HyUcNpUb8NKt M2wHrXrpV/8B2oTE7OBLn+RVW6XABe X-Developer-Key: i=broonie@kernel.org; a=openpgp; fpr=3F2568AAC26998F9E813A1C5C3F436CA30F5D8EB X-Spam-Status: No, score=-1.2 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lipwig.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (lipwig.vger.email [0.0.0.0]); Tue, 05 Dec 2023 08:51:53 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1784461528383901667 X-GMAIL-MSGID: 1784461528383901667 DDI0601 2023-09 defines new fields in HCRX_EL2 controlling access to new system registers, update our definition of HCRX_EL2 to reflect this. Signed-off-by: Mark Brown --- arch/arm64/tools/sysreg | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg index eea69bb48fa7..0b1a33a77074 100644 --- a/arch/arm64/tools/sysreg +++ b/arch/arm64/tools/sysreg @@ -2412,7 +2412,9 @@ Fields ZCR_ELx EndSysreg Sysreg HCRX_EL2 3 4 1 2 2 -Res0 63:23 +Res0 63:25 +Field 24 PACMEn +Field 23 EnFPM Field 22 GCSEn Field 21 EnIDCP128 Field 20 EnSDERR From patchwork Tue Dec 5 16:48:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Brown X-Patchwork-Id: 174121 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:bcd1:0:b0:403:3b70:6f57 with SMTP id r17csp3562978vqy; Tue, 5 Dec 2023 08:52:29 -0800 (PST) X-Google-Smtp-Source: AGHT+IHYmJ0ZvTPvG87ENRs7JNgw+6+sM6JezKRrzQqnTODPsXputAHuFJtWGGDdcmNFyTxl1Jeb X-Received: by 2002:a05:6870:1602:b0:1f9:50f5:a8c with SMTP id b2-20020a056870160200b001f950f50a8cmr8809935oae.35.1701795149242; Tue, 05 Dec 2023 08:52:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701795149; cv=none; d=google.com; s=arc-20160816; b=b9wkdG5+AZGywNl+CZUZL64FphU+DDb/RgifYZ29lh6oXJc/dE1l0OynvAtwPeSouF Gz8Qj/U/95KtcEOtuSECqkJ8kOmA+W4Xm43ACLsFe8LqesMNJKONrflrRTAbhqJLz8RC bLMKBBUnYNb3hKflSXU/IeBQ31Ykm5gRLBvsMwOQntV9Gn7jPDm5Pk8m6Sfo1lIYkOCs 9a5/X2xNwaY7tnAy+Or3xNqp3UpVNumS65b3rNhAEsNbOgGRRX6t6SuVEg0sG/JkQRKu Zt0ZnPs4gg6uGDEaz+wWSE8fZ3I9bBa5pnUH9Ig2suMZZ6PDAf+FI7ZG+GbkacEi81eM cK7Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=w3+aQl35ssEimIoB5m1paAp3DJYpvwqvvGhDqTZDNvA=; fh=YkHi0OKyzCxiOYBLKPiYIDkwR1WpYn/xs8G+kcuZCxc=; b=iYybC0/Qaur0OT2ugpPTT+v+Fm+/zuS4OmVyAGgPVHN626kDIUxY70VXfxj1sJf+p+ lsjI3nsw3f3P2nWe0y0WuQdOl78raDkIZ9CI4SKnPU72oLk0cD6NtKO0L23fvDWodJY/ e0dzCRczszUPnwcHA2ca0peQ5ohTkbhjk4JzmuWMCnu/5hGVOqrC/CMTK/nenHnQN0VY Nc6AQuw504JwUQAIVrQVhiOMLCbaKNKOYv+3FHDUrvjZd6A5fEPOsVVUYVstXQjz81Ez iuzK7vTJy3nBIEuAMlpSd6gC7nsXFGgRxieZHp7W89q5X+ET5Zss6EUEb9UPYp3eHCG8 rY+A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="GJJAN/sd"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.35 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from groat.vger.email (groat.vger.email. [23.128.96.35]) by mx.google.com with ESMTPS id l126-20020a632584000000b005c6604d8a80si5802135pgl.121.2023.12.05.08.52.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 08:52:29 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.35 as permitted sender) client-ip=23.128.96.35; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="GJJAN/sd"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.35 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by groat.vger.email (Postfix) with ESMTP id 67ED580A97EC; Tue, 5 Dec 2023 08:52:01 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at groat.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345351AbjLEQvp (ORCPT + 99 others); Tue, 5 Dec 2023 11:51:45 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48328 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235076AbjLEQvd (ORCPT ); Tue, 5 Dec 2023 11:51:33 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C6F3AD66 for ; Tue, 5 Dec 2023 08:51:37 -0800 (PST) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B7E66C433C7; Tue, 5 Dec 2023 16:51:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1701795097; bh=TRfwOBP1ct8dRqN5onbbksp9izfKksijyA3SFS57tL8=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=GJJAN/sdgW9lhyQnig67GRbm2cbkYg1U4DWRVPeKYiM3i/TYzLd3fPVDrGJgix8Mm FuBQLMzYOSaV+7mhEBTPz/D64h/z+OILnf7FGbGHoIoS2O9bTg+jtz3Zr8Llno4q37 ehtoCLl5oGh1RMHo+nQnFi0A9hV+8MxUj9jDgjsOz0jasV4/l4WrTT/uVpL+PXCSdS fyN/Ns30isTwXbF+AXafUWgi7Xkar4nRgzMZVDEETy2hX/GE/X51ze4nH4NP1EgXhS Nj9hc00IafLWlUWBqfe7M6fzCkhGFjhCg/QCFPqCoQPxLCSAyJxerAGHlFMgjjjJmV LR9AITvK6EAUQ== From: Mark Brown Date: Tue, 05 Dec 2023 16:48:06 +0000 Subject: [PATCH v3 08/21] arm64/sysreg: Add definition for FPMR MIME-Version: 1.0 Message-Id: <20231205-arm64-2023-dpisa-v3-8-dbcbcd867a7f@kernel.org> References: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> In-Reply-To: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , James Morse , Suzuki K Poulose , Jonathan Corbet , Shuah Khan Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvmarm@lists.linux.dev, linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org, Mark Brown X-Mailer: b4 0.13-dev-5c066 X-Developer-Signature: v=1; a=openpgp-sha256; l=975; i=broonie@kernel.org; h=from:subject:message-id; bh=TRfwOBP1ct8dRqN5onbbksp9izfKksijyA3SFS57tL8=; b=owEBbQGS/pANAwAKASTWi3JdVIfQAcsmYgBlb1TvVsjO+1Ho6qAlj6qwCmPte6Bb7DMChC7dyCkd PySIUMuJATMEAAEKAB0WIQSt5miqZ1cYtZ/in+ok1otyXVSH0AUCZW9U7wAKCRAk1otyXVSH0Kt6B/ 9CefQbQVJNo9MwymwwWXuS68fFeyVNw2SeJiyB6yG6JaaIldk3ZEoHjyKVwthWwBkAlh0D+F4BgnSI 0uqu35O4JMVRTn55wEe1Kz2+3C3g5n7/jfPsDfvEfdR+p3taYvvSJxUbMDoAGuorPot3y6ADVHTeMF Rb/Ui71ogWxW1R+hAD9us2c1MluIM69SXC7SIxsdQDLWH/SZho9p5j1f6pXxiJ9081AQva7XhRR2j8 5GRdYVyr1rQpclvsx4lsqZUjeZJWzER+bQSmPiAc17iKf27jKVmnjB6bhop2TipQYaohmgIyAOivVh cK5nL8FVat4M64Cv/mMfygRV7eQlEV X-Developer-Key: i=broonie@kernel.org; a=openpgp; fpr=3F2568AAC26998F9E813A1C5C3F436CA30F5D8EB X-Spam-Status: No, score=-1.2 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on groat.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (groat.vger.email [0.0.0.0]); Tue, 05 Dec 2023 08:52:01 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1784461550403276330 X-GMAIL-MSGID: 1784461550403276330 DDI0601 2023-09 defines a new sysrem register FPMR (Floating Point Mode Register) which configures the new FP8 features. Add a definition of this register. Signed-off-by: Mark Brown --- arch/arm64/tools/sysreg | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/arch/arm64/tools/sysreg b/arch/arm64/tools/sysreg index 0b1a33a77074..67173576115a 100644 --- a/arch/arm64/tools/sysreg +++ b/arch/arm64/tools/sysreg @@ -2138,6 +2138,29 @@ Field 1 ZA Field 0 SM EndSysreg +Sysreg FPMR 3 3 4 4 2 +Res0 63:38 +Field 37:32 LSCALE2 +Field 31:24 NSCALE +Res0 23 +Field 22:16 LSCALE +Field 15 OSC +Field 14 OSM +Res0 13:9 +UnsignedEnum 8:6 F8D + 0b000 E5M2 + 0b001 E4M3 +EndEnum +UnsignedEnum 5:3 F8S2 + 0b000 E5M2 + 0b001 E4M3 +EndEnum +UnsignedEnum 2:0 F8S1 + 0b000 E5M2 + 0b001 E4M3 +EndEnum +EndSysreg + SysregFields HFGxTR_EL2 Field 63 nAMAIR2_EL1 Field 62 nMAIR2_EL1 From patchwork Tue Dec 5 16:48:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Brown X-Patchwork-Id: 174120 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:bcd1:0:b0:403:3b70:6f57 with SMTP id r17csp3562962vqy; Tue, 5 Dec 2023 08:52:28 -0800 (PST) X-Google-Smtp-Source: AGHT+IGLa/fE2kbDIboNSf/xvTcjwfuUiEp4Dcr65ma6SralokP19RAeNxmb/yho/38ifVZMTVBR X-Received: by 2002:a05:6a20:3a8a:b0:18f:97c:3859 with SMTP id d10-20020a056a203a8a00b0018f097c3859mr1873777pzh.51.1701795148078; Tue, 05 Dec 2023 08:52:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701795148; cv=none; d=google.com; s=arc-20160816; b=tG5/26giXIhz+Nh3+ZCyHzlhP/IC5HvSxioV5dVuf2GXyX8b29mEBHCYKepAAh+SVw PZt98my2kuGJSOofdlvORORcug2J5vt1Yiqtkpll33yqDdDwDhkTWv5Zrm2pzvSn8sNx 1s7s1gT2qAJlFKMJnweF9FywwMD3VphTASfaZhlWmaDz5aEGr7LJM/u4k/eqU729eKd9 0VarCTP5wtFlJYCQfG/qUzIkZOluH7zlG8JAcbSnSupWopa9T6124vSldzAQrDmFQjyl SfUfVTj5witrWwN1Mzh1GsscGjub6sNWrt/VUjr7cMdovnT3iBxH0QpU+MzbeFCX3MTW ArbQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=iMtprOqnsJ1+LN/RTprE3HNFxdutgXZyVNHZGN2Gmp0=; fh=YkHi0OKyzCxiOYBLKPiYIDkwR1WpYn/xs8G+kcuZCxc=; b=RQzKFJfd5mhlla8BK2MK/dbleZI1EGWn6UxhUnnBjkXpV9dYDGWVw1cq1LoqB2QOx8 gOat4+y0p8BLSs5gW6auQ2DTUZAYvfaDLrZ6Fk0PUMVWcGqyr20ZAvd1YWUMltlYXZQ0 VPZGHHRs7y6WvqxcoQuyZUjqmKf7QsFzsvkYD9cKL7WsPs6XjlIHyLJw7fBWnckrZBGP bby6Q84NoXO1+DydyPNT/7XngwkViFfYo90ECBE6H2dU5+3RHRMq9sYb9O67flDmr/YG uzRxjf9I7GHHBat4oZQ/7MoCYL8i9DC3pb+effLz89wmABHx1P3+DQkApIP4Wif2ADUr 3ULg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=bBWaZQoc; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.35 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from groat.vger.email (groat.vger.email. [23.128.96.35]) by mx.google.com with ESMTPS id cb11-20020a056a02070b00b005c66e609013si5248283pgb.221.2023.12.05.08.52.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 08:52:28 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.35 as permitted sender) client-ip=23.128.96.35; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=bBWaZQoc; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.35 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by groat.vger.email (Postfix) with ESMTP id 18D1680A97F1; Tue, 5 Dec 2023 08:52:05 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at groat.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232130AbjLEQvt (ORCPT + 99 others); Tue, 5 Dec 2023 11:51:49 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48366 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235129AbjLEQvf (ORCPT ); Tue, 5 Dec 2023 11:51:35 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F37ACD53 for ; Tue, 5 Dec 2023 08:51:40 -0800 (PST) Received: by smtp.kernel.org (Postfix) with ESMTPSA id DFDC5C43395; Tue, 5 Dec 2023 16:51:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1701795100; bh=eZaW7Q4M/zzv5URqk5Jj7aBPK/YCTtlJ1HieBEOkpao=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=bBWaZQocRhiNGcMzExKptjvdMKYY9uQuAuXUZMhW9T9J4vUcl5HOkuq3hEyTiqijO SUmD6zu7bv7fs7Y9Cnf0c8QGImbjHvvJBskGSbw7eKBGcCFl2k/yeJ8qo7HTQXoEcC QikVOTxSOn3QJK7cEjfB9p1vM/BBf7BHS+CI2Fpb0A/EOnbX/IXS30bGFFZJdoiZ21 cdbzaqsVTpQGmF/yLWK/LlQc8ctYky7BBG8oimVkNEmladGBWVetwYCz3OEYWbsMLm j1ffH0900SOyJQWOwKfe4tEE5ExKHWt3KbaLk42QdV8XN+14d4ozEkcvKFEyYW3k+5 c/FliUCDv2Keg== From: Mark Brown Date: Tue, 05 Dec 2023 16:48:07 +0000 Subject: [PATCH v3 09/21] arm64/cpufeature: Hook new identification registers up to cpufeature MIME-Version: 1.0 Message-Id: <20231205-arm64-2023-dpisa-v3-9-dbcbcd867a7f@kernel.org> References: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> In-Reply-To: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , James Morse , Suzuki K Poulose , Jonathan Corbet , Shuah Khan Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvmarm@lists.linux.dev, linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org, Mark Brown X-Mailer: b4 0.13-dev-5c066 X-Developer-Signature: v=1; a=openpgp-sha256; l=7888; i=broonie@kernel.org; h=from:subject:message-id; bh=eZaW7Q4M/zzv5URqk5Jj7aBPK/YCTtlJ1HieBEOkpao=; b=owEBbQGS/pANAwAKASTWi3JdVIfQAcsmYgBlb1TvB4kqRIuWdm/XtcE3Xoa/DtcNqTxztLLEbe1V NgqXT4aJATMEAAEKAB0WIQSt5miqZ1cYtZ/in+ok1otyXVSH0AUCZW9U7wAKCRAk1otyXVSH0MIAB/ 9nLWOvCtl841avw2UHuEX/lY24I927HPDN949RGj3vb5YblN07M7O5U6mrunper7oTFNI8GCjbel6Z PkQIhqPBbNXC7PADTlofG0KJHrLTGs+PcxzPQd/qTSinXkrrHVI6hZ24vLO6iQ0tEtpVZgI0ghrc9C LKgtheJ6zFJcxVPyTWK2VyRP5yx2czrtv0p3IzatcWVu2eufrgpIDVIW/9G4fk/1jE2YXYcUNGzcVO pZGYpWQSZc1jM4c593dw2lkgYgWYWST/1rXEyvJPiU8z0/nhuh+CuCpRbehU/61g/WgGquAvJ5XZqr 5dbvY8BaR17lpwmyh+I8QqvmzfLTW7 X-Developer-Key: i=broonie@kernel.org; a=openpgp; fpr=3F2568AAC26998F9E813A1C5C3F436CA30F5D8EB X-Spam-Status: No, score=-1.2 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on groat.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (groat.vger.email [0.0.0.0]); Tue, 05 Dec 2023 08:52:05 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1784461549374003878 X-GMAIL-MSGID: 1784461549374003878 The 2023 architecture extensions have defined several new ID registers, hook them up to the cpufeature code so we can add feature checks and hwcaps based on their contents. Signed-off-by: Mark Brown --- arch/arm64/include/asm/cpu.h | 3 +++ arch/arm64/kernel/cpufeature.c | 28 ++++++++++++++++++++++++++++ arch/arm64/kernel/cpuinfo.c | 3 +++ 3 files changed, 34 insertions(+) diff --git a/arch/arm64/include/asm/cpu.h b/arch/arm64/include/asm/cpu.h index f3034099fd95..b99138bc3d4a 100644 --- a/arch/arm64/include/asm/cpu.h +++ b/arch/arm64/include/asm/cpu.h @@ -53,14 +53,17 @@ struct cpuinfo_arm64 { u64 reg_id_aa64isar0; u64 reg_id_aa64isar1; u64 reg_id_aa64isar2; + u64 reg_id_aa64isar3; u64 reg_id_aa64mmfr0; u64 reg_id_aa64mmfr1; u64 reg_id_aa64mmfr2; u64 reg_id_aa64mmfr3; u64 reg_id_aa64pfr0; u64 reg_id_aa64pfr1; + u64 reg_id_aa64pfr2; u64 reg_id_aa64zfr0; u64 reg_id_aa64smfr0; + u64 reg_id_aa64fpfr0; struct cpuinfo_32bit aarch32; }; diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c index 646591c67e7a..c8d38e5ce997 100644 --- a/arch/arm64/kernel/cpufeature.c +++ b/arch/arm64/kernel/cpufeature.c @@ -234,6 +234,10 @@ static const struct arm64_ftr_bits ftr_id_aa64isar2[] = { ARM64_FTR_END, }; +static const struct arm64_ftr_bits ftr_id_aa64isar3[] = { + ARM64_FTR_END, +}; + static const struct arm64_ftr_bits ftr_id_aa64pfr0[] = { ARM64_FTR_BITS(FTR_HIDDEN, FTR_NONSTRICT, FTR_LOWER_SAFE, ID_AA64PFR0_EL1_CSV3_SHIFT, 4, 0), ARM64_FTR_BITS(FTR_HIDDEN, FTR_NONSTRICT, FTR_LOWER_SAFE, ID_AA64PFR0_EL1_CSV2_SHIFT, 4, 0), @@ -267,6 +271,10 @@ static const struct arm64_ftr_bits ftr_id_aa64pfr1[] = { ARM64_FTR_END, }; +static const struct arm64_ftr_bits ftr_id_aa64pfr2[] = { + ARM64_FTR_END, +}; + static const struct arm64_ftr_bits ftr_id_aa64zfr0[] = { ARM64_FTR_BITS(FTR_VISIBLE_IF_IS_ENABLED(CONFIG_ARM64_SVE), FTR_STRICT, FTR_LOWER_SAFE, ID_AA64ZFR0_EL1_F64MM_SHIFT, 4, 0), @@ -319,6 +327,10 @@ static const struct arm64_ftr_bits ftr_id_aa64smfr0[] = { ARM64_FTR_END, }; +static const struct arm64_ftr_bits ftr_id_aa64fpfr0[] = { + ARM64_FTR_END, +}; + static const struct arm64_ftr_bits ftr_id_aa64mmfr0[] = { ARM64_FTR_BITS(FTR_VISIBLE, FTR_STRICT, FTR_LOWER_SAFE, ID_AA64MMFR0_EL1_ECV_SHIFT, 4, 0), ARM64_FTR_BITS(FTR_HIDDEN, FTR_STRICT, FTR_LOWER_SAFE, ID_AA64MMFR0_EL1_FGT_SHIFT, 4, 0), @@ -702,10 +714,12 @@ static const struct __ftr_reg_entry { &id_aa64pfr0_override), ARM64_FTR_REG_OVERRIDE(SYS_ID_AA64PFR1_EL1, ftr_id_aa64pfr1, &id_aa64pfr1_override), + ARM64_FTR_REG(SYS_ID_AA64PFR2_EL1, ftr_id_aa64pfr2), ARM64_FTR_REG_OVERRIDE(SYS_ID_AA64ZFR0_EL1, ftr_id_aa64zfr0, &id_aa64zfr0_override), ARM64_FTR_REG_OVERRIDE(SYS_ID_AA64SMFR0_EL1, ftr_id_aa64smfr0, &id_aa64smfr0_override), + ARM64_FTR_REG(SYS_ID_AA64FPFR0_EL1, ftr_id_aa64fpfr0), /* Op1 = 0, CRn = 0, CRm = 5 */ ARM64_FTR_REG(SYS_ID_AA64DFR0_EL1, ftr_id_aa64dfr0), @@ -717,6 +731,7 @@ static const struct __ftr_reg_entry { &id_aa64isar1_override), ARM64_FTR_REG_OVERRIDE(SYS_ID_AA64ISAR2_EL1, ftr_id_aa64isar2, &id_aa64isar2_override), + ARM64_FTR_REG(SYS_ID_AA64ISAR3_EL1, ftr_id_aa64isar3), /* Op1 = 0, CRn = 0, CRm = 7 */ ARM64_FTR_REG(SYS_ID_AA64MMFR0_EL1, ftr_id_aa64mmfr0), @@ -1043,14 +1058,17 @@ void __init init_cpu_features(struct cpuinfo_arm64 *info) init_cpu_ftr_reg(SYS_ID_AA64ISAR0_EL1, info->reg_id_aa64isar0); init_cpu_ftr_reg(SYS_ID_AA64ISAR1_EL1, info->reg_id_aa64isar1); init_cpu_ftr_reg(SYS_ID_AA64ISAR2_EL1, info->reg_id_aa64isar2); + init_cpu_ftr_reg(SYS_ID_AA64ISAR3_EL1, info->reg_id_aa64isar3); init_cpu_ftr_reg(SYS_ID_AA64MMFR0_EL1, info->reg_id_aa64mmfr0); init_cpu_ftr_reg(SYS_ID_AA64MMFR1_EL1, info->reg_id_aa64mmfr1); init_cpu_ftr_reg(SYS_ID_AA64MMFR2_EL1, info->reg_id_aa64mmfr2); init_cpu_ftr_reg(SYS_ID_AA64MMFR3_EL1, info->reg_id_aa64mmfr3); init_cpu_ftr_reg(SYS_ID_AA64PFR0_EL1, info->reg_id_aa64pfr0); init_cpu_ftr_reg(SYS_ID_AA64PFR1_EL1, info->reg_id_aa64pfr1); + init_cpu_ftr_reg(SYS_ID_AA64PFR2_EL1, info->reg_id_aa64pfr2); init_cpu_ftr_reg(SYS_ID_AA64ZFR0_EL1, info->reg_id_aa64zfr0); init_cpu_ftr_reg(SYS_ID_AA64SMFR0_EL1, info->reg_id_aa64smfr0); + init_cpu_ftr_reg(SYS_ID_AA64FPFR0_EL1, info->reg_id_aa64fpfr0); if (id_aa64pfr0_32bit_el0(info->reg_id_aa64pfr0)) init_32bit_cpu_features(&info->aarch32); @@ -1291,6 +1309,8 @@ void update_cpu_features(int cpu, info->reg_id_aa64isar1, boot->reg_id_aa64isar1); taint |= check_update_ftr_reg(SYS_ID_AA64ISAR2_EL1, cpu, info->reg_id_aa64isar2, boot->reg_id_aa64isar2); + taint |= check_update_ftr_reg(SYS_ID_AA64ISAR3_EL1, cpu, + info->reg_id_aa64isar3, boot->reg_id_aa64isar3); /* * Differing PARange support is fine as long as all peripherals and @@ -1310,6 +1330,8 @@ void update_cpu_features(int cpu, info->reg_id_aa64pfr0, boot->reg_id_aa64pfr0); taint |= check_update_ftr_reg(SYS_ID_AA64PFR1_EL1, cpu, info->reg_id_aa64pfr1, boot->reg_id_aa64pfr1); + taint |= check_update_ftr_reg(SYS_ID_AA64PFR2_EL1, cpu, + info->reg_id_aa64pfr2, boot->reg_id_aa64pfr2); taint |= check_update_ftr_reg(SYS_ID_AA64ZFR0_EL1, cpu, info->reg_id_aa64zfr0, boot->reg_id_aa64zfr0); @@ -1317,6 +1339,9 @@ void update_cpu_features(int cpu, taint |= check_update_ftr_reg(SYS_ID_AA64SMFR0_EL1, cpu, info->reg_id_aa64smfr0, boot->reg_id_aa64smfr0); + taint |= check_update_ftr_reg(SYS_ID_AA64FPFR0_EL1, cpu, + info->reg_id_aa64fpfr0, boot->reg_id_aa64fpfr0); + /* Probe vector lengths */ if (IS_ENABLED(CONFIG_ARM64_SVE) && id_aa64pfr0_sve(read_sanitised_ftr_reg(SYS_ID_AA64PFR0_EL1))) { @@ -1429,8 +1454,10 @@ u64 __read_sysreg_by_encoding(u32 sys_id) read_sysreg_case(SYS_ID_AA64PFR0_EL1); read_sysreg_case(SYS_ID_AA64PFR1_EL1); + read_sysreg_case(SYS_ID_AA64PFR2_EL1); read_sysreg_case(SYS_ID_AA64ZFR0_EL1); read_sysreg_case(SYS_ID_AA64SMFR0_EL1); + read_sysreg_case(SYS_ID_AA64FPFR0_EL1); read_sysreg_case(SYS_ID_AA64DFR0_EL1); read_sysreg_case(SYS_ID_AA64DFR1_EL1); read_sysreg_case(SYS_ID_AA64MMFR0_EL1); @@ -1440,6 +1467,7 @@ u64 __read_sysreg_by_encoding(u32 sys_id) read_sysreg_case(SYS_ID_AA64ISAR0_EL1); read_sysreg_case(SYS_ID_AA64ISAR1_EL1); read_sysreg_case(SYS_ID_AA64ISAR2_EL1); + read_sysreg_case(SYS_ID_AA64ISAR3_EL1); read_sysreg_case(SYS_CNTFRQ_EL0); read_sysreg_case(SYS_CTR_EL0); diff --git a/arch/arm64/kernel/cpuinfo.c b/arch/arm64/kernel/cpuinfo.c index a257da7b56fe..8322e968fd0d 100644 --- a/arch/arm64/kernel/cpuinfo.c +++ b/arch/arm64/kernel/cpuinfo.c @@ -448,14 +448,17 @@ static void __cpuinfo_store_cpu(struct cpuinfo_arm64 *info) info->reg_id_aa64isar0 = read_cpuid(ID_AA64ISAR0_EL1); info->reg_id_aa64isar1 = read_cpuid(ID_AA64ISAR1_EL1); info->reg_id_aa64isar2 = read_cpuid(ID_AA64ISAR2_EL1); + info->reg_id_aa64isar3 = read_cpuid(ID_AA64ISAR3_EL1); info->reg_id_aa64mmfr0 = read_cpuid(ID_AA64MMFR0_EL1); info->reg_id_aa64mmfr1 = read_cpuid(ID_AA64MMFR1_EL1); info->reg_id_aa64mmfr2 = read_cpuid(ID_AA64MMFR2_EL1); info->reg_id_aa64mmfr3 = read_cpuid(ID_AA64MMFR3_EL1); info->reg_id_aa64pfr0 = read_cpuid(ID_AA64PFR0_EL1); info->reg_id_aa64pfr1 = read_cpuid(ID_AA64PFR1_EL1); + info->reg_id_aa64pfr2 = read_cpuid(ID_AA64PFR2_EL1); info->reg_id_aa64zfr0 = read_cpuid(ID_AA64ZFR0_EL1); info->reg_id_aa64smfr0 = read_cpuid(ID_AA64SMFR0_EL1); + info->reg_id_aa64fpfr0 = read_cpuid(ID_AA64FPFR0_EL1); if (id_aa64pfr1_mte(info->reg_id_aa64pfr1)) info->reg_gmid = read_cpuid(GMID_EL1); From patchwork Tue Dec 5 16:48:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Brown X-Patchwork-Id: 174136 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:bcd1:0:b0:403:3b70:6f57 with SMTP id r17csp3564618vqy; Tue, 5 Dec 2023 08:55:36 -0800 (PST) X-Google-Smtp-Source: AGHT+IFUXUk4rTYISdoj1iEbyXsMdgC2HbYAcqyGMB/Rq37NuONoK5M1CHl/smvR2BPAfwG7QlGz X-Received: by 2002:a17:903:2442:b0:1d0:6ffd:6e6b with SMTP id l2-20020a170903244200b001d06ffd6e6bmr4025349pls.99.1701795336443; Tue, 05 Dec 2023 08:55:36 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701795336; cv=none; d=google.com; s=arc-20160816; b=PlJgwyCGIM20hBzdzOL8Oij7fLEgtDhTY4ownGkSQUGzySErq56nN2cky68wFFdNic 0qRFqF22tPGnIiMholrd3klpXaXSqNzQjWKqisb+++gV0HtjLgYO945ptERbKPPmPX+/ g3FNQHKajJrUmzI6dOtn9wG/jbCGL9KD53fx5NBRpV+owT2oq4i0r6Q/SczGsUqNdOmj DVjbSY7IZpQluD4rRqcWCazJ8R1Z+q+R7u6RdVa2mKCUN6TZg1JhtKMTI3R7XkNl2liK l3n6E0LRYCnfabRAFlE8NHYCN1YiS6GddGxABUzOMTrtKCD3Ad2wKm5IQi4ZyBaB+/As VjWw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=gXDRFkwC8hg8GcZsLvUCs1l0O4U0DXnKJ722Tw4A/A4=; fh=YkHi0OKyzCxiOYBLKPiYIDkwR1WpYn/xs8G+kcuZCxc=; b=EMdpVfcJnu6s6ZQV+jWFsO7z1E7w3eU575EkqKK42ek8Flk2O2f/7OmzFCC4nJEW/8 GESFl+RRi1DMlqf6BVC19Ipthlq7x2jGK/AMKyX+6Kt5Iq11DLGdyf/SDRsIlUarEqak EPWgnK5fu7Go22gmZUCau77yfv18pUpR4EA7zlMIZP2AIHBPthDnOKwHK0gZf/nqXtCF 6XRUdER2IMzGAwJon+WTpiQksiieLFy+R0mSSh4w8PtNj1itMICs4bMtiaE6INo+G0cs B6vapFBZvhWHtEIpnwvM2j3MtYhKRAUhqa3i/Utn+kW5XZrSN/I36Y8DKTBWabXmOqBY 52Dg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=hOEE6jkM; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from snail.vger.email (snail.vger.email. [23.128.96.37]) by mx.google.com with ESMTPS id c18-20020a170903235200b001d05450e410si7743263plh.208.2023.12.05.08.55.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 08:55:36 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) client-ip=23.128.96.37; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=hOEE6jkM; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 8C52C8072170; Tue, 5 Dec 2023 08:52:13 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345584AbjLEQv7 (ORCPT + 99 others); Tue, 5 Dec 2023 11:51:59 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35192 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232249AbjLEQvh (ORCPT ); Tue, 5 Dec 2023 11:51:37 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 584AB1AA for ; Tue, 5 Dec 2023 08:51:44 -0800 (PST) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 17A91C433C9; Tue, 5 Dec 2023 16:51:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1701795103; bh=+jSB6ryQw/tAoaW0f6Dn8f5r/j3Y5hYXa/dEZzeKHsY=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=hOEE6jkMfBUEtmzmA1a20oPe1c2o7yUFkOp3Soydq20VtoqeV10lZHXQxQw3NJ6p1 mcvf+CiN214KhEBoLcwbRtiKYBguX7jap49c859W398E0hXSgm/jUIUMH6Q+qVFzOn KtG8RFvhr1LwgmBNfKeAxRaGLfB6HY+TOnmTADBzaQfMqd/JgGgRoxbyi5b64Da9KD Ch6uNqSr2G36ujJPwYSxpiqlBe/K29leQ5Qs3lQOBEg0lC2yl/TTN5UchYOmzk3n96 7pqwn1GNdrWxsti1Iq7SFdFrLQb5TlfxVb4MMPiMNEvdYcwT5UT5AzANTw0M0JdKnp yzbxilEmRdBXA== From: Mark Brown Date: Tue, 05 Dec 2023 16:48:08 +0000 Subject: [PATCH v3 10/21] arm64/fpsimd: Enable host kernel access to FPMR MIME-Version: 1.0 Message-Id: <20231205-arm64-2023-dpisa-v3-10-dbcbcd867a7f@kernel.org> References: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> In-Reply-To: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , James Morse , Suzuki K Poulose , Jonathan Corbet , Shuah Khan Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvmarm@lists.linux.dev, linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org, Mark Brown X-Mailer: b4 0.13-dev-5c066 X-Developer-Signature: v=1; a=openpgp-sha256; l=1057; i=broonie@kernel.org; h=from:subject:message-id; bh=+jSB6ryQw/tAoaW0f6Dn8f5r/j3Y5hYXa/dEZzeKHsY=; b=owEBbQGS/pANAwAKASTWi3JdVIfQAcsmYgBlb1Twi1WtlQKKaA5nkPHlUe3V53qwJKTbWM22bF4r r3HvagmJATMEAAEKAB0WIQSt5miqZ1cYtZ/in+ok1otyXVSH0AUCZW9U8AAKCRAk1otyXVSH0JiEB/ 9XRJ2vuPLH6rhHC2Qunzpjix2wygMNt0T1tUgLYOD0GoobfEhVwybTH5ELOpKpZVcm0nQBB3xNGgWg 5MQWDMHDxejQpv0QOviokbMj+oOWuUQEEvTOPs8Tpe/ssY+k3YM4atL8a9ITybuuOv3gnvSX2pfAls MHcW4FTIlOukWiGyYs+PDgvBanU8KETC6LiA9eAa/zAe+3pIFYdYa+6kg+TggcotOuRTJfPz7+ryGY kUOK4r6FI80TFQn8IUK4i3/toQ8/FL9eztBf0SE2wydjH4wGNGGMyqEzx8jlq6/fqyjUtnTRNk6pwX chgJQUTMrr/hJkNvG8ydGY3SfPgOkJ X-Developer-Key: i=broonie@kernel.org; a=openpgp; fpr=3F2568AAC26998F9E813A1C5C3F436CA30F5D8EB X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Tue, 05 Dec 2023 08:52:14 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1784461746499507413 X-GMAIL-MSGID: 1784461746499507413 FEAT_FPMR provides a new generally accessible architectural register FPMR. This is only accessible to EL0 and EL1 when HCRX_EL2.EnFPM is set to 1, do this when the host is running. The guest part will be done along with context switching the new register and exposing it via guest management. Signed-off-by: Mark Brown --- arch/arm64/include/asm/kvm_arm.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/include/asm/kvm_arm.h b/arch/arm64/include/asm/kvm_arm.h index b85f46a73e21..9f9239d86900 100644 --- a/arch/arm64/include/asm/kvm_arm.h +++ b/arch/arm64/include/asm/kvm_arm.h @@ -105,7 +105,7 @@ #define HCRX_GUEST_FLAGS \ (HCRX_EL2_SMPME | HCRX_EL2_TCR2En | \ (cpus_have_final_cap(ARM64_HAS_MOPS) ? (HCRX_EL2_MSCEn | HCRX_EL2_MCE2) : 0)) -#define HCRX_HOST_FLAGS (HCRX_EL2_MSCEn | HCRX_EL2_TCR2En) +#define HCRX_HOST_FLAGS (HCRX_EL2_MSCEn | HCRX_EL2_TCR2En | HCRX_EL2_EnFPM) /* TCR_EL2 Registers bits */ #define TCR_EL2_RES1 ((1U << 31) | (1 << 23)) From patchwork Tue Dec 5 16:48:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Brown X-Patchwork-Id: 174124 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:bcd1:0:b0:403:3b70:6f57 with SMTP id r17csp3563047vqy; Tue, 5 Dec 2023 08:52:38 -0800 (PST) X-Google-Smtp-Source: AGHT+IFhzciNc0eoxdsyJaVR1M56rxnwmNsS3PATrbeoHMS44/TST6aduFE1J2ARUGY4Mz+oxff1 X-Received: by 2002:a05:6a20:12ce:b0:18f:97c:b9f5 with SMTP id v14-20020a056a2012ce00b0018f097cb9f5mr4438956pzg.79.1701795158345; Tue, 05 Dec 2023 08:52:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701795158; cv=none; d=google.com; s=arc-20160816; b=EYbFpRgY/OYwvMMT50vIjZ/WAQ5+sscTAP/Vb/VaQqAiiPtCaG4hO/bjbE0o/DM5gn 9Jx+huOwWd52Tf19wEBj90E9sD4jN4ewJoGlyy7V9YCriKkaGWZLsFP6ubMvHfd1pYr4 kalkHaXC68taSVag9GQviPPUFWF7AGsa33qvJfzDrHRP4vGpcMZqP6JGHHq3fcnAjyKv ClWwndl2tyKvGsNX98zA8Qh2mjpIE4pRwkQcoI8t+fyFzZng4cwwu/jC3a0yLbK+LyXB CyXfKsZ/0pC/fi68quehcOSm7Ho/R1hyudwvJpRiwwO28aO4LJ4PN3O2ml4dZWhOhcVv QpJA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=MSgdpgY0tMG1Crremz6jR/jzkS7LU2zqdrXCVZCrFME=; fh=YkHi0OKyzCxiOYBLKPiYIDkwR1WpYn/xs8G+kcuZCxc=; b=jXAkzycZGTTmbDX8/Dt76mqEcRZsetwXlm3nZ5iImjx8pe60mKo0oQ+TkGqVogDerf bdHh9+baI/AMYkpDxzwuiMJFbZ+kWodtWQJiyIrqrt81xJlfvvgLIt+dtKZAaFn5fqrM Es48TC4zNOrf7UAKaKDM+ECdanEWLJEcVrO++XwZgLZsEoZfOmGMriABcYovZBvVuNIh HmNxhQg5m9EOWZDefrwTASroBeoJMdVFdQ3qZxSE0WSWVXmjvn68wXHGJGhHdvAVzv92 f9zogFNnKOcQOIspXIQgMc3SedZR7lthMfGsXwGlLfEbdVCG0nFcOGUvKgOvoa1f9/HG FZnQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=ARVVaqwB; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from pete.vger.email (pete.vger.email. [23.128.96.36]) by mx.google.com with ESMTPS id j12-20020a170903024c00b001d06da42b0csi6294899plh.503.2023.12.05.08.52.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 08:52:38 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) client-ip=23.128.96.36; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=ARVVaqwB; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by pete.vger.email (Postfix) with ESMTP id C7C008181B97; Tue, 5 Dec 2023 08:52:29 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at pete.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345276AbjLEQwD (ORCPT + 99 others); Tue, 5 Dec 2023 11:52:03 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48508 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345252AbjLEQvl (ORCPT ); Tue, 5 Dec 2023 11:51:41 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 55D40D5B for ; Tue, 5 Dec 2023 08:51:47 -0800 (PST) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3A2C0C433D9; Tue, 5 Dec 2023 16:51:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1701795107; bh=8aMhtvWd2U4DgD7OsoWitXafC2Gl0m4G3yGyGq+lQbA=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=ARVVaqwBsRNjIG6UoLNTooDt9ZkQhpDEELPZinsTgX67bv+B1qNQ1EtNya1Gi20YY 79zoOmKES3Dn+7OKrF2wLaMVJ5zbctUq/+0gAB0eEnM17jGkcVm+6y/dxDOr1KgwnW ygMveDFyBvmXHwk/F/6KIx1Kos6WyK6U7xqB46gzETG2YZsKOLo0EavKvrH2Oc7d3I 8ObUXE11tf75hmFfBRNh8GjVpVvzWwGpomOusMQcOjUebBQTPK8eAqVJpjgifLvM4T 1KuWvg8Uo7pSiIdekNQIgwkJKRARKUn+0pXF07aSwemxZ6FGgfOQDMbTMX1Cu25mK+ Uf7p2Fmj4rDog== From: Mark Brown Date: Tue, 05 Dec 2023 16:48:09 +0000 Subject: [PATCH v3 11/21] arm64/fpsimd: Support FEAT_FPMR MIME-Version: 1.0 Message-Id: <20231205-arm64-2023-dpisa-v3-11-dbcbcd867a7f@kernel.org> References: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> In-Reply-To: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , James Morse , Suzuki K Poulose , Jonathan Corbet , Shuah Khan Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvmarm@lists.linux.dev, linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org, Mark Brown X-Mailer: b4 0.13-dev-5c066 X-Developer-Signature: v=1; a=openpgp-sha256; l=6717; i=broonie@kernel.org; h=from:subject:message-id; bh=8aMhtvWd2U4DgD7OsoWitXafC2Gl0m4G3yGyGq+lQbA=; b=owEBbQGS/pANAwAKASTWi3JdVIfQAcsmYgBlb1Tx4ufTMGq++6xAGUsvJwEfm2UexNq/AP6QrS5l qw5qM2GJATMEAAEKAB0WIQSt5miqZ1cYtZ/in+ok1otyXVSH0AUCZW9U8QAKCRAk1otyXVSH0AhvB/ 4pU53JQZCGqkuHtTf3gxhaCiAMud/JEGHdQ/7sfyy3RH6NZ3Hk2Nq4rqfrMfyPN4qStSERJsli6VqV tY0FkwjD4CXalsKYcszrxDzZhN74qJYURRnQ6idMRtfmtrY3X9Q6MT+iOQ1HSu4H0NfdIjzwF6oJer nglQJ0nSQnzkPNclnYh3CY21L62NeyZ+tOoFARhvo4l4/CoQ3653uw2hKnQcQ14GXnLSzPgM9Zbf97 9xPrzvLxbPR0x/rjV+XRAPotz2tLCYcsLL3Z4I1Zg5xrBl8BbLG/3PM2tVQ1v2DTTf5VsbMY5UpSfN SS/nEw+qXNIJ0RgRyMNMGm9WlFMxV6 X-Developer-Key: i=broonie@kernel.org; a=openpgp; fpr=3F2568AAC26998F9E813A1C5C3F436CA30F5D8EB X-Spam-Status: No, score=-1.2 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on pete.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (pete.vger.email [0.0.0.0]); Tue, 05 Dec 2023 08:52:30 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1784461560023616160 X-GMAIL-MSGID: 1784461560023616160 FEAT_FPMR defines a new EL0 accessible register FPMR use to configure the FP8 related features added to the architecture at the same time. Detect support for this register and context switch it for EL0 when present. Due to the sharing of responsibility for saving floating point state between the host kernel and KVM FP8 support is not yet implemented in KVM and a stub similar to that used for SVCR is provided for FPMR in order to avoid bisection issues. To make it easier to share host state with the hypervisor we store FPMR immediately after the base floating point state, existing usage means that it is not practical to extend that directly. Signed-off-by: Mark Brown --- arch/arm64/include/asm/cpufeature.h | 5 +++++ arch/arm64/include/asm/fpsimd.h | 2 ++ arch/arm64/include/asm/kvm_host.h | 1 + arch/arm64/include/asm/processor.h | 2 ++ arch/arm64/kernel/cpufeature.c | 9 +++++++++ arch/arm64/kernel/fpsimd.c | 13 +++++++++++++ arch/arm64/kvm/fpsimd.c | 1 + arch/arm64/tools/cpucaps | 1 + 8 files changed, 34 insertions(+) diff --git a/arch/arm64/include/asm/cpufeature.h b/arch/arm64/include/asm/cpufeature.h index f6d416fe49b0..8e83cb1e6c7c 100644 --- a/arch/arm64/include/asm/cpufeature.h +++ b/arch/arm64/include/asm/cpufeature.h @@ -767,6 +767,11 @@ static __always_inline bool system_supports_tpidr2(void) return system_supports_sme(); } +static __always_inline bool system_supports_fpmr(void) +{ + return alternative_has_cap_unlikely(ARM64_HAS_FPMR); +} + static __always_inline bool system_supports_cnp(void) { return alternative_has_cap_unlikely(ARM64_HAS_CNP); diff --git a/arch/arm64/include/asm/fpsimd.h b/arch/arm64/include/asm/fpsimd.h index 50e5f25d3024..74afca3bd312 100644 --- a/arch/arm64/include/asm/fpsimd.h +++ b/arch/arm64/include/asm/fpsimd.h @@ -89,6 +89,7 @@ struct cpu_fp_state { void *sve_state; void *sme_state; u64 *svcr; + u64 *fpmr; unsigned int sve_vl; unsigned int sme_vl; enum fp_type *fp_type; @@ -154,6 +155,7 @@ extern void cpu_enable_sve(const struct arm64_cpu_capabilities *__unused); extern void cpu_enable_sme(const struct arm64_cpu_capabilities *__unused); extern void cpu_enable_sme2(const struct arm64_cpu_capabilities *__unused); extern void cpu_enable_fa64(const struct arm64_cpu_capabilities *__unused); +extern void cpu_enable_fpmr(const struct arm64_cpu_capabilities *__unused); extern u64 read_smcr_features(void); diff --git a/arch/arm64/include/asm/kvm_host.h b/arch/arm64/include/asm/kvm_host.h index 824f29f04916..f8d98985a39c 100644 --- a/arch/arm64/include/asm/kvm_host.h +++ b/arch/arm64/include/asm/kvm_host.h @@ -517,6 +517,7 @@ struct kvm_vcpu_arch { enum fp_type fp_type; unsigned int sve_max_vl; u64 svcr; + u64 fpmr; /* Stage 2 paging state used by the hardware on next switch */ struct kvm_s2_mmu *hw_mmu; diff --git a/arch/arm64/include/asm/processor.h b/arch/arm64/include/asm/processor.h index e5bc54522e71..dd3a5b29f76e 100644 --- a/arch/arm64/include/asm/processor.h +++ b/arch/arm64/include/asm/processor.h @@ -158,6 +158,8 @@ struct thread_struct { struct user_fpsimd_state fpsimd_state; } uw; + u64 fpmr; /* Adjacent to fpsimd_state for KVM */ + enum fp_type fp_type; /* registers FPSIMD or SVE? */ unsigned int fpsimd_cpu; void *sve_state; /* SVE registers, if any */ diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c index c8d38e5ce997..ea0b680792de 100644 --- a/arch/arm64/kernel/cpufeature.c +++ b/arch/arm64/kernel/cpufeature.c @@ -272,6 +272,7 @@ static const struct arm64_ftr_bits ftr_id_aa64pfr1[] = { }; static const struct arm64_ftr_bits ftr_id_aa64pfr2[] = { + ARM64_FTR_BITS(FTR_VISIBLE, FTR_STRICT, FTR_LOWER_SAFE, ID_AA64PFR2_EL1_FPMR_SHIFT, 4, 0), ARM64_FTR_END, }; @@ -2759,6 +2760,14 @@ static const struct arm64_cpu_capabilities arm64_features[] = { .matches = has_cpuid_feature, ARM64_CPUID_FIELDS(ID_AA64MMFR2_EL1, EVT, IMP) }, + { + .desc = "FPMR", + .type = ARM64_CPUCAP_SYSTEM_FEATURE, + .capability = ARM64_HAS_FPMR, + .matches = has_cpuid_feature, + .cpu_enable = cpu_enable_fpmr, + ARM64_CPUID_FIELDS(ID_AA64PFR2_EL1, FPMR, IMP) + }, {}, }; diff --git a/arch/arm64/kernel/fpsimd.c b/arch/arm64/kernel/fpsimd.c index 1559c706d32d..2a6abd6423f7 100644 --- a/arch/arm64/kernel/fpsimd.c +++ b/arch/arm64/kernel/fpsimd.c @@ -385,6 +385,9 @@ static void task_fpsimd_load(void) WARN_ON(!system_supports_fpsimd()); WARN_ON(!have_cpu_fpsimd_context()); + if (system_supports_fpmr()) + write_sysreg_s(current->thread.fpmr, SYS_FPMR); + if (system_supports_sve() || system_supports_sme()) { switch (current->thread.fp_type) { case FP_STATE_FPSIMD: @@ -472,6 +475,9 @@ static void fpsimd_save(void) if (test_thread_flag(TIF_FOREIGN_FPSTATE)) return; + if (system_supports_fpmr()) + *(last->fpmr) = read_sysreg_s(SYS_FPMR); + /* * If a task is in a syscall the ABI allows us to only * preserve the state shared with FPSIMD so don't bother @@ -714,6 +720,12 @@ static void sve_to_fpsimd(struct task_struct *task) } } +void cpu_enable_fpmr(const struct arm64_cpu_capabilities *__always_unused p) +{ + write_sysreg_s(read_sysreg_s(SYS_SCTLR_EL1) | SCTLR_EL1_EnFPM_MASK, + SYS_SCTLR_EL1); +} + #ifdef CONFIG_ARM64_SVE /* * Call __sve_free() directly only if you know task can't be scheduled @@ -1671,6 +1683,7 @@ static void fpsimd_bind_task_to_cpu(void) last->sve_vl = task_get_sve_vl(current); last->sme_vl = task_get_sme_vl(current); last->svcr = ¤t->thread.svcr; + last->fpmr = ¤t->thread.fpmr; last->fp_type = ¤t->thread.fp_type; last->to_save = FP_STATE_CURRENT; current->thread.fpsimd_cpu = smp_processor_id(); diff --git a/arch/arm64/kvm/fpsimd.c b/arch/arm64/kvm/fpsimd.c index 8c1d0d4853df..e3e611e30e91 100644 --- a/arch/arm64/kvm/fpsimd.c +++ b/arch/arm64/kvm/fpsimd.c @@ -153,6 +153,7 @@ void kvm_arch_vcpu_ctxsync_fp(struct kvm_vcpu *vcpu) fp_state.sve_vl = vcpu->arch.sve_max_vl; fp_state.sme_state = NULL; fp_state.svcr = &vcpu->arch.svcr; + fp_state.fpmr = &vcpu->arch.fpmr; fp_state.fp_type = &vcpu->arch.fp_type; if (vcpu_has_sve(vcpu)) diff --git a/arch/arm64/tools/cpucaps b/arch/arm64/tools/cpucaps index b98c38288a9d..7a249a950bbc 100644 --- a/arch/arm64/tools/cpucaps +++ b/arch/arm64/tools/cpucaps @@ -26,6 +26,7 @@ HAS_ECV HAS_ECV_CNTPOFF HAS_EPAN HAS_EVT +HAS_FPMR HAS_FGT HAS_FPSIMD HAS_GENERIC_AUTH From patchwork Tue Dec 5 16:48:10 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Brown X-Patchwork-Id: 174123 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:bcd1:0:b0:403:3b70:6f57 with SMTP id r17csp3563039vqy; Tue, 5 Dec 2023 08:52:37 -0800 (PST) X-Google-Smtp-Source: AGHT+IGO7RfyLpw841WckOvqcnfEaDUJbqyP4zjXaASIeSgXjzvEO536eQEYAyPC9gFBDSH+HK1M X-Received: by 2002:a05:6a00:2403:b0:6ce:2732:1e06 with SMTP id z3-20020a056a00240300b006ce27321e06mr1294000pfh.64.1701795156794; Tue, 05 Dec 2023 08:52:36 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701795156; cv=none; d=google.com; s=arc-20160816; b=xY5+cEq0UcSa6050oCHnZju+vOFIUgJGEdYm2ZIKW8KDB1ERLU22JkCyTClj2JNsnX TdqBrHam2JTvzwEoy416kt+FO2scZwlZyzSBtl5Zt5andmslupCiMzfBx/4SuM9HLxd/ 5HlC+9iusMk1dB29wHFzj3M/RxAZBoDInsX1gWZ4gFAW71hdr6l9Jy4zI9Qdu2SKYgWD +kXSEf3JsujirjHORm9CSUUvDH0vwR4xMWeLAxB0LojawaMaZKkBoJwr7xjWtoIC1jsd oRbIv9are7RC85gOPVdXTmpLeSRihpNhjHvTWK7Z8vKyAQPhugHOO06BjelPHSo1W9Xl aXlQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=vhOaaN7NB4edNzer8tCf/q/rUeYsg5qgftXldjKTk1w=; fh=YkHi0OKyzCxiOYBLKPiYIDkwR1WpYn/xs8G+kcuZCxc=; b=o2jzEUen9mlpVUpUClDSIdBHd2wlctYMGK/zjSFdp0sq44BDxgHrdyU2rMwsC4nT2y Zb7jaZuz+5KCTSo+ZtfKSRn/bToTuAIxDNL39o3A9NEFvIrA1U5JEmLpGwHRtCIFsxF5 wZvv0xvY7ZKblDu2GkQU6UnLAIaj9xv8/hHd5n9KYX5jbfVR7r3/qr0cbXZ0804PiIo7 6slaAdlhWVf62fhwjLH2cnEvWFdVyrMh2/bvUpWF1qr4/EV3Wv8zorHrZUJJDT2h62IK tejFdAIi7Vtu7NwQPma5Z3wCr9VeE4PkZ8HNuJL43VtCWDSOHBEOFLf9mFDmo+EoDLfg rruA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=T34l3XKn; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.35 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from groat.vger.email (groat.vger.email. [23.128.96.35]) by mx.google.com with ESMTPS id q23-20020a62e117000000b006cb6cc08e3fsi9638226pfh.387.2023.12.05.08.52.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 08:52:36 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.35 as permitted sender) client-ip=23.128.96.35; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=T34l3XKn; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.35 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by groat.vger.email (Postfix) with ESMTP id 931FC80A97E1; Tue, 5 Dec 2023 08:52:27 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at groat.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235123AbjLEQwO (ORCPT + 99 others); Tue, 5 Dec 2023 11:52:14 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33652 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235047AbjLEQvt (ORCPT ); Tue, 5 Dec 2023 11:51:49 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9BA9A10F3 for ; Tue, 5 Dec 2023 08:51:50 -0800 (PST) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6CAB2C433CA; Tue, 5 Dec 2023 16:51:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1701795110; bh=qb52W/FnN/1SulYmCofB+kYw3kMDdBBbntUr0aosnTs=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=T34l3XKnE5gECQM5L6taQY0p3+GIfL+S5exCF0e6AFcFvBu3gn9UJbRw0Gc29c1Vl +ObdIVRfzPk4qMkiS1vL6H3bIidZ1hgR1toS8QwCsOh2erkxs5gjwHzSB+mD9WNG6b nngGk3RBvg9lRAnm4p7XL5nuYdxK2+i7l7dvURwxpcKn+zbC/wHqaKJP7atHlpoc/a Kr3ODfek+6ZH6jAWGlufsaJKNn1G2SPeqMHY7bEfR6ntwj4YqakLQ0E4DeMZj6l/7M zFz2VhAkwGY6ZLXVlJLQn+qJo8s8SRrA/IjxP9xGDjrLQuApw9RRcgY98gXmQ+I9zH XqKr06C88W42A== From: Mark Brown Date: Tue, 05 Dec 2023 16:48:10 +0000 Subject: [PATCH v3 12/21] arm64/signal: Add FPMR signal handling MIME-Version: 1.0 Message-Id: <20231205-arm64-2023-dpisa-v3-12-dbcbcd867a7f@kernel.org> References: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> In-Reply-To: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , James Morse , Suzuki K Poulose , Jonathan Corbet , Shuah Khan Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvmarm@lists.linux.dev, linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org, Mark Brown X-Mailer: b4 0.13-dev-5c066 X-Developer-Signature: v=1; a=openpgp-sha256; l=4170; i=broonie@kernel.org; h=from:subject:message-id; bh=qb52W/FnN/1SulYmCofB+kYw3kMDdBBbntUr0aosnTs=; b=owEBbQGS/pANAwAKASTWi3JdVIfQAcsmYgBlb1Ty3DJCPBiQ3pPRLeMudBSQufj2eMfHt4Hg/rab nrar9cmJATMEAAEKAB0WIQSt5miqZ1cYtZ/in+ok1otyXVSH0AUCZW9U8gAKCRAk1otyXVSH0CMdB/ 9rvTD79SVpqdgCB6JORythRzbySDQ9lA+ijLtJeO9lOtj5I4QJd2qCeJOe5/R26gBSZqMJVXtMZ2Jt Ts6CsETSCV0v0uFZi7Liz76BbntjU/6BhVfl+jADUtNdfWul4KyYo+1RPAyzyoaV8l7tzP2PAEbtNZ sEuOifI13xNo7pDYGq0hKJ5ehmE8IN9D93p+rjMM4vbiQS7jdnahmWl5Ha/mZJWz+pQC2nKvY1fy1j 3i4keDlZ5CC45MYQ9UMnj0JkdGSRSkSZEhg5BiOjxjtPHOaktdCEWPaDmOBPmipBXrwtuA1kHWbkap Oni+rqtXUOWMXhiE9BLnGa+mmGIU8w X-Developer-Key: i=broonie@kernel.org; a=openpgp; fpr=3F2568AAC26998F9E813A1C5C3F436CA30F5D8EB X-Spam-Status: No, score=-1.2 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on groat.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (groat.vger.email [0.0.0.0]); Tue, 05 Dec 2023 08:52:27 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1784461558516504316 X-GMAIL-MSGID: 1784461558516504316 Expose FPMR in the signal context on systems where it is supported. The kernel validates the exact size of the FPSIMD registers so we can't readily add it to fpsimd_context without disruption. Signed-off-by: Mark Brown --- arch/arm64/include/uapi/asm/sigcontext.h | 8 +++++ arch/arm64/kernel/signal.c | 59 ++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) diff --git a/arch/arm64/include/uapi/asm/sigcontext.h b/arch/arm64/include/uapi/asm/sigcontext.h index f23c1dc3f002..8a45b7a411e0 100644 --- a/arch/arm64/include/uapi/asm/sigcontext.h +++ b/arch/arm64/include/uapi/asm/sigcontext.h @@ -152,6 +152,14 @@ struct tpidr2_context { __u64 tpidr2; }; +/* FPMR context */ +#define FPMR_MAGIC 0x46504d52 + +struct fpmr_context { + struct _aarch64_ctx head; + __u64 fpmr; +}; + #define ZA_MAGIC 0x54366345 struct za_context { diff --git a/arch/arm64/kernel/signal.c b/arch/arm64/kernel/signal.c index 0e8beb3349ea..e8c808afcc8a 100644 --- a/arch/arm64/kernel/signal.c +++ b/arch/arm64/kernel/signal.c @@ -60,6 +60,7 @@ struct rt_sigframe_user_layout { unsigned long tpidr2_offset; unsigned long za_offset; unsigned long zt_offset; + unsigned long fpmr_offset; unsigned long extra_offset; unsigned long end_offset; }; @@ -182,6 +183,8 @@ struct user_ctxs { u32 za_size; struct zt_context __user *zt; u32 zt_size; + struct fpmr_context __user *fpmr; + u32 fpmr_size; }; static int preserve_fpsimd_context(struct fpsimd_context __user *ctx) @@ -227,6 +230,33 @@ static int restore_fpsimd_context(struct user_ctxs *user) return err ? -EFAULT : 0; } +static int preserve_fpmr_context(struct fpmr_context __user *ctx) +{ + int err = 0; + + current->thread.fpmr = read_sysreg_s(SYS_FPMR); + + __put_user_error(FPMR_MAGIC, &ctx->head.magic, err); + __put_user_error(sizeof(*ctx), &ctx->head.size, err); + __put_user_error(current->thread.fpmr, &ctx->fpmr, err); + + return err; +} + +static int restore_fpmr_context(struct user_ctxs *user) +{ + u64 fpmr; + int err = 0; + + if (user->fpmr_size != sizeof(*user->fpmr)) + return -EINVAL; + + __get_user_error(fpmr, &user->fpmr->fpmr, err); + if (!err) + write_sysreg_s(fpmr, SYS_FPMR); + + return err; +} #ifdef CONFIG_ARM64_SVE @@ -590,6 +620,7 @@ static int parse_user_sigframe(struct user_ctxs *user, user->tpidr2 = NULL; user->za = NULL; user->zt = NULL; + user->fpmr = NULL; if (!IS_ALIGNED((unsigned long)base, 16)) goto invalid; @@ -684,6 +715,17 @@ static int parse_user_sigframe(struct user_ctxs *user, user->zt_size = size; break; + case FPMR_MAGIC: + if (!system_supports_fpmr()) + goto invalid; + + if (user->fpmr) + goto invalid; + + user->fpmr = (struct fpmr_context __user *)head; + user->fpmr_size = size; + break; + case EXTRA_MAGIC: if (have_extra_context) goto invalid; @@ -806,6 +848,9 @@ static int restore_sigframe(struct pt_regs *regs, if (err == 0 && system_supports_tpidr2() && user.tpidr2) err = restore_tpidr2_context(&user); + if (err == 0 && system_supports_fpmr() && user.fpmr) + err = restore_fpmr_context(&user); + if (err == 0 && system_supports_sme() && user.za) err = restore_za_context(&user); @@ -928,6 +973,13 @@ static int setup_sigframe_layout(struct rt_sigframe_user_layout *user, } } + if (system_supports_fpmr()) { + err = sigframe_alloc(user, &user->fpmr_offset, + sizeof(struct fpmr_context)); + if (err) + return err; + } + return sigframe_alloc_end(user); } @@ -983,6 +1035,13 @@ static int setup_sigframe(struct rt_sigframe_user_layout *user, err |= preserve_tpidr2_context(tpidr2_ctx); } + /* FPMR if supported */ + if (system_supports_fpmr() && err == 0) { + struct fpmr_context __user *fpmr_ctx = + apply_user_offset(user, user->fpmr_offset); + err |= preserve_fpmr_context(fpmr_ctx); + } + /* ZA state if present */ if (system_supports_sme() && err == 0 && user->za_offset) { struct za_context __user *za_ctx = From patchwork Tue Dec 5 16:48:11 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Brown X-Patchwork-Id: 174125 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:bcd1:0:b0:403:3b70:6f57 with SMTP id r17csp3563086vqy; Tue, 5 Dec 2023 08:52:42 -0800 (PST) X-Google-Smtp-Source: AGHT+IH75lvXVRJOKiMkqwy2YOIowvd3x3NV4ovpVlazMFzrxWZSv0KEJ/Giq5k2fBMyzSJF/cpv X-Received: by 2002:a05:6808:90e:b0:3b8:b063:a1de with SMTP id w14-20020a056808090e00b003b8b063a1demr6663420oih.104.1701795162368; Tue, 05 Dec 2023 08:52:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701795162; cv=none; d=google.com; s=arc-20160816; b=UacUmGMw2LfaPtfBn3LmIbpyLqLYod5+jnHyb/ASrLcZnTig9Ia4v+0aVqqMtXLaDL hzf17YxT8v+GI+ekWWUc1TxMlsq+keRZjWKCB4lVni7i2nogOMqaTNQslEGdxKrC/KO8 OlA60TlRiJLe2SjvN4iviYTHR0PYgYHaJBQx6VD6OrUGTdi+3wMifIdygjfwA7SfUVUt XYX/WLqEIiwJEBZBIMxddPUHUhPTxERnahyf2oKwdyYUn9s4mS/cgGumJoEPSlIstHiY ++I71ZdcEGlIN7A7wBrriNCcfi4vpOF+rH157mopNtIgEYHaCwvj1XKabOUS1pMAULWp l7Tg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=iPe+/zyLr9ruA72qwNnTjsgbh3WWtM7u8rWyRJzkeew=; fh=YkHi0OKyzCxiOYBLKPiYIDkwR1WpYn/xs8G+kcuZCxc=; b=bHrrESvOUF1chQ4NATWnkmwh7/rXSy2H/OvYan4i387X3gZ55xm3QHr32BzF9jfdr6 IOgF4UhGGBiPqzGkG2Qq//UfAWyndYxn73/0ORIBIblOUzT5m9kMsizJJsFCO33GI9o/ KvUTjtIVyOS7QcbKzRCSMQdpZ+5ZbZNz047nTi2S8ZpYko77lUCotcliSY+EecRRW06f vTM05vMlMHO2RjQLbhLv+9ikpqW+lWNhaLOoyd7WNcdMGBoX0f/96BTM2taOnBA5dgHL fRjcWI1Uc2zf44eaIAGwzNMf52speWwmyAwD1VOx7ojpVTPyjVLvjtKadmXLG+jKgpE2 WelA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=aWbOTIp7; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from lipwig.vger.email (lipwig.vger.email. [2620:137:e000::3:3]) by mx.google.com with ESMTPS id z19-20020aa785d3000000b006cdec3b3b1fsi1061470pfn.235.2023.12.05.08.52.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 08:52:42 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) client-ip=2620:137:e000::3:3; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=aWbOTIp7; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by lipwig.vger.email (Postfix) with ESMTP id A1DE0803511E; Tue, 5 Dec 2023 08:52:36 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at lipwig.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345383AbjLEQwR (ORCPT + 99 others); Tue, 5 Dec 2023 11:52:17 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35168 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345468AbjLEQvz (ORCPT ); Tue, 5 Dec 2023 11:51:55 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1006F1700 for ; Tue, 5 Dec 2023 08:51:53 -0800 (PST) Received: by smtp.kernel.org (Postfix) with ESMTPSA id BCC32C433C8; Tue, 5 Dec 2023 16:51:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1701795113; bh=2lwb/HSWzM5tgdqcRY+V9adtYXXgaHL2EUDsgIl8iAQ=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=aWbOTIp7BAeM7M9edFghNOB9zuNmHhjVLPEWWnH2qibCMpqrzqRl9/24fBH+GL1Wh 74xW+/ox4uc53MhyFjurT11KRQsGatcOjqVWPv5Iw1/ZCs4Dn3o5todVr/L1b3V6E3 Bgguk6AVYhQx+3Zqb4Amaamj4rSGzYsvwxO4D6o4Y0sVLX2TuFgXerqEFvtQcx49JM vgVhwi7/4vMztnywEtg+4n9PwiP+LqF6bzigY9TDIe55vm3n/QqRQRJtF0vzHrvKyP Zl2VtdpHsSc38OKVEWirv4yYFRqEpN9q75atScCaEp2ZrG93gXiYIvjefp6J2LsUdP 7EKuUnRRoCIbQ== From: Mark Brown Date: Tue, 05 Dec 2023 16:48:11 +0000 Subject: [PATCH v3 13/21] arm64/ptrace: Expose FPMR via ptrace MIME-Version: 1.0 Message-Id: <20231205-arm64-2023-dpisa-v3-13-dbcbcd867a7f@kernel.org> References: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> In-Reply-To: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , James Morse , Suzuki K Poulose , Jonathan Corbet , Shuah Khan Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvmarm@lists.linux.dev, linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org, Mark Brown X-Mailer: b4 0.13-dev-5c066 X-Developer-Signature: v=1; a=openpgp-sha256; l=2850; i=broonie@kernel.org; h=from:subject:message-id; bh=2lwb/HSWzM5tgdqcRY+V9adtYXXgaHL2EUDsgIl8iAQ=; b=owEBbQGS/pANAwAKASTWi3JdVIfQAcsmYgBlb1TzkcQsYbxC6pvJ8YS6+FKAx70IH3oLdIv7YcTz BBdO84CJATMEAAEKAB0WIQSt5miqZ1cYtZ/in+ok1otyXVSH0AUCZW9U8wAKCRAk1otyXVSH0HdIB/ 9FycjVcWV3Ped1Oqok9i3fivLEVtROTv4ppONagRAUwzwUXBksNjPtbFcAze0lRYR4qb3YnaFlkpIh Yjkdaw2q0PSOtqq2Qs5oBbCu7YlvTDNVU8+Zq5z4+lVtwZDEhxUm0KdiZdujatfHAmk17A2sEiVtNe +KEJIp/dZ5lxhuvPOxTy9DblFksEJEWRrpYwY6Gq/CtfbUmXNnfrig+2F6L0hRRl2plNsAyqN6oush +2iZHnI6pcJX9MwbKSFSnV0W3bYslqrW/27+k5wbyMyogz+TnGL8JhNe0lmEzxVr53zyNlJIsK2hWm SIQTuctqYxvsoVsw/kA/vVzrelW4LU X-Developer-Key: i=broonie@kernel.org; a=openpgp; fpr=3F2568AAC26998F9E813A1C5C3F436CA30F5D8EB X-Spam-Status: No, score=-1.2 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lipwig.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (lipwig.vger.email [0.0.0.0]); Tue, 05 Dec 2023 08:52:36 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1784461564353523315 X-GMAIL-MSGID: 1784461564353523315 Add a new regset to expose FPMR via ptrace. It is not added to the FPSIMD registers since that structure is exposed elsewhere without any allowance for extension we don't add there. Signed-off-by: Mark Brown --- arch/arm64/kernel/ptrace.c | 42 ++++++++++++++++++++++++++++++++++++++++++ include/uapi/linux/elf.h | 1 + 2 files changed, 43 insertions(+) diff --git a/arch/arm64/kernel/ptrace.c b/arch/arm64/kernel/ptrace.c index 20d7ef82de90..cfb8a4d213be 100644 --- a/arch/arm64/kernel/ptrace.c +++ b/arch/arm64/kernel/ptrace.c @@ -697,6 +697,39 @@ static int tls_set(struct task_struct *target, const struct user_regset *regset, return ret; } +static int fpmr_get(struct task_struct *target, const struct user_regset *regset, + struct membuf to) +{ + if (!system_supports_fpmr()) + return -EINVAL; + + if (target == current) + fpsimd_preserve_current_state(); + + return membuf_store(&to, target->thread.fpmr); +} + +static int fpmr_set(struct task_struct *target, const struct user_regset *regset, + unsigned int pos, unsigned int count, + const void *kbuf, const void __user *ubuf) +{ + int ret; + unsigned long fpmr; + + if (!system_supports_fpmr()) + return -EINVAL; + + ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf, &fpmr, 0, count); + if (ret) + return ret; + + target->thread.fpmr = fpmr; + + fpsimd_flush_task_state(target); + + return 0; +} + static int system_call_get(struct task_struct *target, const struct user_regset *regset, struct membuf to) @@ -1417,6 +1450,7 @@ enum aarch64_regset { REGSET_HW_BREAK, REGSET_HW_WATCH, #endif + REGSET_FPMR, REGSET_SYSTEM_CALL, #ifdef CONFIG_ARM64_SVE REGSET_SVE, @@ -1495,6 +1529,14 @@ static const struct user_regset aarch64_regsets[] = { .regset_get = system_call_get, .set = system_call_set, }, + [REGSET_FPMR] = { + .core_note_type = NT_ARM_FPMR, + .n = 1, + .size = sizeof(u64), + .align = sizeof(u64), + .regset_get = fpmr_get, + .set = fpmr_set, + }, #ifdef CONFIG_ARM64_SVE [REGSET_SVE] = { /* Scalable Vector Extension */ .core_note_type = NT_ARM_SVE, diff --git a/include/uapi/linux/elf.h b/include/uapi/linux/elf.h index 9417309b7230..b54b313bcf07 100644 --- a/include/uapi/linux/elf.h +++ b/include/uapi/linux/elf.h @@ -440,6 +440,7 @@ typedef struct elf64_shdr { #define NT_ARM_SSVE 0x40b /* ARM Streaming SVE registers */ #define NT_ARM_ZA 0x40c /* ARM SME ZA registers */ #define NT_ARM_ZT 0x40d /* ARM SME ZT registers */ +#define NT_ARM_FPMR 0x40e /* ARM floating point mode register */ #define NT_ARC_V2 0x600 /* ARCv2 accumulator/extra registers */ #define NT_VMCOREDD 0x700 /* Vmcore Device Dump Note */ #define NT_MIPS_DSP 0x800 /* MIPS DSP ASE registers */ From patchwork Tue Dec 5 16:48:12 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Brown X-Patchwork-Id: 174129 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:bcd1:0:b0:403:3b70:6f57 with SMTP id r17csp3563810vqy; Tue, 5 Dec 2023 08:54:05 -0800 (PST) X-Google-Smtp-Source: AGHT+IGNzQmEKLYPxpMT86RQIMz8kKdkjlzPMlqYu2R4RQjJ96o5EwNYtIhNdDZHqFribN629CaE X-Received: by 2002:a17:902:ce86:b0:1d0:76c2:e360 with SMTP id f6-20020a170902ce8600b001d076c2e360mr4770411plg.15.1701795245166; Tue, 05 Dec 2023 08:54:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701795245; cv=none; d=google.com; s=arc-20160816; b=pfmqn+zRr/nWAra8BnbP/VVXObm3R1u7qAMo/s+OspIEBrwx3IGO5+fyTeuXQPRS32 ToNZmNEOiiYtrGtklVbM67jtkFEtV+EsHxaz6d2rEKTBbGhB5IudZkdw3fKVYwQTZQf8 mMiQIbWlnqXbmxPIYuWBeGqHHY85o2Rh9EEmCbb2HrKPpknXRgjqcBZlvrb6/WnUqUdN osS4wsC72ac2tnd1e/7g3nSIj7jOnoJ7jb4h6MO3DQtr0ID/aJF33KoCnpjflcZs+5ru IixLTAa/Vq7wTUKpGqV/Z1SQHm/MNSNneBJwVP25HfDDwHQh/8QIMt1PaSvy9gGEXAn8 cFmw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=FpSC/1KULJ8DXCu86SmVsGRYMJhuIPd/HbdULf/KxeI=; fh=YkHi0OKyzCxiOYBLKPiYIDkwR1WpYn/xs8G+kcuZCxc=; b=rFArQbc9pdw/YK7qVrLE1NaUXP2zZk7bCjPezLftxTe+TMRFNYFknT/e0Hn5Ex5l34 EmJBj0a+uG95IPRvRQ7I5IuzxDic/IYvSmiZ86NU0od/GaGZH6h0AzPtu5kHtB8Q3AUr dYjTsScbb8bhGZbNeYvTcV/bPg7TPlpSeLup1xVQztFyELqCzTiUXd9YPh65WXzNlblX uHH2vYpEfNl9cPW6DvZs1Vj4E2VLVSI0xlX3Gu36JJ7UR2/iMEEaPVbizCt2loB0zV3j 4DvT3zZlT4aZx0TfOSme99NDeAO9gpE72YG/WnoNbHKGjpJRsZ5VTPq8oUZagmQmOJU7 jj6w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=sTX3dENK; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from howler.vger.email (howler.vger.email. [2620:137:e000::3:4]) by mx.google.com with ESMTPS id h11-20020a170902f54b00b001d0029879d0si6800616plf.407.2023.12.05.08.54.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 08:54:05 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) client-ip=2620:137:e000::3:4; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=sTX3dENK; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by howler.vger.email (Postfix) with ESMTP id BDC0180898EB; Tue, 5 Dec 2023 08:52:43 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at howler.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345572AbjLEQw2 (ORCPT + 99 others); Tue, 5 Dec 2023 11:52:28 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35266 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235086AbjLEQv6 (ORCPT ); Tue, 5 Dec 2023 11:51:58 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 88E241723 for ; Tue, 5 Dec 2023 08:51:57 -0800 (PST) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1F4C9C433CA; Tue, 5 Dec 2023 16:51:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1701795117; bh=p49U0rB8BLfyvHeTkXNyujHDJxY2xWglioVFZrQRPgM=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=sTX3dENKdeRtF1TDCs8y57CuUdUdUV5Yqpq5pLii19eel6UrnhjYhv5UnGJS2tBay 5/lTorQnHuv8is7/WteqnSigSIq77qN3CkNimW/tbcXtMj8JGqgsNpfCOBzP3XQvRo 3CPUg3WaB60kqDu9Cpg49eVRpYf1PHj8ZqWkDiYH1jajKI4Ahi4+H8+Lcrwgwi5azs eSm4AqphZvLmUWUm2Cph7COO57fAjNDLW1GI2baCzas0jTdoPT3C7ST/kYCoFuDup6 qVkr8j+SvqCaqn5nf6pR76ZO7WA0f9nluGszCs55PTqC3kW1AduuhIT3cuKuXWlI1j nanSykD90FmCQ== From: Mark Brown Date: Tue, 05 Dec 2023 16:48:12 +0000 Subject: [PATCH v3 14/21] KVM: arm64: Add newly allocated ID registers to register descriptions MIME-Version: 1.0 Message-Id: <20231205-arm64-2023-dpisa-v3-14-dbcbcd867a7f@kernel.org> References: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> In-Reply-To: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , James Morse , Suzuki K Poulose , Jonathan Corbet , Shuah Khan Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvmarm@lists.linux.dev, linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org, Mark Brown X-Mailer: b4 0.13-dev-5c066 X-Developer-Signature: v=1; a=openpgp-sha256; l=1330; i=broonie@kernel.org; h=from:subject:message-id; bh=p49U0rB8BLfyvHeTkXNyujHDJxY2xWglioVFZrQRPgM=; b=owEBbQGS/pANAwAKASTWi3JdVIfQAcsmYgBlb1TzUP2tOulmt+GKIoNK7BO5wHeBgmWKBL4O1ycG 4rmKAeaJATMEAAEKAB0WIQSt5miqZ1cYtZ/in+ok1otyXVSH0AUCZW9U8wAKCRAk1otyXVSH0AieB/ 4rwciN5ooMI0noRDiHmL9dDZOgV1MCc98TuDr0afwIp8KUrLGPP6enL09fvLvOWjemPVd5t4G4qwZ+ LWTYIsa25r3+FLOdSBtYdXOLgTBaNejQ2+EG/Pz0XPIxPFfqipKSyIRpfpmFPHrQVec7tUB84IGYyF aGBwC/mp1F0jInr0dyRaz5cqf8dqe2TikDK6F1vWdQFo7iB8UorTzs+DWZinCzpmFJmpMYjg5r40h9 q0Cd4Ime3WScOJ5VpnDi99dPEm97JmAFYrAPzbjPl8ZIIEPWOpc47q7LcaIDToeIgAJ/04vzti/ax8 Qn/TAdhRc3H5vSE23w+F1tMia1tG6K X-Developer-Key: i=broonie@kernel.org; a=openpgp; fpr=3F2568AAC26998F9E813A1C5C3F436CA30F5D8EB X-Spam-Status: No, score=-1.2 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on howler.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (howler.vger.email [0.0.0.0]); Tue, 05 Dec 2023 08:52:44 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1784461651033830965 X-GMAIL-MSGID: 1784461651033830965 The 2023 architecture extensions have allocated some new ID registers, add them to the KVM system register descriptions so that they are visible to guests. Signed-off-by: Mark Brown --- arch/arm64/kvm/sys_regs.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/arm64/kvm/sys_regs.c b/arch/arm64/kvm/sys_regs.c index 4735e1b37fb3..b843da5e4bb9 100644 --- a/arch/arm64/kvm/sys_regs.c +++ b/arch/arm64/kvm/sys_regs.c @@ -2139,12 +2139,12 @@ static const struct sys_reg_desc sys_reg_descs[] = { ID_AA64PFR0_EL1_AdvSIMD | ID_AA64PFR0_EL1_FP), }, ID_SANITISED(ID_AA64PFR1_EL1), - ID_UNALLOCATED(4,2), + ID_SANITISED(ID_AA64PFR2_EL1), ID_UNALLOCATED(4,3), ID_WRITABLE(ID_AA64ZFR0_EL1, ~ID_AA64ZFR0_EL1_RES0), ID_HIDDEN(ID_AA64SMFR0_EL1), ID_UNALLOCATED(4,6), - ID_UNALLOCATED(4,7), + ID_SANITISED(ID_AA64FPFR0_EL1), /* CRm=5 */ { SYS_DESC(SYS_ID_AA64DFR0_EL1), @@ -2171,7 +2171,7 @@ static const struct sys_reg_desc sys_reg_descs[] = { ID_WRITABLE(ID_AA64ISAR2_EL1, ~(ID_AA64ISAR2_EL1_RES0 | ID_AA64ISAR2_EL1_APA3 | ID_AA64ISAR2_EL1_GPA3)), - ID_UNALLOCATED(6,3), + ID_WRITABLE(ID_AA64ISAR3_EL1, ~ID_AA64ISAR3_EL1_RES0), ID_UNALLOCATED(6,4), ID_UNALLOCATED(6,5), ID_UNALLOCATED(6,6), From patchwork Tue Dec 5 16:48:13 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Brown X-Patchwork-Id: 174127 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:bcd1:0:b0:403:3b70:6f57 with SMTP id r17csp3563423vqy; Tue, 5 Dec 2023 08:53:18 -0800 (PST) X-Google-Smtp-Source: AGHT+IEUjyROO08nccEnRtreujtApvqcG/t3bpQMkRLUL2Ipn5mR+1Sh4LPkj0dZ2ReGSLmpLAj7 X-Received: by 2002:a17:903:1250:b0:1d0:8db6:17cf with SMTP id u16-20020a170903125000b001d08db617cfmr5260692plh.23.1701795198238; Tue, 05 Dec 2023 08:53:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701795198; cv=none; d=google.com; s=arc-20160816; b=oKK07rerf4LW1ObjiTK+f7SidCoQfRNuaHMa+J+6gcqsDMqLoJu6TnFHYBNuwQIime l94rzHiU2h9GtR7RAZCbM/XByh5qPUF4f60cxQJAjlcQ2QttLfpjwQRfKCgnLasAktKB h6eGE8eeW25cAenZWh/ijGWhOfbNjxmGD4zkdj/jkpTtqzuciPIkfNrU4pNBfsNl8F6t s36eC3O3HUrhi9gdUFxGr4n4FRmvE2HLuZo0pDW8X0TGCGoWvWfCnJxGLvJq9zAswzqH Nwt/ziowr4ggWerlY2ambxhCZN6wcRW4Q/QQNncWxj9wLIe9PpGn91Po1bS4E1d5ZFqO 1Pgg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=Valpuv85sSKt7RXmAcILfYCs0b1L4dyLUS9+GYvATRE=; fh=YkHi0OKyzCxiOYBLKPiYIDkwR1WpYn/xs8G+kcuZCxc=; b=aryYoZOdCtYoyKaaPusMmsb9aDegNGPt/iH59UuYwXUdOQleALLFny0BDOqEwTtVcS niU9+Q+gugnS/kxZPi0jqEC/Dg0WkVbTOglgS1qzUnF6yx6MM0L8SympGG+PuwLSy+er l5+8r2GWqgKRdEyR1qUmE8vbkq2xxZevIZMHQsiKthw2iriPXoVTo6lMHSElBQbmmARd qTTGHAxW9K7BM/m8Buh8NQDfnTBJCC82YD2uTgdorg0HLFzTs2k7siTtPTxBLP7tTKJw swQMpqjqL71DGrFn490sNde4SzBnnK8THEOI7Sm6wIzs0XCTJ4N/OVrMtJzsq5TgMdLD HjPw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=YJSZMdbp; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.35 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from groat.vger.email (groat.vger.email. [23.128.96.35]) by mx.google.com with ESMTPS id q4-20020a170902dac400b001cfcf0fcc58si4320915plx.272.2023.12.05.08.53.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 08:53:18 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.35 as permitted sender) client-ip=23.128.96.35; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=YJSZMdbp; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.35 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by groat.vger.email (Postfix) with ESMTP id BF43380A9A9A; Tue, 5 Dec 2023 08:53:07 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at groat.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345327AbjLEQwf (ORCPT + 99 others); Tue, 5 Dec 2023 11:52:35 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48522 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345629AbjLEQwB (ORCPT ); Tue, 5 Dec 2023 11:52:01 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1D76D173C for ; Tue, 5 Dec 2023 08:52:01 -0800 (PST) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9BFC9C433CB; Tue, 5 Dec 2023 16:51:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1701795120; bh=lmwKeOVCrjRhM2ZiQavbt1CMHDfnXPXsSHRFSbvASgY=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=YJSZMdbpf3cGa4tsWeH9aLbOKueHUle3KTRngPCazZc9OXihPMYYuwFlE1poD6oD7 Uj5bHtm78+hi6adRlUGbZFGybyDcNO2Rj8ps7+qkikfak01r7DOMMXmrAd/crYprLh tMcc9JfQJJFeiSitwRxJJ58PaEAWv/lOiJUGksPGKQOuYXJbh3S4T0OrmMDoo30JP+ lUk6BDeEBYUpBR/RxjRxM2B5LrUpW0hfLCrcCm6hiu0MoDnadB9eK9mvzSEtbrKI9+ qiCDM3dK4BJeFcYBWoM50H+VcBqypA+Gylgv45v+f0kcyznWC3KK88gbLKjj6phktB UKVYLX5HY7Omw== From: Mark Brown Date: Tue, 05 Dec 2023 16:48:13 +0000 Subject: [PATCH v3 15/21] KVM: arm64: Support FEAT_FPMR for guests MIME-Version: 1.0 Message-Id: <20231205-arm64-2023-dpisa-v3-15-dbcbcd867a7f@kernel.org> References: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> In-Reply-To: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , James Morse , Suzuki K Poulose , Jonathan Corbet , Shuah Khan Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvmarm@lists.linux.dev, linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org, Mark Brown X-Mailer: b4 0.13-dev-5c066 X-Developer-Signature: v=1; a=openpgp-sha256; l=7570; i=broonie@kernel.org; h=from:subject:message-id; bh=lmwKeOVCrjRhM2ZiQavbt1CMHDfnXPXsSHRFSbvASgY=; b=owEBbQGS/pANAwAKASTWi3JdVIfQAcsmYgBlb1T0nCUmgcwLGhObXw5qT8gb8CkHf3xXJHZdmuvi YdeDGASJATMEAAEKAB0WIQSt5miqZ1cYtZ/in+ok1otyXVSH0AUCZW9U9AAKCRAk1otyXVSH0J4TB/ sEuL7+vzjMoZMxGkeCRGAhhzMAPZEdxZuFTwTzlXkwpnbE7syjfqzXFrt3ZhGMZzBzLGLfSHi5WHk2 9+VtiIEv8gGzSg7UZmI7jR/zHcC3IvdLTVJHMwekEbLqk0XcSbjZWTOEfrTL8YpG4oo5s9OjP+J50A 4EnroItGRiX3QOfBOM6p6dmiQJjA7YeSr4ouSFS289yqSTKeIZGTJLXtfIJmL0uuLIgtPm1Xw+1fZC tUbb0MyqVONGtRboE2JIYIfXgZ9yGKLL2Se/omh2bJ/0ilFpTq+gSTLHBz8bt28Hm1hNQZtQqJ23fy Bj/p7PLoZEP6fxCFIMjF9i+EwNZTGX X-Developer-Key: i=broonie@kernel.org; a=openpgp; fpr=3F2568AAC26998F9E813A1C5C3F436CA30F5D8EB X-Spam-Status: No, score=-1.2 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on groat.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (groat.vger.email [0.0.0.0]); Tue, 05 Dec 2023 08:53:07 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1784461601845466713 X-GMAIL-MSGID: 1784461601845466713 FEAT_FPMR introduces a new system register FPMR which allows configuration of floating point behaviour, currently for FP8 specific features. Allow use of this in guests, disabling the trap while guests are running and saving and restoring the value along with the rest of the floating point state. Since FPMR is stored immediately after the main floating point state we share it with the hypervisor by adjusting the size of the shared region. Access to FPMR is covered by both a register specific trap HCRX_EL2.EnFPM and the overall floating point access trap so we just unconditionally enable the FPMR specific trap and rely on the floating point access trap to detect guest floating point usage. Signed-off-by: Mark Brown --- arch/arm64/include/asm/kvm_arm.h | 2 +- arch/arm64/include/asm/kvm_host.h | 4 +++- arch/arm64/kvm/emulate-nested.c | 9 +++++++++ arch/arm64/kvm/fpsimd.c | 20 +++++++++++++++++--- arch/arm64/kvm/hyp/include/hyp/switch.h | 7 ++++++- arch/arm64/kvm/sys_regs.c | 11 +++++++++++ 6 files changed, 47 insertions(+), 6 deletions(-) diff --git a/arch/arm64/include/asm/kvm_arm.h b/arch/arm64/include/asm/kvm_arm.h index 9f9239d86900..95f3b44e7c3a 100644 --- a/arch/arm64/include/asm/kvm_arm.h +++ b/arch/arm64/include/asm/kvm_arm.h @@ -103,7 +103,7 @@ #define HCR_HOST_VHE_FLAGS (HCR_RW | HCR_TGE | HCR_E2H) #define HCRX_GUEST_FLAGS \ - (HCRX_EL2_SMPME | HCRX_EL2_TCR2En | \ + (HCRX_EL2_SMPME | HCRX_EL2_TCR2En | HCRX_EL2_EnFPM | \ (cpus_have_final_cap(ARM64_HAS_MOPS) ? (HCRX_EL2_MSCEn | HCRX_EL2_MCE2) : 0)) #define HCRX_HOST_FLAGS (HCRX_EL2_MSCEn | HCRX_EL2_TCR2En | HCRX_EL2_EnFPM) diff --git a/arch/arm64/include/asm/kvm_host.h b/arch/arm64/include/asm/kvm_host.h index f8d98985a39c..9885adff06fa 100644 --- a/arch/arm64/include/asm/kvm_host.h +++ b/arch/arm64/include/asm/kvm_host.h @@ -391,6 +391,8 @@ enum vcpu_sysreg { CNTP_CVAL_EL0, CNTP_CTL_EL0, + FPMR, + /* Memory Tagging Extension registers */ RGSR_EL1, /* Random Allocation Tag Seed Register */ GCR_EL1, /* Tag Control Register */ @@ -517,7 +519,6 @@ struct kvm_vcpu_arch { enum fp_type fp_type; unsigned int sve_max_vl; u64 svcr; - u64 fpmr; /* Stage 2 paging state used by the hardware on next switch */ struct kvm_s2_mmu *hw_mmu; @@ -576,6 +577,7 @@ struct kvm_vcpu_arch { struct kvm_guest_debug_arch external_debug_state; struct user_fpsimd_state *host_fpsimd_state; /* hyp VA */ + u64 *host_fpmr; /* hyp VA */ struct task_struct *parent_task; struct { diff --git a/arch/arm64/kvm/emulate-nested.c b/arch/arm64/kvm/emulate-nested.c index 06185216a297..802e5cde696f 100644 --- a/arch/arm64/kvm/emulate-nested.c +++ b/arch/arm64/kvm/emulate-nested.c @@ -67,6 +67,8 @@ enum cgt_group_id { CGT_HCR_TTLBIS, CGT_HCR_TTLBOS, + CGT_HCRX_EnFPM, + CGT_MDCR_TPMCR, CGT_MDCR_TPM, CGT_MDCR_TDE, @@ -279,6 +281,12 @@ static const struct trap_bits coarse_trap_bits[] = { .mask = HCR_TTLBOS, .behaviour = BEHAVE_FORWARD_ANY, }, + [CGT_HCRX_EnFPM] = { + .index = HCRX_EL2, + .value = HCRX_EL2_EnFPM, + .mask = HCRX_EL2_EnFPM, + .behaviour = BEHAVE_FORWARD_ANY, + }, [CGT_MDCR_TPMCR] = { .index = MDCR_EL2, .value = MDCR_EL2_TPMCR, @@ -478,6 +486,7 @@ static const struct encoding_to_trap_config encoding_to_cgt[] __initconst = { SR_TRAP(SYS_AIDR_EL1, CGT_HCR_TID1), SR_TRAP(SYS_SMIDR_EL1, CGT_HCR_TID1), SR_TRAP(SYS_CTR_EL0, CGT_HCR_TID2), + SR_TRAP(SYS_FPMR, CGT_HCRX_EnFPM), SR_TRAP(SYS_CCSIDR_EL1, CGT_HCR_TID2_TID4), SR_TRAP(SYS_CCSIDR2_EL1, CGT_HCR_TID2_TID4), SR_TRAP(SYS_CLIDR_EL1, CGT_HCR_TID2_TID4), diff --git a/arch/arm64/kvm/fpsimd.c b/arch/arm64/kvm/fpsimd.c index e3e611e30e91..dee078625d0d 100644 --- a/arch/arm64/kvm/fpsimd.c +++ b/arch/arm64/kvm/fpsimd.c @@ -14,6 +14,16 @@ #include #include +static void *fpsimd_share_end(struct user_fpsimd_state *fpsimd) +{ + void *share_end = fpsimd + 1; + + if (cpus_have_final_cap(ARM64_HAS_FPMR)) + share_end += sizeof(u64); + + return share_end; +} + void kvm_vcpu_unshare_task_fp(struct kvm_vcpu *vcpu) { struct task_struct *p = vcpu->arch.parent_task; @@ -23,7 +33,7 @@ void kvm_vcpu_unshare_task_fp(struct kvm_vcpu *vcpu) return; fpsimd = &p->thread.uw.fpsimd_state; - kvm_unshare_hyp(fpsimd, fpsimd + 1); + kvm_unshare_hyp(fpsimd, fpsimd_share_end(fpsimd)); put_task_struct(p); } @@ -45,11 +55,15 @@ int kvm_arch_vcpu_run_map_fp(struct kvm_vcpu *vcpu) kvm_vcpu_unshare_task_fp(vcpu); /* Make sure the host task fpsimd state is visible to hyp: */ - ret = kvm_share_hyp(fpsimd, fpsimd + 1); + ret = kvm_share_hyp(fpsimd, fpsimd_share_end(fpsimd)); if (ret) return ret; vcpu->arch.host_fpsimd_state = kern_hyp_va(fpsimd); + if (cpus_have_final_cap(ARM64_HAS_FPMR)) { + WARN_ON_ONCE(¤t->thread.fpmr + 1 != fpsimd_share_end(fpsimd)); + vcpu->arch.host_fpmr = kern_hyp_va(¤t->thread.fpmr); + } /* * We need to keep current's task_struct pinned until its data has been @@ -153,7 +167,7 @@ void kvm_arch_vcpu_ctxsync_fp(struct kvm_vcpu *vcpu) fp_state.sve_vl = vcpu->arch.sve_max_vl; fp_state.sme_state = NULL; fp_state.svcr = &vcpu->arch.svcr; - fp_state.fpmr = &vcpu->arch.fpmr; + fp_state.fpmr = &__vcpu_sys_reg(vcpu, FPMR); fp_state.fp_type = &vcpu->arch.fp_type; if (vcpu_has_sve(vcpu)) diff --git a/arch/arm64/kvm/hyp/include/hyp/switch.h b/arch/arm64/kvm/hyp/include/hyp/switch.h index f99d8af0b9af..a51b21a2e26f 100644 --- a/arch/arm64/kvm/hyp/include/hyp/switch.h +++ b/arch/arm64/kvm/hyp/include/hyp/switch.h @@ -339,10 +339,15 @@ static bool kvm_hyp_handle_fpsimd(struct kvm_vcpu *vcpu, u64 *exit_code) isb(); /* Write out the host state if it's in the registers */ - if (vcpu->arch.fp_state == FP_STATE_HOST_OWNED) + if (vcpu->arch.fp_state == FP_STATE_HOST_OWNED) { __fpsimd_save_state(vcpu->arch.host_fpsimd_state); + if (cpus_have_final_cap(ARM64_HAS_FPMR)) + *vcpu->arch.host_fpmr = read_sysreg_s(SYS_FPMR); + } /* Restore the guest state */ + if (cpus_have_final_cap(ARM64_HAS_FPMR)) + write_sysreg_s(__vcpu_sys_reg(vcpu, FPMR), SYS_FPMR); if (sve_guest) __hyp_sve_restore_guest(vcpu); else diff --git a/arch/arm64/kvm/sys_regs.c b/arch/arm64/kvm/sys_regs.c index b843da5e4bb9..0789fb632623 100644 --- a/arch/arm64/kvm/sys_regs.c +++ b/arch/arm64/kvm/sys_regs.c @@ -1914,6 +1914,15 @@ static unsigned int hidden_user_visibility(const struct kvm_vcpu *vcpu, .visibility = hidden_user_visibility, \ } +static unsigned int fpmr_visibility(const struct kvm_vcpu *vcpu, + const struct sys_reg_desc *rd) +{ + if (cpus_have_final_cap(ARM64_HAS_FPMR)) + return 0; + + return REG_HIDDEN; +} + /* * Since reset() callback and field val are not used for idregs, they will be * used for specific purposes for idregs. @@ -2310,6 +2319,8 @@ static const struct sys_reg_desc sys_reg_descs[] = { { SYS_DESC(SYS_CSSELR_EL1), access_csselr, reset_unknown, CSSELR_EL1 }, { SYS_DESC(SYS_CTR_EL0), access_ctr }, { SYS_DESC(SYS_SVCR), undef_access }, + { SYS_DESC(SYS_FPMR), access_rw, reset_unknown, FPMR, + .visibility = fpmr_visibility }, { PMU_SYS_REG(PMCR_EL0), .access = access_pmcr, .reset = reset_pmcr, .reg = PMCR_EL0, .get_user = get_pmcr, .set_user = set_pmcr }, From patchwork Tue Dec 5 16:48:14 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Brown X-Patchwork-Id: 174137 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:bcd1:0:b0:403:3b70:6f57 with SMTP id r17csp3564634vqy; Tue, 5 Dec 2023 08:55:38 -0800 (PST) X-Google-Smtp-Source: AGHT+IHngOSkn1hTLKU2bhNCi+Vd5nL/sT/loFMsu3l8weh3qILuYuIkBpK0O1HeuHk4rWtff+Ih X-Received: by 2002:a05:6a00:e8f:b0:6ce:59b2:abc9 with SMTP id bo15-20020a056a000e8f00b006ce59b2abc9mr1545332pfb.40.1701795338051; Tue, 05 Dec 2023 08:55:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701795338; cv=none; d=google.com; s=arc-20160816; b=SkmWYC9xhwmHi4iDfYlOdVYKvVDyIvUd9nNel4X0WtG2OHUwrSyTIgpp6h8d2scLVi 0myCRFEu1ONFGyuyg1vQ9vc6wdZvy+92G8JsVhLslTnPsd9Whz1/pIaMHBnoTsRjNwpJ wE2GAkognAswAbT2PlomiA6pNK8ehlFP3UQuzmzshaHuFu36tWBHiiCU8qZlcTnZvmH7 VT+fIYpWNCh2EgLRfl6lNb2oESLIqhvigiy/D972r77I71nIVHKWuXMNrdCx/Fe9eZI6 /PL+euP3xDlhrGXMMUpZRWDwGu7ACsXC1LBwQjdeFKDjTl3kAVZxkdVvRMuQRJwL1kxJ w5rw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=wy0wKj+dSxyXFUVpiSe17AO0Kd9BjUqL8OJXk33mGv8=; fh=YkHi0OKyzCxiOYBLKPiYIDkwR1WpYn/xs8G+kcuZCxc=; b=wfvxQ/cl++tHu5EoezVBHKPThdaEmmJ3uJ7/hBvovrBbECDr4ZbtAnF1PUm49gv7nb i3FcmjLJ5QkvmvfWkh+AY76e+yZ9OGn+CEx0Tq++IbbkLaMgthTgkjupY+OKexszjPjy MGGhE1/5UMyVSXiXndGGin4DNyMC034WBrSYkE3vUW0wfjx7PC+Pl8MvZvfqnI4QRyQH 74joldHocgJvRNJuZQiv/ovd8kJi6kpm+npxgGtX5SKgyDDwUoVj4R4cQ8hfcjo76prC JvjmPk1sEE/XLTJNimylOk1z6VCrvGaqGEBXFXHZdpIXGWkC6U6vQEc2jmyFayMHe/l3 QwPA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=mJWZQuTp; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from snail.vger.email (snail.vger.email. [23.128.96.37]) by mx.google.com with ESMTPS id y16-20020a656c10000000b0059b79bf220csi9847566pgu.662.2023.12.05.08.55.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 08:55:38 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) client-ip=23.128.96.37; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=mJWZQuTp; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 0BCBA80886A8; Tue, 5 Dec 2023 08:52:58 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345572AbjLEQws (ORCPT + 99 others); Tue, 5 Dec 2023 11:52:48 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53786 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235170AbjLEQwQ (ORCPT ); Tue, 5 Dec 2023 11:52:16 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ABA1B1B9 for ; Tue, 5 Dec 2023 08:52:04 -0800 (PST) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 326C3C433C9; Tue, 5 Dec 2023 16:52:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1701795124; bh=uh6GFkvx09xfJmabF6Bd3ORGncoAbbDBVJ6AhaRWYCg=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=mJWZQuTpOZN3VXorrPQSaX3xHBIgO3YIwyZdFhYaZ0o3bP1rS9BVGv0otKTwncgFl hmdSfP+vL5uc/CKMcbiNGMd9m9RPFhccQUOgE0AiO22okreD3A13KQ73pIgCM7euBf AYXRIYdOlKqZcl9heiPIpbeFxGef4z9cVzfx/d4rQxTgNgMNNn1z7riQejFBhDX8cR oipD+kbQ0a16c6xlbk1YAYc0qXbMb2jYmwZzNRVjsLBAscVIYE9llR5qm6a0YW7wni 7u/9HFwA97BlqC1TpCuxqrjPKBECuBc3vXsLyRIJPq3Dqkabuy3vXBJnLnnGqXiUJM Ydh4srndbXlrw== From: Mark Brown Date: Tue, 05 Dec 2023 16:48:14 +0000 Subject: [PATCH v3 16/21] arm64/hwcap: Define hwcaps for 2023 DPISA features MIME-Version: 1.0 Message-Id: <20231205-arm64-2023-dpisa-v3-16-dbcbcd867a7f@kernel.org> References: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> In-Reply-To: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , James Morse , Suzuki K Poulose , Jonathan Corbet , Shuah Khan Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvmarm@lists.linux.dev, linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org, Mark Brown X-Mailer: b4 0.13-dev-5c066 X-Developer-Signature: v=1; a=openpgp-sha256; l=12825; i=broonie@kernel.org; h=from:subject:message-id; bh=uh6GFkvx09xfJmabF6Bd3ORGncoAbbDBVJ6AhaRWYCg=; b=owEBbQGS/pANAwAKASTWi3JdVIfQAcsmYgBlb1T12QuztFCc59Uwiqa1hc1zlaM5dn/Bz/zR+b8Y JD4sOhWJATMEAAEKAB0WIQSt5miqZ1cYtZ/in+ok1otyXVSH0AUCZW9U9QAKCRAk1otyXVSH0DMuB/ 99LuuHPViTONyVNEBAljOL0S9V8pD373C7iSIFUuieINLAzIRJjiwInIxhazhikp1y0BDZFix35uyp zZFeMyDdc8m7w2MjmsUoOJ2JcJF4ieJXjI2gc7e7Cd3QzMT0gtbmt+bFzrFjfflG+SND8H8niwhXGM X8chBJjeokh09lvR54dpkA5QQvlxmCed4VbatZq9T9LShOARbSmrQIXDjWunyhhikh37XAYWlZHXcA 814KiNsQrXhtp0iC5U5Al3dA4hymJofyEzzHGV+wARuVpqg+4rf031TF7crBGW9nBhUhNUPPYNz9nU NuwuwJw0dQme47cwpUgeOJPLvto3ZB X-Developer-Key: i=broonie@kernel.org; a=openpgp; fpr=3F2568AAC26998F9E813A1C5C3F436CA30F5D8EB X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,UPPERCASE_50_75 autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Tue, 05 Dec 2023 08:52:58 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1784461748503569566 X-GMAIL-MSGID: 1784461748503569566 The 2023 architecture extensions include a large number of floating point features, most of which simply add new instructions. Add hwcaps so that userspace can enumerate these features. Signed-off-by: Mark Brown --- Documentation/arch/arm64/elf_hwcaps.rst | 49 +++++++++++++++++++++++++++++++++ arch/arm64/include/asm/hwcap.h | 15 ++++++++++ arch/arm64/include/uapi/asm/hwcap.h | 15 ++++++++++ arch/arm64/kernel/cpufeature.c | 35 +++++++++++++++++++++++ arch/arm64/kernel/cpuinfo.c | 15 ++++++++++ 5 files changed, 129 insertions(+) diff --git a/Documentation/arch/arm64/elf_hwcaps.rst b/Documentation/arch/arm64/elf_hwcaps.rst index ced7b335e2e0..448c1664879b 100644 --- a/Documentation/arch/arm64/elf_hwcaps.rst +++ b/Documentation/arch/arm64/elf_hwcaps.rst @@ -317,6 +317,55 @@ HWCAP2_LRCPC3 HWCAP2_LSE128 Functionality implied by ID_AA64ISAR0_EL1.Atomic == 0b0011. +HWCAP2_FPMR + Functionality implied by ID_AA64PFR2_EL1.FMR == 0b0001. + +HWCAP2_LUT + Functionality implied by ID_AA64ISAR2_EL1.LUT == 0b0001. + +HWCAP2_FAMINMAX + Functionality implied by ID_AA64ISAR3_EL1.FAMINMAX == 0b0001. + +HWCAP2_F8CVT + Functionality implied by ID_AA64FPFR0_EL1.F8CVT == 0b1. + +HWCAP2_F8FMA + Functionality implied by ID_AA64FPFR0_EL1.F8FMA == 0b1. + +HWCAP2_F8DP4 + Functionality implied by ID_AA64FPFR0_EL1.F8DP4 == 0b1. + +HWCAP2_F8DP2 + Functionality implied by ID_AA64FPFR0_EL1.F8DP2 == 0b1. + +HWCAP2_F8E4M3 + Functionality implied by ID_AA64FPFR0_EL1.F8E4M3 == 0b1. + +HWCAP2_F8E5M2 + Functionality implied by ID_AA64FPFR0_EL1.F8E5M2 == 0b1. + +HWCAP2_SME_LUTV2 + Functionality implied by ID_AA64SMFR0_EL1.LUTv2 == 0b1. + +HWCAP2_SME_F8F16 + Functionality implied by ID_AA64SMFR0_EL1.F8F16 == 0b1. + +HWCAP2_SME_F8F32 + Functionality implied by ID_AA64SMFR0_EL1.F8F32 == 0b1. + +HWCAP2_SME_SF8FMA + Functionality implied by ID_AA64SMFR0_EL1.SF8FMA == 0b1. + +HWCAP2_SME_SF8DP4 + Functionality implied by ID_AA64SMFR0_EL1.SF8DP4 == 0b1. + +HWCAP2_SME_SF8DP2 + Functionality implied by ID_AA64SMFR0_EL1.SF8DP2 == 0b1. + +HWCAP2_SME_SF8DP4 + Functionality implied by ID_AA64SMFR0_EL1.SF8DP4 == 0b1. + + 4. Unused AT_HWCAP bits ----------------------- diff --git a/arch/arm64/include/asm/hwcap.h b/arch/arm64/include/asm/hwcap.h index cd71e09ea14d..4edd3b61df11 100644 --- a/arch/arm64/include/asm/hwcap.h +++ b/arch/arm64/include/asm/hwcap.h @@ -142,6 +142,21 @@ #define KERNEL_HWCAP_SVE_B16B16 __khwcap2_feature(SVE_B16B16) #define KERNEL_HWCAP_LRCPC3 __khwcap2_feature(LRCPC3) #define KERNEL_HWCAP_LSE128 __khwcap2_feature(LSE128) +#define KERNEL_HWCAP_FPMR __khwcap2_feature(FPMR) +#define KERNEL_HWCAP_LUT __khwcap2_feature(LUT) +#define KERNEL_HWCAP_FAMINMAX __khwcap2_feature(FAMINMAX) +#define KERNEL_HWCAP_F8CVT __khwcap2_feature(F8CVT) +#define KERNEL_HWCAP_F8FMA __khwcap2_feature(F8FMA) +#define KERNEL_HWCAP_F8DP4 __khwcap2_feature(F8DP4) +#define KERNEL_HWCAP_F8DP2 __khwcap2_feature(F8DP2) +#define KERNEL_HWCAP_F8E4M3 __khwcap2_feature(F8E4M3) +#define KERNEL_HWCAP_F8E5M2 __khwcap2_feature(F8E5M2) +#define KERNEL_HWCAP_SME_LUTV2 __khwcap2_feature(SME_LUTV2) +#define KERNEL_HWCAP_SME_F8F16 __khwcap2_feature(SME_F8F16) +#define KERNEL_HWCAP_SME_F8F32 __khwcap2_feature(SME_F8F32) +#define KERNEL_HWCAP_SME_SF8FMA __khwcap2_feature(SME_SF8FMA) +#define KERNEL_HWCAP_SME_SF8DP4 __khwcap2_feature(SME_SF8DP4) +#define KERNEL_HWCAP_SME_SF8DP2 __khwcap2_feature(SME_SF8DP2) /* * This yields a mask that user programs can use to figure out what diff --git a/arch/arm64/include/uapi/asm/hwcap.h b/arch/arm64/include/uapi/asm/hwcap.h index 5023599fa278..285610e626f5 100644 --- a/arch/arm64/include/uapi/asm/hwcap.h +++ b/arch/arm64/include/uapi/asm/hwcap.h @@ -107,5 +107,20 @@ #define HWCAP2_SVE_B16B16 (1UL << 45) #define HWCAP2_LRCPC3 (1UL << 46) #define HWCAP2_LSE128 (1UL << 47) +#define HWCAP2_FPMR (1UL << 48) +#define HWCAP2_LUT (1UL << 49) +#define HWCAP2_FAMINMAX (1UL << 50) +#define HWCAP2_F8CVT (1UL << 51) +#define HWCAP2_F8FMA (1UL << 52) +#define HWCAP2_F8DP4 (1UL << 53) +#define HWCAP2_F8DP2 (1UL << 54) +#define HWCAP2_F8E4M3 (1UL << 55) +#define HWCAP2_F8E5M2 (1UL << 56) +#define HWCAP2_SME_LUTV2 (1UL << 57) +#define HWCAP2_SME_F8F16 (1UL << 58) +#define HWCAP2_SME_F8F32 (1UL << 59) +#define HWCAP2_SME_SF8FMA (1UL << 60) +#define HWCAP2_SME_SF8DP4 (1UL << 61) +#define HWCAP2_SME_SF8DP2 (1UL << 62) #endif /* _UAPI__ASM_HWCAP_H */ diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c index ea0b680792de..33e301b6e31e 100644 --- a/arch/arm64/kernel/cpufeature.c +++ b/arch/arm64/kernel/cpufeature.c @@ -220,6 +220,7 @@ static const struct arm64_ftr_bits ftr_id_aa64isar1[] = { }; static const struct arm64_ftr_bits ftr_id_aa64isar2[] = { + ARM64_FTR_BITS(FTR_VISIBLE, FTR_NONSTRICT, FTR_LOWER_SAFE, ID_AA64ISAR2_EL1_LUT_SHIFT, 4, 0), ARM64_FTR_BITS(FTR_VISIBLE, FTR_NONSTRICT, FTR_LOWER_SAFE, ID_AA64ISAR2_EL1_CSSC_SHIFT, 4, 0), ARM64_FTR_BITS(FTR_VISIBLE, FTR_NONSTRICT, FTR_LOWER_SAFE, ID_AA64ISAR2_EL1_RPRFM_SHIFT, 4, 0), ARM64_FTR_BITS(FTR_HIDDEN, FTR_STRICT, FTR_LOWER_SAFE, ID_AA64ISAR2_EL1_CLRBHB_SHIFT, 4, 0), @@ -235,6 +236,7 @@ static const struct arm64_ftr_bits ftr_id_aa64isar2[] = { }; static const struct arm64_ftr_bits ftr_id_aa64isar3[] = { + ARM64_FTR_BITS(FTR_VISIBLE, FTR_NONSTRICT, FTR_LOWER_SAFE, ID_AA64ISAR3_EL1_FAMINMAX_SHIFT, 4, 0), ARM64_FTR_END, }; @@ -303,6 +305,8 @@ static const struct arm64_ftr_bits ftr_id_aa64zfr0[] = { static const struct arm64_ftr_bits ftr_id_aa64smfr0[] = { ARM64_FTR_BITS(FTR_VISIBLE_IF_IS_ENABLED(CONFIG_ARM64_SME), FTR_STRICT, FTR_EXACT, ID_AA64SMFR0_EL1_FA64_SHIFT, 1, 0), + ARM64_FTR_BITS(FTR_VISIBLE_IF_IS_ENABLED(CONFIG_ARM64_SME), + FTR_STRICT, FTR_EXACT, ID_AA64SMFR0_EL1_LUTv2_SHIFT, 1, 0), ARM64_FTR_BITS(FTR_VISIBLE_IF_IS_ENABLED(CONFIG_ARM64_SME), FTR_STRICT, FTR_EXACT, ID_AA64SMFR0_EL1_SMEver_SHIFT, 4, 0), ARM64_FTR_BITS(FTR_VISIBLE_IF_IS_ENABLED(CONFIG_ARM64_SME), @@ -315,6 +319,10 @@ static const struct arm64_ftr_bits ftr_id_aa64smfr0[] = { FTR_STRICT, FTR_EXACT, ID_AA64SMFR0_EL1_B16B16_SHIFT, 1, 0), ARM64_FTR_BITS(FTR_VISIBLE_IF_IS_ENABLED(CONFIG_ARM64_SME), FTR_STRICT, FTR_EXACT, ID_AA64SMFR0_EL1_F16F16_SHIFT, 1, 0), + ARM64_FTR_BITS(FTR_VISIBLE_IF_IS_ENABLED(CONFIG_ARM64_SME), + FTR_STRICT, FTR_EXACT, ID_AA64SMFR0_EL1_F8F16_SHIFT, 1, 0), + ARM64_FTR_BITS(FTR_VISIBLE_IF_IS_ENABLED(CONFIG_ARM64_SME), + FTR_STRICT, FTR_EXACT, ID_AA64SMFR0_EL1_F8F32_SHIFT, 1, 0), ARM64_FTR_BITS(FTR_VISIBLE_IF_IS_ENABLED(CONFIG_ARM64_SME), FTR_STRICT, FTR_EXACT, ID_AA64SMFR0_EL1_I8I32_SHIFT, 4, 0), ARM64_FTR_BITS(FTR_VISIBLE_IF_IS_ENABLED(CONFIG_ARM64_SME), @@ -325,10 +333,22 @@ static const struct arm64_ftr_bits ftr_id_aa64smfr0[] = { FTR_STRICT, FTR_EXACT, ID_AA64SMFR0_EL1_BI32I32_SHIFT, 1, 0), ARM64_FTR_BITS(FTR_VISIBLE_IF_IS_ENABLED(CONFIG_ARM64_SME), FTR_STRICT, FTR_EXACT, ID_AA64SMFR0_EL1_F32F32_SHIFT, 1, 0), + ARM64_FTR_BITS(FTR_VISIBLE_IF_IS_ENABLED(CONFIG_ARM64_SME), + FTR_STRICT, FTR_EXACT, ID_AA64SMFR0_EL1_SF8FMA_SHIFT, 1, 0), + ARM64_FTR_BITS(FTR_VISIBLE_IF_IS_ENABLED(CONFIG_ARM64_SME), + FTR_STRICT, FTR_EXACT, ID_AA64SMFR0_EL1_SF8DP4_SHIFT, 1, 0), + ARM64_FTR_BITS(FTR_VISIBLE_IF_IS_ENABLED(CONFIG_ARM64_SME), + FTR_STRICT, FTR_EXACT, ID_AA64SMFR0_EL1_SF8DP2_SHIFT, 1, 0), ARM64_FTR_END, }; static const struct arm64_ftr_bits ftr_id_aa64fpfr0[] = { + ARM64_FTR_BITS(FTR_VISIBLE, FTR_STRICT, FTR_EXACT, ID_AA64FPFR0_EL1_F8CVT_SHIFT, 1, 0), + ARM64_FTR_BITS(FTR_VISIBLE, FTR_STRICT, FTR_EXACT, ID_AA64FPFR0_EL1_F8FMA_SHIFT, 1, 0), + ARM64_FTR_BITS(FTR_VISIBLE, FTR_STRICT, FTR_EXACT, ID_AA64FPFR0_EL1_F8DP4_SHIFT, 1, 0), + ARM64_FTR_BITS(FTR_VISIBLE, FTR_STRICT, FTR_EXACT, ID_AA64FPFR0_EL1_F8DP2_SHIFT, 1, 0), + ARM64_FTR_BITS(FTR_VISIBLE, FTR_STRICT, FTR_EXACT, ID_AA64FPFR0_EL1_F8E4M3_SHIFT, 1, 0), + ARM64_FTR_BITS(FTR_VISIBLE, FTR_STRICT, FTR_EXACT, ID_AA64FPFR0_EL1_F8E5M2_SHIFT, 1, 0), ARM64_FTR_END, }; @@ -2851,6 +2871,7 @@ static const struct arm64_cpu_capabilities arm64_elf_hwcaps[] = { HWCAP_CAP(ID_AA64PFR0_EL1, AdvSIMD, IMP, CAP_HWCAP, KERNEL_HWCAP_ASIMD), HWCAP_CAP(ID_AA64PFR0_EL1, AdvSIMD, FP16, CAP_HWCAP, KERNEL_HWCAP_ASIMDHP), HWCAP_CAP(ID_AA64PFR0_EL1, DIT, IMP, CAP_HWCAP, KERNEL_HWCAP_DIT), + HWCAP_CAP(ID_AA64PFR2_EL1, FPMR, IMP, CAP_HWCAP, KERNEL_HWCAP_FPMR), HWCAP_CAP(ID_AA64ISAR1_EL1, DPB, IMP, CAP_HWCAP, KERNEL_HWCAP_DCPOP), HWCAP_CAP(ID_AA64ISAR1_EL1, DPB, DPB2, CAP_HWCAP, KERNEL_HWCAP_DCPODP), HWCAP_CAP(ID_AA64ISAR1_EL1, JSCVT, IMP, CAP_HWCAP, KERNEL_HWCAP_JSCVT), @@ -2864,6 +2885,8 @@ static const struct arm64_cpu_capabilities arm64_elf_hwcaps[] = { HWCAP_CAP(ID_AA64ISAR1_EL1, BF16, EBF16, CAP_HWCAP, KERNEL_HWCAP_EBF16), HWCAP_CAP(ID_AA64ISAR1_EL1, DGH, IMP, CAP_HWCAP, KERNEL_HWCAP_DGH), HWCAP_CAP(ID_AA64ISAR1_EL1, I8MM, IMP, CAP_HWCAP, KERNEL_HWCAP_I8MM), + HWCAP_CAP(ID_AA64ISAR2_EL1, LUT, IMP, CAP_HWCAP, KERNEL_HWCAP_LUT), + HWCAP_CAP(ID_AA64ISAR3_EL1, FAMINMAX, IMP, CAP_HWCAP, KERNEL_HWCAP_FAMINMAX), HWCAP_CAP(ID_AA64MMFR2_EL1, AT, IMP, CAP_HWCAP, KERNEL_HWCAP_USCAT), #ifdef CONFIG_ARM64_SVE HWCAP_CAP(ID_AA64PFR0_EL1, SVE, IMP, CAP_HWCAP, KERNEL_HWCAP_SVE), @@ -2904,6 +2927,7 @@ static const struct arm64_cpu_capabilities arm64_elf_hwcaps[] = { #ifdef CONFIG_ARM64_SME HWCAP_CAP(ID_AA64PFR1_EL1, SME, IMP, CAP_HWCAP, KERNEL_HWCAP_SME), HWCAP_CAP(ID_AA64SMFR0_EL1, FA64, IMP, CAP_HWCAP, KERNEL_HWCAP_SME_FA64), + HWCAP_CAP(ID_AA64SMFR0_EL1, LUTv2, IMP, CAP_HWCAP, KERNEL_HWCAP_SME_LUTV2), HWCAP_CAP(ID_AA64SMFR0_EL1, SMEver, SME2p1, CAP_HWCAP, KERNEL_HWCAP_SME2P1), HWCAP_CAP(ID_AA64SMFR0_EL1, SMEver, SME2, CAP_HWCAP, KERNEL_HWCAP_SME2), HWCAP_CAP(ID_AA64SMFR0_EL1, I16I64, IMP, CAP_HWCAP, KERNEL_HWCAP_SME_I16I64), @@ -2911,12 +2935,23 @@ static const struct arm64_cpu_capabilities arm64_elf_hwcaps[] = { HWCAP_CAP(ID_AA64SMFR0_EL1, I16I32, IMP, CAP_HWCAP, KERNEL_HWCAP_SME_I16I32), HWCAP_CAP(ID_AA64SMFR0_EL1, B16B16, IMP, CAP_HWCAP, KERNEL_HWCAP_SME_B16B16), HWCAP_CAP(ID_AA64SMFR0_EL1, F16F16, IMP, CAP_HWCAP, KERNEL_HWCAP_SME_F16F16), + HWCAP_CAP(ID_AA64SMFR0_EL1, F8F16, IMP, CAP_HWCAP, KERNEL_HWCAP_SME_F8F16), + HWCAP_CAP(ID_AA64SMFR0_EL1, F8F32, IMP, CAP_HWCAP, KERNEL_HWCAP_SME_F8F32), HWCAP_CAP(ID_AA64SMFR0_EL1, I8I32, IMP, CAP_HWCAP, KERNEL_HWCAP_SME_I8I32), HWCAP_CAP(ID_AA64SMFR0_EL1, F16F32, IMP, CAP_HWCAP, KERNEL_HWCAP_SME_F16F32), HWCAP_CAP(ID_AA64SMFR0_EL1, B16F32, IMP, CAP_HWCAP, KERNEL_HWCAP_SME_B16F32), HWCAP_CAP(ID_AA64SMFR0_EL1, BI32I32, IMP, CAP_HWCAP, KERNEL_HWCAP_SME_BI32I32), HWCAP_CAP(ID_AA64SMFR0_EL1, F32F32, IMP, CAP_HWCAP, KERNEL_HWCAP_SME_F32F32), + HWCAP_CAP(ID_AA64SMFR0_EL1, SF8FMA, IMP, CAP_HWCAP, KERNEL_HWCAP_SME_SF8FMA), + HWCAP_CAP(ID_AA64SMFR0_EL1, SF8DP4, IMP, CAP_HWCAP, KERNEL_HWCAP_SME_SF8DP4), + HWCAP_CAP(ID_AA64SMFR0_EL1, SF8DP2, IMP, CAP_HWCAP, KERNEL_HWCAP_SME_SF8DP2), #endif /* CONFIG_ARM64_SME */ + HWCAP_CAP(ID_AA64FPFR0_EL1, F8CVT, IMP, CAP_HWCAP, KERNEL_HWCAP_F8CVT), + HWCAP_CAP(ID_AA64FPFR0_EL1, F8FMA, IMP, CAP_HWCAP, KERNEL_HWCAP_F8FMA), + HWCAP_CAP(ID_AA64FPFR0_EL1, F8DP4, IMP, CAP_HWCAP, KERNEL_HWCAP_F8DP4), + HWCAP_CAP(ID_AA64FPFR0_EL1, F8DP2, IMP, CAP_HWCAP, KERNEL_HWCAP_F8DP2), + HWCAP_CAP(ID_AA64FPFR0_EL1, F8E4M3, IMP, CAP_HWCAP, KERNEL_HWCAP_F8E4M3), + HWCAP_CAP(ID_AA64FPFR0_EL1, F8E5M2, IMP, CAP_HWCAP, KERNEL_HWCAP_F8E5M2), {}, }; diff --git a/arch/arm64/kernel/cpuinfo.c b/arch/arm64/kernel/cpuinfo.c index 8322e968fd0d..29155107d35d 100644 --- a/arch/arm64/kernel/cpuinfo.c +++ b/arch/arm64/kernel/cpuinfo.c @@ -130,6 +130,21 @@ static const char *const hwcap_str[] = { [KERNEL_HWCAP_SVE_B16B16] = "sveb16b16", [KERNEL_HWCAP_LRCPC3] = "lrcpc3", [KERNEL_HWCAP_LSE128] = "lse128", + [KERNEL_HWCAP_FPMR] = "fpmr", + [KERNEL_HWCAP_LUT] = "lut", + [KERNEL_HWCAP_FAMINMAX] = "faminmax", + [KERNEL_HWCAP_F8CVT] = "f8cvt", + [KERNEL_HWCAP_F8FMA] = "f8fma", + [KERNEL_HWCAP_F8DP4] = "f8dp4", + [KERNEL_HWCAP_F8DP2] = "f8dp2", + [KERNEL_HWCAP_F8E4M3] = "f8e4m3", + [KERNEL_HWCAP_F8E5M2] = "f8e5m2", + [KERNEL_HWCAP_SME_LUTV2] = "smelutv2", + [KERNEL_HWCAP_SME_F8F16] = "smef8f16", + [KERNEL_HWCAP_SME_F8F32] = "smef8f32", + [KERNEL_HWCAP_SME_SF8FMA] = "smesf8fma", + [KERNEL_HWCAP_SME_SF8DP4] = "smesf8dp4", + [KERNEL_HWCAP_SME_SF8DP2] = "smesf8dp2", }; #ifdef CONFIG_COMPAT From patchwork Tue Dec 5 16:48:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Brown X-Patchwork-Id: 174126 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:bcd1:0:b0:403:3b70:6f57 with SMTP id r17csp3563422vqy; Tue, 5 Dec 2023 08:53:18 -0800 (PST) X-Google-Smtp-Source: AGHT+IFWc2m0KLNr5a6xFH9T/p3lDwI2AhDNUWJ04WCTwEVWDHBVuiWlbGBXoldIODRfw456gPfF X-Received: by 2002:a05:6a20:244a:b0:18c:8d0f:a7b7 with SMTP id t10-20020a056a20244a00b0018c8d0fa7b7mr3473257pzc.22.1701795198205; Tue, 05 Dec 2023 08:53:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701795198; cv=none; d=google.com; s=arc-20160816; b=Eq7/yBa/zX1EriJWFiEiqK3jDn8HUS85Vxm7ikhgrI8hb8jFu8rWM5zZE1BycIOtQS iVR0ENNsTBUzSwoGmstHbocUK6yIRX25mHycRqR4YupvKC0Xiq8vAFJq0ywV3PVmx5xA UoKqFeaILqA0CB59sEb6lvlIkA1BALBcmloLSAWJ0GHV0Ek51ReoK/TFX/6I4DRLBqOA PJDYVXr8raEm41hb90+qFA3xpDcEe3hMGCoj7nrUf6eIFkKTdo8531xkJVBDcxFeH1en c6wjPPWsxDZc1xGEFMUyfJCfRBvK1zKGQVM0oLgw6i+FQ/xkNfNWGkXBStNWgBrbAU2F 02+A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=LaPafjzExR+WUSzuTY4eJPhkuar+2nmFaQ/TKnn9RZ8=; fh=YkHi0OKyzCxiOYBLKPiYIDkwR1WpYn/xs8G+kcuZCxc=; b=HEYZD0yP88j1xR49w/AdheWATgLGMsr0oaxd8E3YrMMvQRXZgYgPfMaCBSmR2SgAPr pQQt4440DofarwIqHgz454xcUSkNCcH5KRCPZ7rGU1UMsmAWfQMuo2WJemZyLEB3LLJ7 XuDCBrvlnkAKwl6avp7Vd2VPvEeFLhHNKEUqqlX6sTtMAC5F4nBm7qVMmhbhfQJVijhi I5jyBqb6vXf0b+LxPxRW0+SLjSLIkPthmKF2zLTLTebbGTFCTEnDqsAa/7Q44ZoBdmv/ 4ou241MYVtPbBTg32LVodoMoXMsr0o5x2qKTf3vKKqCM72aHvgTqx/T/3fRF2MkueWO/ D8Hw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=aHMiViY7; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from agentk.vger.email (agentk.vger.email. [23.128.96.32]) by mx.google.com with ESMTPS id s20-20020a63dc14000000b0056336fb99aasi10008947pgg.850.2023.12.05.08.53.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 08:53:18 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) client-ip=23.128.96.32; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=aHMiViY7; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by agentk.vger.email (Postfix) with ESMTP id 267AD80423A7; Tue, 5 Dec 2023 08:53:12 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at agentk.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345051AbjLEQw6 (ORCPT + 99 others); Tue, 5 Dec 2023 11:52:58 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35200 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345524AbjLEQw0 (ORCPT ); Tue, 5 Dec 2023 11:52:26 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 53B77D48 for ; Tue, 5 Dec 2023 08:52:08 -0800 (PST) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B2CC9C433C7; Tue, 5 Dec 2023 16:52:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1701795127; bh=jvyJQ++Epw5Vr3/tG/z6+6Y9vzI/cjN2rH2C/CkHcMI=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=aHMiViY74sLM0JM7CzVJxKp1sKwUZX3Hz9kDzZI0BjfyDPqoitPV11YOa1xB0jo4z mfgW8ZzoWBeARI/GI7KvWK42ECqqPhaD1WPQal6NKo6F5rwnFFiwvaUBdO4yVdMu45 9z8jCLaGf5UiD4jHqlbpq0xHMcsySwF6XLZoKSfPO8U9zwh7xZ3kntA9OAQVcsbftl +RngOADO5zHGkrpjQbH8wZjGI5qp6BJC9FcYz3iCfAxv4UaJVykCMPZpWRx6aj6SbQ 5ei0iZxkE6eS7+vcegmr/0Z8Hi5lPh7A1utIf9oX/BoRw4EURS1C8gGoDvQClNN6BT IzEFsGvg5ezyQ== From: Mark Brown Date: Tue, 05 Dec 2023 16:48:15 +0000 Subject: [PATCH v3 17/21] kselftest/arm64: Handle FPMR context in generic signal frame parser MIME-Version: 1.0 Message-Id: <20231205-arm64-2023-dpisa-v3-17-dbcbcd867a7f@kernel.org> References: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> In-Reply-To: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , James Morse , Suzuki K Poulose , Jonathan Corbet , Shuah Khan Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvmarm@lists.linux.dev, linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org, Mark Brown X-Mailer: b4 0.13-dev-5c066 X-Developer-Signature: v=1; a=openpgp-sha256; l=1642; i=broonie@kernel.org; h=from:subject:message-id; bh=jvyJQ++Epw5Vr3/tG/z6+6Y9vzI/cjN2rH2C/CkHcMI=; b=owEBbQGS/pANAwAKASTWi3JdVIfQAcsmYgBlb1T2B3U1hdoWdZAXs9jUGxuRLTGh/zZTJUyGObw3 yFBl0nmJATMEAAEKAB0WIQSt5miqZ1cYtZ/in+ok1otyXVSH0AUCZW9U9gAKCRAk1otyXVSH0JJRB/ 9G2ggrdGUsuptbMXcksc0nGAzBLQ1pTnUcoaTAl4TOuVbMe4yKlRHcjTlRdfxCwq85aVKyiqb1MX00 P8OvQYkKGA/OYj0uiztlch1dGXh1CSWqKeeXvLdL8B/lOSKZspxRwdP6JEDS8qNsUrrXp3TtYCN6Hq tDJ581VLH/iki9SkugiOXebKqIzWG3RHb2ZX2oRtU1X+G8AVt6FkBptRx/PXsixdqBuccjSxGbYaWh FuuojFJsAdMyyEIkRJeVELNgl/itQTmxA+uSAjixwjpugc2aiY4Mzp9QG82DuYepM4OPiy2dPCSjUW xsae0hesxj91R0/xZnNco/vN/ri375 X-Developer-Key: i=broonie@kernel.org; a=openpgp; fpr=3F2568AAC26998F9E813A1C5C3F436CA30F5D8EB X-Spam-Status: No, score=-1.2 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on agentk.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (agentk.vger.email [0.0.0.0]); Tue, 05 Dec 2023 08:53:12 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1784461601662916937 X-GMAIL-MSGID: 1784461601662916937 Teach the generic signal frame parsing code about the newly added FPMR frame, avoiding warnings every time one is generated. Signed-off-by: Mark Brown --- tools/testing/selftests/arm64/signal/testcases/testcases.c | 8 ++++++++ tools/testing/selftests/arm64/signal/testcases/testcases.h | 1 + 2 files changed, 9 insertions(+) diff --git a/tools/testing/selftests/arm64/signal/testcases/testcases.c b/tools/testing/selftests/arm64/signal/testcases/testcases.c index 9f580b55b388..674b88cc8c39 100644 --- a/tools/testing/selftests/arm64/signal/testcases/testcases.c +++ b/tools/testing/selftests/arm64/signal/testcases/testcases.c @@ -209,6 +209,14 @@ bool validate_reserved(ucontext_t *uc, size_t resv_sz, char **err) zt = (struct zt_context *)head; new_flags |= ZT_CTX; break; + case FPMR_MAGIC: + if (flags & FPMR_CTX) + *err = "Multiple FPMR_MAGIC"; + else if (head->size != + sizeof(struct fpmr_context)) + *err = "Bad size for fpmr_context"; + new_flags |= FPMR_CTX; + break; case EXTRA_MAGIC: if (flags & EXTRA_CTX) *err = "Multiple EXTRA_MAGIC"; diff --git a/tools/testing/selftests/arm64/signal/testcases/testcases.h b/tools/testing/selftests/arm64/signal/testcases/testcases.h index a08ab0d6207a..7727126347e0 100644 --- a/tools/testing/selftests/arm64/signal/testcases/testcases.h +++ b/tools/testing/selftests/arm64/signal/testcases/testcases.h @@ -19,6 +19,7 @@ #define ZA_CTX (1 << 2) #define EXTRA_CTX (1 << 3) #define ZT_CTX (1 << 4) +#define FPMR_CTX (1 << 5) #define KSFT_BAD_MAGIC 0xdeadbeef From patchwork Tue Dec 5 16:48:16 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Brown X-Patchwork-Id: 174131 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:bcd1:0:b0:403:3b70:6f57 with SMTP id r17csp3563886vqy; Tue, 5 Dec 2023 08:54:13 -0800 (PST) X-Google-Smtp-Source: AGHT+IFVvstbE4yEjtBMocvwn8FTeyeMwnwVRqeOn0rdIN78CpvACVH5ZNdnwpa7nV+Cv2fcnFhH X-Received: by 2002:a17:902:ea0c:b0:1d0:c345:c19b with SMTP id s12-20020a170902ea0c00b001d0c345c19bmr1675371plg.30.1701795252680; Tue, 05 Dec 2023 08:54:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701795252; cv=none; d=google.com; s=arc-20160816; b=k3j4YsoamkDqyCBxI/Szn3T09DsZApLsVBu06HgHV2cnEMSRxm4rFRVWHuSb3USUKl 4bzYXTd/LlcLD7NWpTJAgmjx5QLsU7cBPP6zXD1EQ450+V+ADw2P1soNtqr1rjzzhVxb /7f+Hj2Y2QhvR0SAM0LwzhVwOT0RZlXTEanuCL1tbtX1CaYu1aAuz1+8JmaEcWIOfks4 ocLA2T4OYaH4ImPY61or5CJtU28zckAUgNbyYmkhVM932deXS8HAx14XTDB9H34gza+2 P3PiX0v2oo2Odn/Kcpg/m4xb0YyNB0qXmNEsC7odQ5H4GjUYgFaemnuf93+LMo9vTgno FOFw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=pRJrK7+o2eoP0KQrQI65SutP/RIi/WpxkuDhbEx21tE=; fh=YkHi0OKyzCxiOYBLKPiYIDkwR1WpYn/xs8G+kcuZCxc=; b=qymmsrqsPdLm0GBv841i6QrMKNy+T2AUnyef3cJFSjyS5daVGmk+H0sukLsrP2QoGz hXByS3XOPgwDIQ4vfIZJxa8IX+JLbHRkOTudprS0o3yvzxY7wwpmwxK9GdmLC77Ncutz kQNuloFH08CVNHkXOPhdF8ESG5UfPQW3V2uv1bAJUHuH+bgkI96mwIn3zwX0lo/bsiWg QFm2Vujgb36aLxSorq8qjAqEK6y3EEC8+F+rJZD1oy3lLSLxdeVHzqD+HBxCeEX2CZ1m u2X/U7gCqvqJNwUdd6PpkdHttwwjoAJdqL2GQiW/pKFJbtwMUllvwDC8qWV6ozg/tMYJ +MJA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="ZpUDsu/g"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from howler.vger.email (howler.vger.email. [2620:137:e000::3:4]) by mx.google.com with ESMTPS id b16-20020a170902d89000b001d051bf0c00si7901273plz.188.2023.12.05.08.54.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 08:54:12 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) client-ip=2620:137:e000::3:4; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="ZpUDsu/g"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by howler.vger.email (Postfix) with ESMTP id 225E880B2D61; Tue, 5 Dec 2023 08:53:31 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at howler.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345551AbjLEQxC (ORCPT + 99 others); Tue, 5 Dec 2023 11:53:02 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35286 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345202AbjLEQwa (ORCPT ); Tue, 5 Dec 2023 11:52:30 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D000B1BC2 for ; Tue, 5 Dec 2023 08:52:11 -0800 (PST) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3AAE3C43395; Tue, 5 Dec 2023 16:52:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1701795131; bh=irtBwegYB+DXpSWW34B5isPMLTYQBsVR3AqcPDPAR5U=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=ZpUDsu/gGH6ZGhP9cXtxB8gBn3cxvyrnrUOintXu3ZZrSaHCs8qRIXupSINmCpfUh 846d3+ZMad0mZykp6K+gOovMoSft79eXj1fZIg/xHlZGuWVl/tyZdZD4mNyfK4/CB0 DPj41zC2d35OPBxDeD+tKYDVsLniqoApuWpHaCNQHrbvtPf96EP++z5ec3Ef/z1Dgq ArE7Q/afqcIZuAtccqiZ/8HeAT6JF1eY+K5G8T9Aej4fd26ZZ2if8PoJJyZxXtorfy KtmIh9NxhPvxqvLLKRN1wVpm5pdBEoxhURJYrpnXv7/T52VoIdvvY0sHLgMfnyCfv/ PoNWHEHpRWZiQ== From: Mark Brown Date: Tue, 05 Dec 2023 16:48:16 +0000 Subject: [PATCH v3 18/21] kselftest/arm64: Add basic FPMR test MIME-Version: 1.0 Message-Id: <20231205-arm64-2023-dpisa-v3-18-dbcbcd867a7f@kernel.org> References: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> In-Reply-To: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , James Morse , Suzuki K Poulose , Jonathan Corbet , Shuah Khan Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvmarm@lists.linux.dev, linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org, Mark Brown X-Mailer: b4 0.13-dev-5c066 X-Developer-Signature: v=1; a=openpgp-sha256; l=2813; i=broonie@kernel.org; h=from:subject:message-id; bh=irtBwegYB+DXpSWW34B5isPMLTYQBsVR3AqcPDPAR5U=; b=owEBbQGS/pANAwAKASTWi3JdVIfQAcsmYgBlb1T3N1wZN4P2CQcVjSstLn6/YJVwzBLjLmzSxEb2 XL6y31aJATMEAAEKAB0WIQSt5miqZ1cYtZ/in+ok1otyXVSH0AUCZW9U9wAKCRAk1otyXVSH0N9BB/ 48ypUja9VhWG+STqzkQIzv+ZXUf162KBvyWlJMmXM0Rp84aagmPl6s5PPEjv5iBxffH7BOElybFarw glT+4XbWU838fvBGSV8HO/XvzXDxRmpF1MSMeEl6yPZa7nshi5hn7HYBoJa1YA5wZI5cPKE70EVXHG E/wBsEbYlXPQKaedX6GI4LBknQSSajl/3G384Lw63tJoOxZ8kSCHdwLpy8IuEhf2ZJ41yyCUKt8FxB xClbglVOPbCb+JEIBmI6tLF7iwyiFxKEMG2baObBfODU1ziFr1nghcshxoirGj6jy6uZeVVIQwgn2y W26VfUs0EM+m/Xewq//3E1Kzb7BI89 X-Developer-Key: i=broonie@kernel.org; a=openpgp; fpr=3F2568AAC26998F9E813A1C5C3F436CA30F5D8EB X-Spam-Status: No, score=-1.2 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on howler.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (howler.vger.email [0.0.0.0]); Tue, 05 Dec 2023 08:53:31 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1784461658643802097 X-GMAIL-MSGID: 1784461658643802097 Verify that a FPMR frame is generated on systems that support FPMR and not generated otherwise. Signed-off-by: Mark Brown --- tools/testing/selftests/arm64/signal/.gitignore | 1 + .../arm64/signal/testcases/fpmr_siginfo.c | 82 ++++++++++++++++++++++ 2 files changed, 83 insertions(+) diff --git a/tools/testing/selftests/arm64/signal/.gitignore b/tools/testing/selftests/arm64/signal/.gitignore index 839e3a252629..1ce5b5eac386 100644 --- a/tools/testing/selftests/arm64/signal/.gitignore +++ b/tools/testing/selftests/arm64/signal/.gitignore @@ -1,6 +1,7 @@ # SPDX-License-Identifier: GPL-2.0-only mangle_* fake_sigreturn_* +fpmr_* sme_* ssve_* sve_* diff --git a/tools/testing/selftests/arm64/signal/testcases/fpmr_siginfo.c b/tools/testing/selftests/arm64/signal/testcases/fpmr_siginfo.c new file mode 100644 index 000000000000..e9d24685e741 --- /dev/null +++ b/tools/testing/selftests/arm64/signal/testcases/fpmr_siginfo.c @@ -0,0 +1,82 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (C) 2023 ARM Limited + * + * Verify that the FPMR register context in signal frames is set up as + * expected. + */ + +#include +#include +#include +#include +#include +#include + +#include "test_signals_utils.h" +#include "testcases.h" + +static union { + ucontext_t uc; + char buf[1024 * 128]; +} context; + +#define SYS_FPMR "S3_3_C4_C4_2" + +static uint64_t get_fpmr(void) +{ + uint64_t val; + + asm volatile ( + "mrs %0, " SYS_FPMR "\n" + : "=r"(val) + : + : "cc"); + + return val; +} + +int fpmr_present(struct tdescr *td, siginfo_t *si, ucontext_t *uc) +{ + struct _aarch64_ctx *head = GET_BUF_RESV_HEAD(context); + struct fpmr_context *fpmr_ctx; + size_t offset; + bool in_sigframe; + bool have_fpmr; + __u64 orig_fpmr; + + have_fpmr = getauxval(AT_HWCAP2) & HWCAP2_FPMR; + if (have_fpmr) + orig_fpmr = get_fpmr(); + + if (!get_current_context(td, &context.uc, sizeof(context))) + return 1; + + fpmr_ctx = (struct fpmr_context *) + get_header(head, FPMR_MAGIC, td->live_sz, &offset); + + in_sigframe = fpmr_ctx != NULL; + + fprintf(stderr, "FPMR sigframe %s on system %s FPMR\n", + in_sigframe ? "present" : "absent", + have_fpmr ? "with" : "without"); + + td->pass = (in_sigframe == have_fpmr); + + if (have_fpmr && fpmr_ctx) { + if (fpmr_ctx->fpmr != orig_fpmr) { + fprintf(stderr, "FPMR in frame is %llx, was %llx\n", + fpmr_ctx->fpmr, orig_fpmr); + td->pass = false; + } + } + + return 0; +} + +struct tdescr tde = { + .name = "FPMR", + .descr = "Validate that FPMR is present as expected", + .timeout = 3, + .run = fpmr_present, +}; From patchwork Tue Dec 5 16:48:17 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Brown X-Patchwork-Id: 174130 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:bcd1:0:b0:403:3b70:6f57 with SMTP id r17csp3563850vqy; Tue, 5 Dec 2023 08:54:09 -0800 (PST) X-Google-Smtp-Source: AGHT+IFQwT2G6oAMQh3PBCvfwJoLKRqLLZkvVzDfipW+cXFrJPR4muiYtY2TtVpTi/AbjbiFhMlJ X-Received: by 2002:a05:6808:1292:b0:3b8:bb75:dabc with SMTP id a18-20020a056808129200b003b8bb75dabcmr4109676oiw.45.1701795249257; Tue, 05 Dec 2023 08:54:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701795249; cv=none; d=google.com; s=arc-20160816; b=K5Zu08L5JrQt9FHH7NV4arT+B2xdAcYgR0YlJ1QuuhiHbgy+/uwccXgnW/pQZJrDzT V5ngvay9tOuTeqT0S41MFAeWbrUmAGFO7ADxV0azEXbM2+HxsLJCVBiF1HZmT27/z291 78iYFpvadYY3eIBZ5D0x8XNfd7wS5+IOyMcu5d3IGOJ6Jk23o+ixd3O7YJfWS8uhv/D2 8Y3v/8enM950kiUozDE/k3nyHrr4/E+YtyeWP7CkYJf/o563KzCsqoUtzuiDstRuB098 TUP7akJ3Tgj0rbgaZ9D6VP0erJqTTdgd0yROdZVp1VCdfnjG+xUVnWbgfYb2qU2tt32S t3pg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=swG6Ap0JdwNfCtJ/f2Hn/h8PjeTugt4dd2iPihakVAs=; fh=YkHi0OKyzCxiOYBLKPiYIDkwR1WpYn/xs8G+kcuZCxc=; b=Fv0Vmr3h/4iHLMu7Ujl2jnq8crvJeUNcuol6/4JNDLlnqsTPRdm8Frc4L9PPfGlK0y qShwFeZBv3WRpPUw5+C7GRjbXHJGADYbCk9GwzMhM01D92xhdXJiR6sA5CwxejU7ORid kjacB44GMTqzY2FMNhGewQvi56Q3eaZ4oVfv6WouHCiuBmlET1/AulMhJGQIrLuo5lrc jizfW6vMS1kmZBd7A3xV+OHaE/iidLLWBE8Klok4vcNI+ZQ8Iq4olmsdhOKY6l790xbS m1KXZmmArGATE8yAG+pCVPcbnTROUB4lzVzHaI0DhaBY9mbr0YTbm8Q/GH/QV0+M652c IAxw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=icJCPj4A; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from howler.vger.email (howler.vger.email. [23.128.96.34]) by mx.google.com with ESMTPS id h11-20020a056a00230b00b006cbb7fdff10si9932264pfh.194.2023.12.05.08.54.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 08:54:09 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) client-ip=23.128.96.34; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=icJCPj4A; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by howler.vger.email (Postfix) with ESMTP id 8150180B2D44; Tue, 5 Dec 2023 08:53:19 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at howler.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345608AbjLEQxH (ORCPT + 99 others); Tue, 5 Dec 2023 11:53:07 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48412 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235069AbjLEQwq (ORCPT ); Tue, 5 Dec 2023 11:52:46 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5059CD66 for ; Tue, 5 Dec 2023 08:52:15 -0800 (PST) Received: by smtp.kernel.org (Postfix) with ESMTPSA id CBED5C433CA; Tue, 5 Dec 2023 16:52:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1701795135; bh=fY7XsyGWBCyMThKR5lWJhW/9PqmzwSI9SznLLw/I8/I=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=icJCPj4A9WCN6Iwk/ZpD1gRlp/UCIDyT4MxLMmSIfHTnTBS308FzsBcqXUbDgYHGb DsNu/7TbP906USdh7qH0tH3/RNtREyEUytsDI94kRATbCf4mi+gU3CpI1hDw8oJnnP kJJ34YHj4FFEQMXhtKpb+aI6iH8wsDJmLAednLXPphTNzfjN1rfCm9motv27B6jCrV D2wIlz4C3sl3C9i+lQkoygWdmBGpS0pKjJcPBD1w+Bxo8DCisk/2ZEVqEBZn/R+c16 AliEgHRQkDZrBMcJjkrq3N9QRwjlT0slBiJrDFcHAIv6+cK+v2Za16ThKR2pM/Lfn9 Jfou1Vdf2/98Q== From: Mark Brown Date: Tue, 05 Dec 2023 16:48:17 +0000 Subject: [PATCH v3 19/21] kselftest/arm64: Add 2023 DPISA hwcap test coverage MIME-Version: 1.0 Message-Id: <20231205-arm64-2023-dpisa-v3-19-dbcbcd867a7f@kernel.org> References: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> In-Reply-To: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , James Morse , Suzuki K Poulose , Jonathan Corbet , Shuah Khan Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvmarm@lists.linux.dev, linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org, Mark Brown X-Mailer: b4 0.13-dev-5c066 X-Developer-Signature: v=1; a=openpgp-sha256; l=6393; i=broonie@kernel.org; h=from:subject:message-id; bh=fY7XsyGWBCyMThKR5lWJhW/9PqmzwSI9SznLLw/I8/I=; b=owGbwMvMwMWocq27KDak/QLjabUkhtT8kO86r29PD5Ocp5F8u9Gdv+6n8263fxtm6BsYcPbyN7ls /3uwk9GYhYGRi0FWTJFl7bOMVenhElvnP5r/CmYQKxPIFAYuTgGYSKQ5+/9i+Y17poocm17YKbVYs/ vod97Ky15hlr9fTHPX0i1yKb5c/0kn/G+IjVR4QHtjsWVAQeOH2fa/Vk3xd3F9efSPY7i4j63RbAtL EadvFW8yM6wycn4JqtT+NDPQ9LVbz7RQfuJq22DO8He6zctXXtO+53A33T3bKaHqefeul5OungjiKr twIf6J8NUdLkXTpPlXZNyxTzoouHvziW8WD56mrhVpXPTnG8ODfseGvy96dF8XJE3vO/s2TXLWXcd9 sSFsV4OeJJQqlC7RauBv/iU2L0Ryosird6blv77NaF0WYMy5ZnoEi0Lh94zb7IE2Ounce5fzR7U8s7 EzEZL62h1pnH8xoX29E9tFb8MmAA== X-Developer-Key: i=broonie@kernel.org; a=openpgp; fpr=3F2568AAC26998F9E813A1C5C3F436CA30F5D8EB X-Spam-Status: No, score=-1.2 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on howler.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (howler.vger.email [0.0.0.0]); Tue, 05 Dec 2023 08:53:19 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1784461655284655203 X-GMAIL-MSGID: 1784461655284655203 Add the hwcaps added for the 2023 DPISA extensions to the hwcaps test program. Signed-off-by: Mark Brown --- tools/testing/selftests/arm64/abi/hwcap.c | 217 ++++++++++++++++++++++++++++++ 1 file changed, 217 insertions(+) diff --git a/tools/testing/selftests/arm64/abi/hwcap.c b/tools/testing/selftests/arm64/abi/hwcap.c index 1189e77c8152..d8909b2b535a 100644 --- a/tools/testing/selftests/arm64/abi/hwcap.c +++ b/tools/testing/selftests/arm64/abi/hwcap.c @@ -58,11 +58,46 @@ static void cssc_sigill(void) asm volatile(".inst 0xdac01c00" : : : "x0"); } +static void f8cvt_sigill(void) +{ + /* FSCALE V0.4H, V0.4H, V0.4H */ + asm volatile(".inst 0x2ec03c00"); +} + +static void f8dp2_sigill(void) +{ + /* FDOT V0.4H, V0.4H, V0.5H */ + asm volatile(".inst 0xe40fc00"); +} + +static void f8dp4_sigill(void) +{ + /* FDOT V0.2S, V0.2S, V0.2S */ + asm volatile(".inst 0xe00fc00"); +} + +static void f8fma_sigill(void) +{ + /* FMLALB V0.8H, V0.16B, V0.16B */ + asm volatile(".inst 0xec0fc00"); +} + +static void faminmax_sigill(void) +{ + /* FAMIN V0.4H, V0.4H, V0.4H */ + asm volatile(".inst 0x2ec01c00"); +} + static void fp_sigill(void) { asm volatile("fmov s0, #1"); } +static void fpmr_sigill(void) +{ + asm volatile("mrs x0, S3_3_C4_C4_2" : : : "x0"); +} + static void ilrcpc_sigill(void) { /* LDAPUR W0, [SP, #8] */ @@ -95,6 +130,12 @@ static void lse128_sigill(void) : "cc", "memory"); } +static void lut_sigill(void) +{ + /* LUTI2 V0.16B, { V0.16B }, V[0] */ + asm volatile(".inst 0x4e801000"); +} + static void mops_sigill(void) { char dst[1], src[1]; @@ -216,6 +257,78 @@ static void smef16f16_sigill(void) asm volatile("msr S0_3_C4_C6_3, xzr" : : : ); } +static void smef8f16_sigill(void) +{ + /* SMSTART */ + asm volatile("msr S0_3_C4_C7_3, xzr" : : : ); + + /* FDOT ZA.H[W0, 0], Z0.B-Z1.B, Z0.B-Z1.B */ + asm volatile(".inst 0xc1a01020" : : : ); + + /* SMSTOP */ + asm volatile("msr S0_3_C4_C6_3, xzr" : : : ); +} + +static void smef8f32_sigill(void) +{ + /* SMSTART */ + asm volatile("msr S0_3_C4_C7_3, xzr" : : : ); + + /* FDOT ZA.S[W0, 0], { Z0.B-Z1.B }, Z0.B[0] */ + asm volatile(".inst 0xc1500038" : : : ); + + /* SMSTOP */ + asm volatile("msr S0_3_C4_C6_3, xzr" : : : ); +} + +static void smelutv2_sigill(void) +{ + /* SMSTART */ + asm volatile("msr S0_3_C4_C7_3, xzr" : : : ); + + /* LUTI4 { Z0.B-Z3.B }, ZT0, { Z0-Z1 } */ + asm volatile(".inst 0xc08b0000" : : : ); + + /* SMSTOP */ + asm volatile("msr S0_3_C4_C6_3, xzr" : : : ); +} + +static void smesf8dp2_sigill(void) +{ + /* SMSTART */ + asm volatile("msr S0_3_C4_C7_3, xzr" : : : ); + + /* FDOT Z0.H, Z0.B, Z0.B[0] */ + asm volatile(".inst 0x64204400" : : : ); + + /* SMSTOP */ + asm volatile("msr S0_3_C4_C6_3, xzr" : : : ); +} + +static void smesf8dp4_sigill(void) +{ + /* SMSTART */ + asm volatile("msr S0_3_C4_C7_3, xzr" : : : ); + + /* FDOT Z0.S, Z0.B, Z0.B[0] */ + asm volatile(".inst 0xc1a41C00" : : : ); + + /* SMSTOP */ + asm volatile("msr S0_3_C4_C6_3, xzr" : : : ); +} + +static void smesf8fma_sigill(void) +{ + /* SMSTART */ + asm volatile("msr S0_3_C4_C7_3, xzr" : : : ); + + /* FMLALB V0.8H, V0.16B, V0.16B */ + asm volatile(".inst 0xec0fc00"); + + /* SMSTOP */ + asm volatile("msr S0_3_C4_C6_3, xzr" : : : ); +} + static void sve_sigill(void) { /* RDVL x0, #0 */ @@ -353,6 +466,53 @@ static const struct hwcap_data { .cpuinfo = "cssc", .sigill_fn = cssc_sigill, }, + { + .name = "F8CVT", + .at_hwcap = AT_HWCAP2, + .hwcap_bit = HWCAP2_F8CVT, + .cpuinfo = "f8cvt", + .sigill_fn = f8cvt_sigill, + }, + { + .name = "F8DP4", + .at_hwcap = AT_HWCAP2, + .hwcap_bit = HWCAP2_F8DP4, + .cpuinfo = "f8dp4", + .sigill_fn = f8dp4_sigill, + }, + { + .name = "F8DP2", + .at_hwcap = AT_HWCAP2, + .hwcap_bit = HWCAP2_F8DP2, + .cpuinfo = "f8dp4", + .sigill_fn = f8dp2_sigill, + }, + { + .name = "F8E5M2", + .at_hwcap = AT_HWCAP2, + .hwcap_bit = HWCAP2_F8E5M2, + .cpuinfo = "f8e5m2", + }, + { + .name = "F8E4M3", + .at_hwcap = AT_HWCAP2, + .hwcap_bit = HWCAP2_F8E4M3, + .cpuinfo = "f8e4m3", + }, + { + .name = "F8FMA", + .at_hwcap = AT_HWCAP2, + .hwcap_bit = HWCAP2_F8FMA, + .cpuinfo = "f8fma", + .sigill_fn = f8fma_sigill, + }, + { + .name = "FAMINMAX", + .at_hwcap = AT_HWCAP2, + .hwcap_bit = HWCAP2_FAMINMAX, + .cpuinfo = "faminmax", + .sigill_fn = faminmax_sigill, + }, { .name = "FP", .at_hwcap = AT_HWCAP, @@ -360,6 +520,14 @@ static const struct hwcap_data { .cpuinfo = "fp", .sigill_fn = fp_sigill, }, + { + .name = "FPMR", + .at_hwcap = AT_HWCAP2, + .hwcap_bit = HWCAP2_FPMR, + .cpuinfo = "fpmr", + .sigill_fn = fpmr_sigill, + .sigill_reliable = true, + }, { .name = "JSCVT", .at_hwcap = AT_HWCAP, @@ -411,6 +579,13 @@ static const struct hwcap_data { .cpuinfo = "lse128", .sigill_fn = lse128_sigill, }, + { + .name = "LUT", + .at_hwcap = AT_HWCAP2, + .hwcap_bit = HWCAP2_LUT, + .cpuinfo = "lut", + .sigill_fn = lut_sigill, + }, { .name = "MOPS", .at_hwcap = AT_HWCAP2, @@ -511,6 +686,48 @@ static const struct hwcap_data { .cpuinfo = "smef16f16", .sigill_fn = smef16f16_sigill, }, + { + .name = "SME F8F16", + .at_hwcap = AT_HWCAP2, + .hwcap_bit = HWCAP2_SME_F8F16, + .cpuinfo = "smef8f16", + .sigill_fn = smef8f16_sigill, + }, + { + .name = "SME F8F32", + .at_hwcap = AT_HWCAP2, + .hwcap_bit = HWCAP2_SME_F8F32, + .cpuinfo = "smef8f32", + .sigill_fn = smef8f32_sigill, + }, + { + .name = "SME LUTV2", + .at_hwcap = AT_HWCAP2, + .hwcap_bit = HWCAP2_SME_LUTV2, + .cpuinfo = "smelutv2", + .sigill_fn = smelutv2_sigill, + }, + { + .name = "SME SF8FMA", + .at_hwcap = AT_HWCAP2, + .hwcap_bit = HWCAP2_SME_SF8FMA, + .cpuinfo = "smesf8fma", + .sigill_fn = smesf8fma_sigill, + }, + { + .name = "SME SF8DP2", + .at_hwcap = AT_HWCAP2, + .hwcap_bit = HWCAP2_SME_SF8DP2, + .cpuinfo = "smesf8dp2", + .sigill_fn = smesf8dp2_sigill, + }, + { + .name = "SME SF8DP4", + .at_hwcap = AT_HWCAP2, + .hwcap_bit = HWCAP2_SME_SF8DP4, + .cpuinfo = "smesf8dp4", + .sigill_fn = smesf8dp4_sigill, + }, { .name = "SVE", .at_hwcap = AT_HWCAP, From patchwork Tue Dec 5 16:48:18 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Brown X-Patchwork-Id: 174134 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:bcd1:0:b0:403:3b70:6f57 with SMTP id r17csp3564435vqy; Tue, 5 Dec 2023 08:55:18 -0800 (PST) X-Google-Smtp-Source: AGHT+IEZ12gQ0OCoUlYA7pBts2S6wOSdiFmlQZ7qhqIkm6xZSm2DMh4fvWTongNWfRq7s9FM6HY6 X-Received: by 2002:a05:6358:299:b0:170:309e:fbac with SMTP id w25-20020a056358029900b00170309efbacmr3440259rwj.55.1701795318639; Tue, 05 Dec 2023 08:55:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701795318; cv=none; d=google.com; s=arc-20160816; b=nmlvREhOeeh5RrN4cwy8Ve9Ik4gWkq1yxqTlvHE+VBR7SoWmJ15n3D6JrlXmumRw4A +DM9XmndeXX5cHvc8D+wFWbF2nZc5dTWY2j4qrmAweW/NgPpufqepxtshrp6H6ky5oKS cB09fipdjPQpS+nhRcnQuNWNlwFcmCTabI0lp5DvgT9EvjoXs/fdf7KHB40d6JlRhr1o K2Q0wH79EbcACuV1ymoIQGeZomfuxGVylOEnNbdgCpVnV91SLDzT6bmOhhPx9ux/iF4r ev7UuMWv2FdyKe/wK69f+oXNanQ/F5mxIezZhl7sxRLjSGNt3GMYdnX2uNH5m88FTOou ysfA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=jeIm3rAxzL8i9EESVcRLofe+E0HmFD63BUkn1Pjvgmo=; fh=YkHi0OKyzCxiOYBLKPiYIDkwR1WpYn/xs8G+kcuZCxc=; b=p5MSwNl+2Upd9Hs1VhmYnlCiMi7UC1ETx2m3X/J5gkauqYxM5OQpr5sr+n5H9iOT22 nQKwMZCb3His53Nw4fbelCDrTH+D3d8skhOMvwWqFB25bmyRW2f1Len4XkXIO4CFOuKm 7otq84bxhw/XYEf3jH9/nVhtcqKqD++te3xcqx6LVSRszl+pGGUsuBi0R0ytKnS1Vjxj j6bwcmXqTeAjpcxEn6ojMXBP3qWPb0ThJagYPs/Cxf0AgjtPTAAP950CbwjmoHVUeTC7 Fo2ZL3C8HHMS4XMWXf+/DWA5DvpZ6Oca8rhkBxzrc/ZQVVpsGX2wQcEugE9xwUAHxRZH Fzcw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=YRLIbCim; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from fry.vger.email (fry.vger.email. [2620:137:e000::3:8]) by mx.google.com with ESMTPS id k9-20020aa788c9000000b0069109ee0b59si6598796pff.231.2023.12.05.08.55.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 08:55:18 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) client-ip=2620:137:e000::3:8; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=YRLIbCim; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by fry.vger.email (Postfix) with ESMTP id 6D62980A8D9F; Tue, 5 Dec 2023 08:53:50 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at fry.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235506AbjLEQxk (ORCPT + 99 others); Tue, 5 Dec 2023 11:53:40 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53910 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345443AbjLEQwv (ORCPT ); Tue, 5 Dec 2023 11:52:51 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4EE811BF7 for ; Tue, 5 Dec 2023 08:52:19 -0800 (PST) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 77EE4C433CD; Tue, 5 Dec 2023 16:52:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1701795138; bh=RtrbRWeplo/J+dSChm3CUN1rkk7mxJJmNnU3ySYX5lo=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=YRLIbCimtgBlJYEdyxF9hD+TexA96gyzv2Cp7KVIysejHpC1ZV/hlUKJmn1K68C+n /qNf+tYW1lVyyfJtS3wX5M/buQarU8cUfPF/vRjfcTIXKAPOuuodHmVPhiz/Ip8HuG nKrx5VnxaHZHlAKQjvZ3gSBWPxBmz9ydygJc5fwG96voLvBrAHyZ5T+DD10iYRojMJ Ofz0/O1+qcwgxuqGlbNf7+i7uQslabni9/PZ1VJ0tASjBBp5sADbmyoMsAfAt1sQh/ Lh7i3kyytiPwyeNhFJY48hqtlyP6uJP0az59qBKxnBWnWOdw9I+CkpqL2Se/BGncZV QEabB/cpfMCRQ== From: Mark Brown Date: Tue, 05 Dec 2023 16:48:18 +0000 Subject: [PATCH v3 20/21] KVM: arm64: selftests: Document feature registers added in 2023 extensions MIME-Version: 1.0 Message-Id: <20231205-arm64-2023-dpisa-v3-20-dbcbcd867a7f@kernel.org> References: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> In-Reply-To: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , James Morse , Suzuki K Poulose , Jonathan Corbet , Shuah Khan Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvmarm@lists.linux.dev, linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org, Mark Brown X-Mailer: b4 0.13-dev-5c066 X-Developer-Signature: v=1; a=openpgp-sha256; l=1469; i=broonie@kernel.org; h=from:subject:message-id; bh=RtrbRWeplo/J+dSChm3CUN1rkk7mxJJmNnU3ySYX5lo=; b=owEBbQGS/pANAwAKASTWi3JdVIfQAcsmYgBlb1T4CgCPiHmKGN/VARDp7A3cLzr3fw+Oqk/gk6kB jrlxPJ+JATMEAAEKAB0WIQSt5miqZ1cYtZ/in+ok1otyXVSH0AUCZW9U+AAKCRAk1otyXVSH0HnrB/ wLwtOnY0ZOVUQqzs2bZEncaCUPR7CtD1MQGN0vdj44RZgh6yX1UYEvULTVJOjRm4pGi9yk4aN747A5 OmLixp/5QUJEtY+hqnBh2tKagwP1qSuNtSLt1BF00TpxzIipRwMhYxGgtpa9zPRBRZjA/nUCyoopxB J372rjpTzH7NN+bfY8mkG6acKBMY9JtdGk5yRRhOlzBp5cypJd7tfIasgkAU2/eqRKM5oVZuAqlfer IruowDG6Frpqyb/a/t4H59yo97OK/kQyIHcxMQ/g2wyh+f7kp0k0vOskzDFdeZ5CDfOCy9F1eVIu2H EKo1kd4LPjhDEFNh4TG3n0C4ZYJjYt X-Developer-Key: i=broonie@kernel.org; a=openpgp; fpr=3F2568AAC26998F9E813A1C5C3F436CA30F5D8EB X-Spam-Status: No, score=-1.2 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on fry.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (fry.vger.email [0.0.0.0]); Tue, 05 Dec 2023 08:53:50 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1784461727970539191 X-GMAIL-MSGID: 1784461727970539191 The 2023 architecture extensions allocated some previously usused feature registers, add comments mapping the names in get-reg-list as we do for the other allocated registers. Signed-off-by: Mark Brown --- tools/testing/selftests/kvm/aarch64/get-reg-list.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/kvm/aarch64/get-reg-list.c b/tools/testing/selftests/kvm/aarch64/get-reg-list.c index 709d7d721760..71ea6ecec7ce 100644 --- a/tools/testing/selftests/kvm/aarch64/get-reg-list.c +++ b/tools/testing/selftests/kvm/aarch64/get-reg-list.c @@ -428,7 +428,7 @@ static __u64 base_regs[] = { ARM64_SYS_REG(3, 0, 0, 4, 4), /* ID_AA64ZFR0_EL1 */ ARM64_SYS_REG(3, 0, 0, 4, 5), /* ID_AA64SMFR0_EL1 */ ARM64_SYS_REG(3, 0, 0, 4, 6), - ARM64_SYS_REG(3, 0, 0, 4, 7), + ARM64_SYS_REG(3, 0, 0, 4, 7), /* ID_AA64FPFR_EL1 */ ARM64_SYS_REG(3, 0, 0, 5, 0), /* ID_AA64DFR0_EL1 */ ARM64_SYS_REG(3, 0, 0, 5, 1), /* ID_AA64DFR1_EL1 */ ARM64_SYS_REG(3, 0, 0, 5, 2), @@ -440,7 +440,7 @@ static __u64 base_regs[] = { ARM64_SYS_REG(3, 0, 0, 6, 0), /* ID_AA64ISAR0_EL1 */ ARM64_SYS_REG(3, 0, 0, 6, 1), /* ID_AA64ISAR1_EL1 */ ARM64_SYS_REG(3, 0, 0, 6, 2), /* ID_AA64ISAR2_EL1 */ - ARM64_SYS_REG(3, 0, 0, 6, 3), + ARM64_SYS_REG(3, 0, 0, 6, 3), /* ID_AA64ISAR3_EL1 */ ARM64_SYS_REG(3, 0, 0, 6, 4), ARM64_SYS_REG(3, 0, 0, 6, 5), ARM64_SYS_REG(3, 0, 0, 6, 6), From patchwork Tue Dec 5 16:48:19 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Brown X-Patchwork-Id: 174132 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:bcd1:0:b0:403:3b70:6f57 with SMTP id r17csp3564337vqy; Tue, 5 Dec 2023 08:55:06 -0800 (PST) X-Google-Smtp-Source: AGHT+IGe9wBwcwTOSe9ela5YWKgWcyM8fSkfKaX76q9MIZQfGj37vnWDZuZtJpvJhaYy9unn66AC X-Received: by 2002:a05:6359:d24:b0:170:17eb:14cb with SMTP id gp36-20020a0563590d2400b0017017eb14cbmr3422054rwb.59.1701795306263; Tue, 05 Dec 2023 08:55:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701795306; cv=none; d=google.com; s=arc-20160816; b=1JA+C3x3kKnissL5vA+RTbJJ1KEd6G+WBePXk72tdxbcD06lXgyi5+qrM2Eygq1Pmn TGUyCMUK5BMkasQ0fnNyvEWTbZn4oU3a4bQZN4OAc5y6CRujagUdCOSAAWKUi9ttdVhj BTcfxLdVTJWD6Pc8QoRsjUBZlxpAt57mI112M4gEDoAfGI7Gs9TG4CHNdb6T4aNrY8nI lsRlyBZf0aYgYS6AoYNzkUr5jYY7qvVM3eosKNglvAU2qgwgBBk8N5JkMsBOGgNMhZ4G VtTBfjEzzgYcj4rUQUlosla6j+dfubNeSTojxbIdRkWc5hX9JsMAscagr33ewDag1gWL P+fA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=Saga8KShry1AaMrcnIVjzd2Ya6qmA/WXMisN5fTtPLM=; fh=YkHi0OKyzCxiOYBLKPiYIDkwR1WpYn/xs8G+kcuZCxc=; b=mJC8AI4FE+/EUUfMdqk4snsKFcNr8qZhv7EVNqzwOSTcWCH80WcnwcLXdvtE4sXVFn RdDho2Bs7CEOpms9kR0+N5/1vNC094v5oU61uxhZ60JyT2qeLQdqieEf+WJwbL8I3s2H ofCZNHFR6Y2AmqB4ql3LbJcz/d3fy21KV6D4LDaxPwVnZJFdgyd/AbJbwNeRsNPq15v6 0VdcvNNbLZlbkIRGBcQojAg1uIhLxdrQvXV1F93KN+U1Fz/+BAFQjkc1ddn8ApoLipnG XJ6JAMmQ2MZMsGST4iVeSXr00MzJ4u521BjrdwZtN2+UTdkitAkfBSuW91XeYWqp+I+y hZIA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=oJH6nUjJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from groat.vger.email (groat.vger.email. [2620:137:e000::3:5]) by mx.google.com with ESMTPS id z2-20020a056a001d8200b006ce4f45bf67si498105pfw.278.2023.12.05.08.55.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 08:55:06 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) client-ip=2620:137:e000::3:5; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=oJH6nUjJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by groat.vger.email (Postfix) with ESMTP id 3608480A9A9C; Tue, 5 Dec 2023 08:54:55 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at groat.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231949AbjLEQyk (ORCPT + 99 others); Tue, 5 Dec 2023 11:54:40 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48366 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345156AbjLEQw6 (ORCPT ); Tue, 5 Dec 2023 11:52:58 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 601BFD6E for ; Tue, 5 Dec 2023 08:52:22 -0800 (PST) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 627CDC433C7; Tue, 5 Dec 2023 16:52:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1701795142; bh=uwufjRPZpufB4WAKz4BvxO1YI+sO9dPrjMMi385iZbk=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=oJH6nUjJn+pyp8n8QaDhYp6O6TcSF9HaFifSF/X8m4+yK2Pwp31ReTfIX4tZWn/Cz 86lXE9v7PZRc+2Cxb3IxSdF5UhFqACIGOtfmUB6u31A1yaUg2mteWy6Gi3vfyqjrqV WhknUSSiQJWuYzSSaQcjs17iKEVob+7hwlxId8i/yrI1yZqqPjHgeo/Uhqz5ErV+Fm GANr1ePi3zIO3dmEFhEZEMQuByFj1pU2UyShP0ql85o+6wWlej0p3w/+yk1LjFaIAb 0Dzlv02i4V9ZBU0GzUFinZ4csSrcSjK9dXHCmjljO6kIXLM4hrj6nuvIFLKYWqKSfG 33DIepcLWSMXQ== From: Mark Brown Date: Tue, 05 Dec 2023 16:48:19 +0000 Subject: [PATCH v3 21/21] KVM: arm64: selftests: Teach get-reg-list about FPMR MIME-Version: 1.0 Message-Id: <20231205-arm64-2023-dpisa-v3-21-dbcbcd867a7f@kernel.org> References: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> In-Reply-To: <20231205-arm64-2023-dpisa-v3-0-dbcbcd867a7f@kernel.org> To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , James Morse , Suzuki K Poulose , Jonathan Corbet , Shuah Khan Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvmarm@lists.linux.dev, linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org, Mark Brown X-Mailer: b4 0.13-dev-5c066 X-Developer-Signature: v=1; a=openpgp-sha256; l=1321; i=broonie@kernel.org; h=from:subject:message-id; bh=uwufjRPZpufB4WAKz4BvxO1YI+sO9dPrjMMi385iZbk=; b=owEBbQGS/pANAwAKASTWi3JdVIfQAcsmYgBlb1T5Ms1LUZ7iykmEHQxr5Fc4YCOF2pq4fe2+9KtB TDNYZouJATMEAAEKAB0WIQSt5miqZ1cYtZ/in+ok1otyXVSH0AUCZW9U+QAKCRAk1otyXVSH0LS6B/ 9m9yzXT/1mV+qdIYO/iuTT5Lxlk2I9E71H/ZXhNX+z9TkxFh9/bVj7czqQM1kKuWwSY4I/FMi+GpXj OTN+KJliG6qr+1JrGSyNMdZcEXdR+7TmQF/zu5t0O215vAYHI4xGJxVqHuG0HTK7+UyN4sCb4q69U5 aC178H0cE0U/XI4Cb4UnUb+XTLo2IJLxcn8pT5g/5qQVe5Ot1jZgGLWjxbKT0p1h8H/L/vKyFbEGG2 1ghWpPyxtGpWFnF3ckyM0qg/5sjW2HEbWxTDG6fYtSOqjm5/YEhd+jLdvMoTLzyXGrQh0SogO60n7k EfGfxPn+wsNRM7rgF8MP7C4bVua5pZ X-Developer-Key: i=broonie@kernel.org; a=openpgp; fpr=3F2568AAC26998F9E813A1C5C3F436CA30F5D8EB X-Spam-Status: No, score=-1.2 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on groat.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (groat.vger.email [0.0.0.0]); Tue, 05 Dec 2023 08:54:55 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1784461715025148341 X-GMAIL-MSGID: 1784461715025148341 FEAT_FPMR defines a new register FMPR which is available at all ELs and is discovered via ID_AA64PFR2_EL1.FPMR, add this to the set of registers that get-reg-list knows to check for with the required identification register depdendency. Signed-off-by: Mark Brown --- tools/testing/selftests/kvm/aarch64/get-reg-list.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tools/testing/selftests/kvm/aarch64/get-reg-list.c b/tools/testing/selftests/kvm/aarch64/get-reg-list.c index 71ea6ecec7ce..1e43511d1440 100644 --- a/tools/testing/selftests/kvm/aarch64/get-reg-list.c +++ b/tools/testing/selftests/kvm/aarch64/get-reg-list.c @@ -40,6 +40,12 @@ static struct feature_id_reg feat_id_regs[] = { ARM64_SYS_REG(3, 0, 0, 7, 3), /* ID_AA64MMFR3_EL1 */ 4, 1 + }, + { + ARM64_SYS_REG(3, 3, 4, 4, 2), /* FPMR */ + ARM64_SYS_REG(3, 0, 0, 4, 2), /* ID_AA64PFR2_EL1 */ + 32, + 1 } }; @@ -481,6 +487,7 @@ static __u64 base_regs[] = { ARM64_SYS_REG(3, 3, 14, 2, 1), /* CNTP_CTL_EL0 */ ARM64_SYS_REG(3, 3, 14, 2, 2), /* CNTP_CVAL_EL0 */ ARM64_SYS_REG(3, 4, 3, 0, 0), /* DACR32_EL2 */ + ARM64_SYS_REG(3, 3, 4, 4, 2), /* FPMR */ ARM64_SYS_REG(3, 4, 5, 0, 1), /* IFSR32_EL2 */ ARM64_SYS_REG(3, 4, 5, 3, 0), /* FPEXC32_EL2 */ };