From patchwork Wed Jul 6 17:52:54 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Brown X-Patchwork-Id: 12908445 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id C4D0BC433EF for ; Wed, 6 Jul 2022 17:55:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=tnrVQLydcluFXoVjTDV3pX0SB+/HUZNo0YzQvaLIilg=; b=2QWWt8nQK8dCLL J7vTI9DiaVbJH8xJ+j4ffUvXoQPy9+0OUuHTtZc01Bz2TaqWgY477rzDqEUrymrZ0u11WrqHpNGh9 Y8VpqSjd8ONSUskcRE06UYQztykoQPerQemrOZk05Y2fI1F9FDiDVlkiRIG03nOa7xCSygNE1wHx7 UwzOg4c1H9CbC3ZRerNaJTThcrFRT6F0sNoSj1Idhh0AjMM/DfhaDQRVoHHhYLB71EexUMVhS6w9q x8JVn6+2kvQxnD4Me3QM51+4h5Lg0ythYDQFVWgvEEbkgojgiqRmra1gXnUi9SOOTUIPhPdb9FYzM 2mVo05GSn+k1n3jkn+zw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1o99Em-00Bqr9-Lb; Wed, 06 Jul 2022 17:54:56 +0000 Received: from ams.source.kernel.org ([2604:1380:4601:e00::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1o99Du-00BqZr-6Z for linux-arm-kernel@lists.infradead.org; Wed, 06 Jul 2022 17:54:03 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id C6433B81ADB; Wed, 6 Jul 2022 17:54:00 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 49439C341C8; Wed, 6 Jul 2022 17:53:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1657130039; bh=CXKbLKzOmn3+Rr6dj2MDJMY8en+5oa/0YHrtas5QQUY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bjU2KGsUfxS+xGQOhnY1OdDP0qSkh68lCZOxLWZn28mJl3TJekSWiREDzwIFq+xnv r2DXqNtvz5wXKIKGTsk3FRIazPNNsDVDWaZtN0HzjPMsasOc3fzAID6tIvjaXUV3Z5 j8K4lJBvizDkUt/bVIhchW/7YWlBJ5S4tFjd8xTy9msB0ZbWxfm3XCY0o6m5SOxA0g smCL27zgAmK7BvASfXoOkAJaCXVdq9dW3I/cjjAFeXzWiFRJqlKHc/o1wYgW/DYs4A nGWo8eG9+LOhbtnd6rr+8bTb8QiSGtdQk1fgwy8pJ4lUdwDBp4kb4ajgQxDSX9lBAx 9/YkwsUQysVWw== From: Mark Brown To: Catalin Marinas , Will Deacon Cc: Suzuki K Poulose , Szabolcs Nagy , linux-arm-kernel@lists.infradead.org, Mark Brown Subject: [PATCH v4 1/3] arm64/hwcap: Document allocation of upper bits of AT_HWCAP Date: Wed, 6 Jul 2022 18:52:54 +0100 Message-Id: <20220706175256.847703-2-broonie@kernel.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220706175256.847703-1-broonie@kernel.org> References: <20220706175256.847703-1-broonie@kernel.org> MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=783; h=from:subject; bh=CXKbLKzOmn3+Rr6dj2MDJMY8en+5oa/0YHrtas5QQUY=; b=owEBbQGS/pANAwAKASTWi3JdVIfQAcsmYgBixcv1v1FetBP2ZdYq1kNylC04BS/AFgJMpfXWiHQF xaqGmmyJATMEAAEKAB0WIQSt5miqZ1cYtZ/in+ok1otyXVSH0AUCYsXL9QAKCRAk1otyXVSH0DtRCA CHELMym0sXrElqX258raHh4n5WJ6iTQVqYpGvR+ZZPpQZXpgpdj8A/Wh/PBq42lm0vntmYZ3XadC3e QLHfAVVap11eM9L6xhV2eRRKkSHBliPWvMDL3u4a/gcFXa/kpGpRfhDlXlNXk0K9GTq9xZR7iv/J+s myKnVj+O4jU8lMne/mA63WfTanQuTJDcMxUEAL4i6APMBEpmYxNlC0S1P5ZAdOY9K11T2vEfpBkLId u5FnIbBsyJ757L3yCrcYkMGhxaAhF99RlqfdNyrokeyslassWLWUabN64MeFb/jneFjRLBqCnpLgvy i9SNngd/2j7ugE9JLE/Qxq/M2sUQ3/ X-Developer-Key: i=broonie@kernel.org; a=openpgp; fpr=3F2568AAC26998F9E813A1C5C3F436CA30F5D8EB X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220706_105402_418845_16CD5B03 X-CRM114-Status: GOOD ( 10.64 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org The top two bits of AT_HWCAP are reserved for use by glibc and the rest of the top 32 bits are being kept unallocated for potential use by glibc. Document this in the header. Signed-off-by: Mark Brown --- arch/arm64/include/uapi/asm/hwcap.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/arm64/include/uapi/asm/hwcap.h b/arch/arm64/include/uapi/asm/hwcap.h index 4bb2cc8ac446..cc2ccd0a9edf 100644 --- a/arch/arm64/include/uapi/asm/hwcap.h +++ b/arch/arm64/include/uapi/asm/hwcap.h @@ -19,6 +19,9 @@ /* * HWCAP flags - for AT_HWCAP + * + * Bits 60 and 61 are reserved for use by libc. + * Bits 32-59 are unallocated for potential use by libc. */ #define HWCAP_FP (1 << 0) #define HWCAP_ASIMD (1 << 1) From patchwork Wed Jul 6 17:52:55 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Brown X-Patchwork-Id: 12908446 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id AC4C3C433EF for ; Wed, 6 Jul 2022 17:56:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=ViIsU/Yo3PbyBz4eJhKj2aIWwTG0cjanaDYvn9S836w=; b=GzRgN9q7lCRoUc XIj55V/55XHan5UIY0V0Xr9vW4gkLW1bd5VdMHSynLqdT94v/rRmqneSYvPp3FlcKwEK9BrIcJ4Cb /0wzYfH55J5qRDGcNI4fGoOGmNatQ9ZXwF8MYwn/s0vvhoq3yOjWpWNgzzXGgmcYMXMAOuprOLvK1 1bw4KzLIzdA98QSviJLqX880tibSnIArJPVTs1/jiBqd5/klq/tgRN5y1ar4j0DRzItkTgRUi7AjD xz8whJn/wK3R2Efchdp0Nm9sTL2GXXcqYrHWeJSSTfTFtsoLppt5+iTmq4qccr24IzXbtNRTEQ0hh TiW/BeZKQGg9clfiVAFA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1o99F7-00Bqyv-V3; Wed, 06 Jul 2022 17:55:18 +0000 Received: from ams.source.kernel.org ([145.40.68.75]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1o99Dw-00BqbO-Vo for linux-arm-kernel@lists.infradead.org; Wed, 06 Jul 2022 17:54:07 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 399FFB81E69; Wed, 6 Jul 2022 17:54:03 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0871AC341CE; Wed, 6 Jul 2022 17:53:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1657130042; bh=ioaKgR6/PaIx8d82WBbtnX2f2PT6EEhU4JgUswr7CiI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OsrHI+61nw6bY6KkeOw8+ofqqLS/aiQ2qHl0dQ5Yxek43t4OImRdAXAaI01dzz3E9 gB1TF6/VMgdAPZ7DHkIY57z4irfSJROoKB3KgPMTCLosmsGvw2JX32SxTpzQ4bVxkD fOqltb1PyJcFM+Jdl0Tq0Fb8F/+PFTwhyDAG0Xj9MtjFOOEo1Hna0cfSAQM2Sdy+do v6R7D9eW/QU39tyxZjqJT7u4G3kSE7QbxH+lUnjMqQSKuCODQHU0EkiFHUiJhAxhT9 ezQPo3IWBlXGO3eY6Ufg/RzHNVOqmxhW4+xPtV/m5dzatwv440xEK7YHO/3zZthckL fERPkcrno7UVw== From: Mark Brown To: Catalin Marinas , Will Deacon Cc: Suzuki K Poulose , Szabolcs Nagy , linux-arm-kernel@lists.infradead.org, Mark Brown Subject: [PATCH v4 2/3] arm64/cpufeature: Store elf_hwcaps as a bitmap rather than unsigned long Date: Wed, 6 Jul 2022 18:52:55 +0100 Message-Id: <20220706175256.847703-3-broonie@kernel.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220706175256.847703-1-broonie@kernel.org> References: <20220706175256.847703-1-broonie@kernel.org> MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=3117; h=from:subject; bh=ioaKgR6/PaIx8d82WBbtnX2f2PT6EEhU4JgUswr7CiI=; b=owEBbQGS/pANAwAKASTWi3JdVIfQAcsmYgBixcv2wTHHbFCDaB7hRD5QSj9JMsCxTKMMp5/WhG+T RRT+zF6JATMEAAEKAB0WIQSt5miqZ1cYtZ/in+ok1otyXVSH0AUCYsXL9gAKCRAk1otyXVSH0H5rB/ 9y7JiIe9tfXfInOJ7ybSOwS8xw19myR3sqqlZPHid2j5yqLAyn6KzZMUAsLwtBNIDaSkHBMe7h7WUl VAnIK8cv1r+u85I6s9tbSbvNyvFHoXX3tt8srwsoGA3644/sKWBguzGtXPraOrUyo1+yIyv6i9TKGI Nr+jVUpWTRhojhTOhHBoGPifgF3QT/Q80/va+OF83ZdBwTFj/F4qCfURA3Y5ygfaSBB3qS4yPelG6i 7JOYRAOJk821pB8aJqDtGtJ/3m0msZwN8cp3SbbZoD7cZ+dwjmA70Hc0C4BiZcNRVlrScTXcWthD6+ UWRUqtoZthx+ME7ezLJZKppv6mzq0n X-Developer-Key: i=broonie@kernel.org; a=openpgp; fpr=3F2568AAC26998F9E813A1C5C3F436CA30F5D8EB X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220706_105405_437694_F8A2DAAE X-CRM114-Status: GOOD ( 15.34 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org When we added support for AT_HWCAP2 we took advantage of the fact that we have limited hwcaps to the low 32 bits and stored it along with AT_HWCAP in a single unsigned integer. Thanks to the ever expanding capabilities of the architecture we have now allocated all 64 of the bits in an unsigned long so in preparation for adding more hwcaps convert elf_hwcap to be a bitmap instead, with 64 bits allocated to each AT_HWCAP. There should be no functional change from this patch. Signed-off-by: Mark Brown --- arch/arm64/include/asm/cpufeature.h | 2 +- arch/arm64/include/asm/hwcap.h | 2 +- arch/arm64/kernel/cpufeature.c | 12 +++++------- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/arch/arm64/include/asm/cpufeature.h b/arch/arm64/include/asm/cpufeature.h index 14a8f3d93add..7abd6c0fa53d 100644 --- a/arch/arm64/include/asm/cpufeature.h +++ b/arch/arm64/include/asm/cpufeature.h @@ -11,7 +11,7 @@ #include #include -#define MAX_CPU_FEATURES 64 +#define MAX_CPU_FEATURES 128 #define cpu_feature(x) KERNEL_HWCAP_ ## x #ifndef __ASSEMBLY__ diff --git a/arch/arm64/include/asm/hwcap.h b/arch/arm64/include/asm/hwcap.h index aa443d8f8cfb..9b5fdc114f8c 100644 --- a/arch/arm64/include/asm/hwcap.h +++ b/arch/arm64/include/asm/hwcap.h @@ -85,7 +85,7 @@ #define KERNEL_HWCAP_PACA __khwcap_feature(PACA) #define KERNEL_HWCAP_PACG __khwcap_feature(PACG) -#define __khwcap2_feature(x) (const_ilog2(HWCAP2_ ## x) + 32) +#define __khwcap2_feature(x) (const_ilog2(HWCAP2_ ## x) + 64) #define KERNEL_HWCAP_DCPODP __khwcap2_feature(DCPODP) #define KERNEL_HWCAP_SVE2 __khwcap2_feature(SVE2) #define KERNEL_HWCAP_SVEAES __khwcap2_feature(SVEAES) diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c index 8d88433de81d..5ba226f3721c 100644 --- a/arch/arm64/kernel/cpufeature.c +++ b/arch/arm64/kernel/cpufeature.c @@ -91,7 +91,7 @@ #include /* Kernel representation of AT_HWCAP and AT_HWCAP2 */ -static unsigned long elf_hwcap __read_mostly; +static DECLARE_BITMAP(elf_hwcap, MAX_CPU_FEATURES) __read_mostly; #ifdef CONFIG_COMPAT #define COMPAT_ELF_HWCAP_DEFAULT \ @@ -3098,14 +3098,12 @@ static bool __maybe_unused __system_matches_cap(unsigned int n) void cpu_set_feature(unsigned int num) { - WARN_ON(num >= MAX_CPU_FEATURES); - elf_hwcap |= BIT(num); + set_bit(num, elf_hwcap); } bool cpu_have_feature(unsigned int num) { - WARN_ON(num >= MAX_CPU_FEATURES); - return elf_hwcap & BIT(num); + return test_bit(num, elf_hwcap); } EXPORT_SYMBOL_GPL(cpu_have_feature); @@ -3116,12 +3114,12 @@ unsigned long cpu_get_elf_hwcap(void) * note that for userspace compatibility we guarantee that bits 62 * and 63 will always be returned as 0. */ - return lower_32_bits(elf_hwcap); + return elf_hwcap[0]; } unsigned long cpu_get_elf_hwcap2(void) { - return upper_32_bits(elf_hwcap); + return elf_hwcap[1]; } static void __init setup_system_capabilities(void) From patchwork Wed Jul 6 17:52:56 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Brown X-Patchwork-Id: 12908447 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id AA17BC433EF for ; Wed, 6 Jul 2022 17:56:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=FR0k59upEhNvrwkcveeT37O25rgOi2aCTYWJYwFOgOU=; b=w/LQDyPXxKa+f6 RDkfCjjhbccS19GBwfKBCHAnrypfs84iS+xxSVeRgCvTF7KHyfMf4OLCfIqjaeb0OaVQqrtzYKWbt 59tenaoE85efiNu4T00FPt2YfatfuOOPzEAvGEJO3xB63zmS+aFeTRmy8AoIN1pVFVVrXuTB1/n1C 6wIVT3pqC1qd1WdRrHtcpSZWa0y6bVPFbS1vrpstT/7J4vgheZex7T2Qd/Kx3yyaOszL442JpVmkI 4B1Hv/LP7zhZX1eT9WIZDvxy6IeHfys2Ovoq97tVrPcUzWzoYrUK2l+fpzzvDu5pReISi/t5ozSOP ub6C6OyB7dH/ncNE5LvA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1o99FP-00Br73-Ds; Wed, 06 Jul 2022 17:55:35 +0000 Received: from dfw.source.kernel.org ([2604:1380:4641:c500::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1o99Dy-00Bqcs-HL for linux-arm-kernel@lists.infradead.org; Wed, 06 Jul 2022 17:54:08 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id E8AF261F70; Wed, 6 Jul 2022 17:54:05 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8B45BC3411C; Wed, 6 Jul 2022 17:54:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1657130044; bh=1LXEg0Sy/hWnLCyKoLvuSuqs69jeSzDhglfbGxTB1As=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Kng432PtQDWsK8LBNr+9OwTpbfa7wgdpXZJYru0H8angu/QWDRzre+41m71kh/eR5 ELeQ+DND70MvCs24JbVXrmIHdnA1jScE72shCaRCbBJ/ryJ0wo5RuC+/ssXy46DnsF wNJuestD3qji/vExt20oNFE20Suz9vqS7uJzB5lv8oXF7MlkkdS7WfsHPmWK961yJU 4r6nJCgh9+2Lqytca0WbQvhr16f4JMn/3wT0beEDBiF75S1C3XElJzZytdfapvTO2R gyk8yo+Mko3MAV1f5pdNPzM2FjvYOI5T0l2YmA5DvXsnGOarGqKo3yrEEnLWu9R72t 7CQwc/4ulRC7w== From: Mark Brown To: Catalin Marinas , Will Deacon Cc: Suzuki K Poulose , Szabolcs Nagy , linux-arm-kernel@lists.infradead.org, Mark Brown Subject: [PATCH v4 3/3] arm64/hwcap: Support FEAT_EBF16 Date: Wed, 6 Jul 2022 18:52:56 +0100 Message-Id: <20220706175256.847703-4-broonie@kernel.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220706175256.847703-1-broonie@kernel.org> References: <20220706175256.847703-1-broonie@kernel.org> MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=3383; h=from:subject; bh=1LXEg0Sy/hWnLCyKoLvuSuqs69jeSzDhglfbGxTB1As=; b=owEBbQGS/pANAwAKASTWi3JdVIfQAcsmYgBixcv2FSqZ2wenvhtKpwtndqEAbXh+Ri/RTwsZiXHT Y6sFGXuJATMEAAEKAB0WIQSt5miqZ1cYtZ/in+ok1otyXVSH0AUCYsXL9gAKCRAk1otyXVSH0O3QB/ 4lqTR4qYW6i8vJ6JXe3wWB8LSfnJFz3X1sxYl3cnk87nzJ10OuntgbK6JAFdiG5YmNk2SYhXBzSHrt StO5CSfxCsg4JETDLHXaFds4dgesOi7vjMJUb9nW4WQbfEPYbzG2btY9umFE5xqvEzP3wAtzS+AatO OXv70zXF11X2mH9lXcEjxiSJoN8DFUdRgg/UE8E8VXPH/rhJ+tv8AFPNjzS2lYNCivTRMainsQ/rza 2TFcpDlHTAOsuIWQARu4ZcUlLbpuTOvZ/7TChQDETUTw3CkegISTtCXQO835ZRKpra4mQsrCQ86nYO W1Q34xQHpheVZ5CgR59WU+z5g0IWAS X-Developer-Key: i=broonie@kernel.org; a=openpgp; fpr=3F2568AAC26998F9E813A1C5C3F436CA30F5D8EB X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220706_105406_715910_B62C1E60 X-CRM114-Status: GOOD ( 13.88 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org The v9.2 feature FEAT_EBF16 provides support for an extended BFloat16 mode. Allow userspace to discover system support for this feature by adding a hwcap for it. Signed-off-by: Mark Brown --- Documentation/arm64/elf_hwcaps.rst | 4 ++++ arch/arm64/include/asm/hwcap.h | 1 + arch/arm64/include/uapi/asm/hwcap.h | 1 + arch/arm64/kernel/cpufeature.c | 1 + arch/arm64/kernel/cpuinfo.c | 1 + 5 files changed, 8 insertions(+) diff --git a/Documentation/arm64/elf_hwcaps.rst b/Documentation/arm64/elf_hwcaps.rst index 3d116fb536c5..31fc10b833dd 100644 --- a/Documentation/arm64/elf_hwcaps.rst +++ b/Documentation/arm64/elf_hwcaps.rst @@ -301,6 +301,10 @@ HWCAP2_WFXT Functionality implied by ID_AA64ISAR2_EL1.WFXT == 0b0010. +HWCAP2_EBF16 + + Functionality implied by ID_AA64ISAR1_EL1.BF16 == 0b0010. + 4. Unused AT_HWCAP bits ----------------------- diff --git a/arch/arm64/include/asm/hwcap.h b/arch/arm64/include/asm/hwcap.h index 9b5fdc114f8c..cef4ae7a3d8b 100644 --- a/arch/arm64/include/asm/hwcap.h +++ b/arch/arm64/include/asm/hwcap.h @@ -118,6 +118,7 @@ #define KERNEL_HWCAP_SME_F32F32 __khwcap2_feature(SME_F32F32) #define KERNEL_HWCAP_SME_FA64 __khwcap2_feature(SME_FA64) #define KERNEL_HWCAP_WFXT __khwcap2_feature(WFXT) +#define KERNEL_HWCAP_EBF16 __khwcap2_feature(EBF16) /* * 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 cc2ccd0a9edf..ed97fd95bdf5 100644 --- a/arch/arm64/include/uapi/asm/hwcap.h +++ b/arch/arm64/include/uapi/asm/hwcap.h @@ -91,5 +91,6 @@ #define HWCAP2_SME_F32F32 (1 << 29) #define HWCAP2_SME_FA64 (1 << 30) #define HWCAP2_WFXT (1UL << 31) +#define HWCAP2_EBF16 (1UL << 32) #endif /* _UAPI__ASM_HWCAP_H */ diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c index 5ba226f3721c..c84f97797985 100644 --- a/arch/arm64/kernel/cpufeature.c +++ b/arch/arm64/kernel/cpufeature.c @@ -2623,6 +2623,7 @@ static const struct arm64_cpu_capabilities arm64_elf_hwcaps[] = { HWCAP_CAP(SYS_ID_AA64ISAR1_EL1, ID_AA64ISAR1_FRINTTS_SHIFT, 4, FTR_UNSIGNED, 1, CAP_HWCAP, KERNEL_HWCAP_FRINT), HWCAP_CAP(SYS_ID_AA64ISAR1_EL1, ID_AA64ISAR1_SB_SHIFT, 4, FTR_UNSIGNED, 1, CAP_HWCAP, KERNEL_HWCAP_SB), HWCAP_CAP(SYS_ID_AA64ISAR1_EL1, ID_AA64ISAR1_BF16_SHIFT, 4, FTR_UNSIGNED, 1, CAP_HWCAP, KERNEL_HWCAP_BF16), + HWCAP_CAP(SYS_ID_AA64ISAR1_EL1, ID_AA64ISAR1_BF16_SHIFT, 4, FTR_UNSIGNED, 2, CAP_HWCAP, KERNEL_HWCAP_EBF16), HWCAP_CAP(SYS_ID_AA64ISAR1_EL1, ID_AA64ISAR1_DGH_SHIFT, 4, FTR_UNSIGNED, 1, CAP_HWCAP, KERNEL_HWCAP_DGH), HWCAP_CAP(SYS_ID_AA64ISAR1_EL1, ID_AA64ISAR1_I8MM_SHIFT, 4, FTR_UNSIGNED, 1, CAP_HWCAP, KERNEL_HWCAP_I8MM), HWCAP_CAP(SYS_ID_AA64MMFR2_EL1, ID_AA64MMFR2_AT_SHIFT, 4, FTR_UNSIGNED, 1, CAP_HWCAP, KERNEL_HWCAP_USCAT), diff --git a/arch/arm64/kernel/cpuinfo.c b/arch/arm64/kernel/cpuinfo.c index 8eff0a34ffd4..2ca131243c30 100644 --- a/arch/arm64/kernel/cpuinfo.c +++ b/arch/arm64/kernel/cpuinfo.c @@ -107,6 +107,7 @@ static const char *const hwcap_str[] = { [KERNEL_HWCAP_SME_F32F32] = "smef32f32", [KERNEL_HWCAP_SME_FA64] = "smefa64", [KERNEL_HWCAP_WFXT] = "wfxt", + [KERNEL_HWCAP_EBF16] = "ebf16", }; #ifdef CONFIG_COMPAT