From patchwork Tue Feb 13 03:37:32 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Samuel Holland X-Patchwork-Id: 200199 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:bc8a:b0:106:860b:bbdd with SMTP id dn10csp308605dyb; Mon, 12 Feb 2024 19:38:42 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCX2DBCb0wIEV37oM0ywHN1KDx7qWf1yM4xGWC5//m5kIZF0R6xC5D7SbSFko/q/jKcfREvXRkxkaAIjvoRL/05ls6+6Eg== X-Google-Smtp-Source: AGHT+IGqOsDQHvWhpwgjRi+T2TMcW/Kb9CHBXrxpAfSz+5mdMFUbQhGy0XzwsEWAlJe14KAFUqbb X-Received: by 2002:a17:902:f809:b0:1d9:427a:99b with SMTP id ix9-20020a170902f80900b001d9427a099bmr7668880plb.32.1707795522287; Mon, 12 Feb 2024 19:38:42 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1707795522; cv=pass; d=google.com; s=arc-20160816; b=FYYcNXG/EEpqscVdAJjcz2w6dWMo1yiwPdzdDcvgLjvBtmTRCz1BOZFEXZg7OH79fo oQ+OlgpbggshhXJuGdSj4dSrraE/lu8rw7b7nIpYoisnTVP29lEwGucSlWFa9ytjmj7+ tgbw9kx1LJX4x/d+KLJs9GqKsOVqaE5yYLA+8fSzbJ6t8z1kcx90CUiPitVIHcFav5gz MenRHI38gAFpVZYS6gzV9Vizzapx3gSMHVmGGHEXou0lfF2AUOLa5C/6QEbU1JBJgbg2 sz9c+UiX9Y3Whl1/lu+kB3hmENC1StOmD5WfVXLyHJAoNJwUEiLDNgbic8XQg5zwN0QQ BrRg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=DbCTJ5IGhkP1LmE7TbGdUdt79kYAcBAyFyeC8QWmnbA=; fh=ElRNvS5MAnZeHNWja/WD5TMlPk7obCqcGpn1L3f7tow=; b=T0pPWh9tmKz4aC5JYhmVoFaebPsi186pY8vscejvLoYjws8j5vuKYjEqskLapfe+z9 iFn726wPAZpft+Uqp+L0ZiBhrVn4CTYxzN/XVf3vIwEdahXONck0pruT+YbiNPvA6mvn IXVsbmi9Lx4NEejYmBAxPAP6D0ba/RnS+p1bKABmKJfWUZlKHV/vwl6QTcEzlrl6xne9 VEr9gaL91zQo8A+UxubhYK2UBxwzPDdyvEfPIJJ6nYdhUas6SqIS6QWQvkmPsv88KWAp F4yTEO9bsN0998ZO1j2ZdYOiBNYXpaeT4nf9pvrf83dwwPZLN4cEghPzGe4ieaSNqNN7 jLnQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@sifive.com header.s=google header.b=SvBXWl4W; arc=pass (i=1 spf=pass spfdomain=sifive.com dkim=pass dkdomain=sifive.com dmarc=pass fromdomain=sifive.com); spf=pass (google.com: domain of linux-kernel+bounces-62913-ouuuleilei=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-62913-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=sifive.com X-Forwarded-Encrypted: i=2; AJvYcCUCrkrOoNtymFSrCu3Ij5qaaUi35HyUGQlH5tFyWbFFNBd87cL3q6ujd0E9AhcfK0s7RKfy2hhcnoODJ/pcJJYqx/7Z/A== Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id k12-20020a170902d58c00b001d8f4b57bf7si1271215plh.107.2024.02.12.19.38.42 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 12 Feb 2024 19:38:42 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-62913-ouuuleilei=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@sifive.com header.s=google header.b=SvBXWl4W; arc=pass (i=1 spf=pass spfdomain=sifive.com dkim=pass dkdomain=sifive.com dmarc=pass fromdomain=sifive.com); spf=pass (google.com: domain of linux-kernel+bounces-62913-ouuuleilei=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-62913-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=sifive.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 12161285B43 for ; Tue, 13 Feb 2024 03:38:42 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 7877910A3A; Tue, 13 Feb 2024 03:37:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=sifive.com header.i=@sifive.com header.b="SvBXWl4W" Received: from mail-oi1-f170.google.com (mail-oi1-f170.google.com [209.85.167.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E138F8F5C for ; Tue, 13 Feb 2024 03:37:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707795470; cv=none; b=DdEZPi/A6H4vArF5NKxUc3pVd9HvkrldPndQKIe3IE7AVLMjlJWetsPOZ9YCL6uSsf6DBQacKTerj1t9EmEQif2kcrFBUT9iIZl03cCJaqw4LU1nsShjHRg6ZStNwZgpt2lvMWgGifi+jLmholyZNt/+LY7t9Z0BRAA6SIgdDTk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707795470; c=relaxed/simple; bh=whB7Ohz/aZw41jDLmsNbB2EZqD6VWqw1GxgDMy7wNzw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HDUQ26GCi8cLXqCsEVb6DYEGEdwJJU4fo/h4oxOz4HzxRz8NV4kowZIXnp0Y0fuS8EwHXOMhzP+vV/2MHSnj4LEDnmg+ylE8sIOChoNlT9MjFrH87HqNpf1I1lvxzFz09eezM0bMiqBJRBGb42DpFZLD3FCkClNutqP7mmaAvsM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=sifive.com; spf=pass smtp.mailfrom=sifive.com; dkim=pass (2048-bit key) header.d=sifive.com header.i=@sifive.com header.b=SvBXWl4W; arc=none smtp.client-ip=209.85.167.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=sifive.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=sifive.com Received: by mail-oi1-f170.google.com with SMTP id 5614622812f47-3c031776e0cso2024250b6e.0 for ; Mon, 12 Feb 2024 19:37:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1707795467; x=1708400267; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=DbCTJ5IGhkP1LmE7TbGdUdt79kYAcBAyFyeC8QWmnbA=; b=SvBXWl4WKjxR5Y3T4VaBEtbfraAgYkc6DGXqjjJNhrjAo3vODTqocVNk8XZE+89vMe 25c2j+Zz/fHPAhE+zswA3Y1ecBRLnB6jUSMI9oVZkWa94c+8HlI/EVl1Wi2Pm2QuGsxZ bHopgMvFVS5V9F8GrzW7cxpAeIg7gtV0JSluyqf9zp8Pn2ZdTOtkV82nPVhxqe2dzdHY STlOTg6tdsJXP2p2tg1ths9t3gbvYM5kv67I3VvNKSrEDYAscoWkPsOwry3OpxiJlXBJ EDuvkPQybc7wRsWpUVXZt6XPVWBw+Ot/AoEhToxpkVJjgU+YvMOHW032WbQO5bC1eqGV dHUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707795467; x=1708400267; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=DbCTJ5IGhkP1LmE7TbGdUdt79kYAcBAyFyeC8QWmnbA=; b=NWuGAe7Ys2YzmB+QqxVhQYqffjbelDhZwRzrt0plpc2mcJjhrzGm/t6j4ft0yCAYlc W8PatIp7u03w297oO9peESuO6KcmZKawjkRfItFwNsfwg1afN6HWMYkJ0fm2V2tIxxRI BhDzAAk7gy4nefdN+xHMpPjkqDFLUEY6mm6LABCVeXbyhaH+VFXoTEeWtGHnojrG286Y oRKfz2stT6tTk97XRQ2xrtp2XmlWNSxKgnTmzrq1IUR5uY5IdW2P6V1qPQPI6lyp+TcD ea0JpZpxrCAMCEDXSgr/FWUSVaSU+90zzX0nYs74Wf489Dgx9921QTy3ecgccshEBVog CcuA== X-Forwarded-Encrypted: i=1; AJvYcCXIypVg/qDSyeIUekx3a9N2ob6g5DkB7jwWJetNdmCs2S103dJYK8M+Me3n/RwAP0W7O/+mfc3F3Ii/1NROcSH06rq2w66HYVlz8GLN X-Gm-Message-State: AOJu0YwYQuf4j8uTvXKYPLW34/FWj6gkKB6j8zKHHUmDvbZriGLUQ/8C slQD+/K3Ke9eFnSQC5u5q3uHPPxBwDiuorvFpmEUp6my013P2yxLH0HsOAaCp8s= X-Received: by 2002:a05:6808:298d:b0:3c0:2a95:d3c6 with SMTP id ex13-20020a056808298d00b003c02a95d3c6mr8180720oib.23.1707795466997; Mon, 12 Feb 2024 19:37:46 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCVG/9tEvERy1/zBWmZWATN9vy2GlKgAccgGMVroA50EeE7/5k30EBoGfGzSPQVGrAPHngcjrgBYvF+RvNslSmRsSoRygVpR8QgfaonMsrMhR8Acp+tY2Km1utekPImLqFVD+seoCQDmoakBzopdLkYZdAgIlb3PDYm9oavZ06D3knOGVT+4oc8cObDPMQHZZNXQ3vsaHWtRonDxS4SpF6AEPKFEoBLA/OuzoSULbJ3HoFmYvyFM Received: from sw06.internal.sifive.com ([4.53.31.132]) by smtp.gmail.com with ESMTPSA id v11-20020a056a00148b00b006e0334e3dd9sm6188633pfu.76.2024.02.12.19.37.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 12 Feb 2024 19:37:46 -0800 (PST) From: Samuel Holland To: Palmer Dabbelt Cc: Andrew Jones , linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Stefan O'Rear , Samuel Holland , stable@vger.kernel.org Subject: [PATCH -fixes v2 1/4] riscv: Fix enabling cbo.zero when running in M-mode Date: Mon, 12 Feb 2024 19:37:32 -0800 Message-ID: <20240213033744.4069020-2-samuel.holland@sifive.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240213033744.4069020-1-samuel.holland@sifive.com> References: <20240213033744.4069020-1-samuel.holland@sifive.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1790753397804482413 X-GMAIL-MSGID: 1790753397804482413 When the kernel is running in M-mode, the CBZE bit must be set in the menvcfg CSR, not in senvcfg. Cc: Fixes: 43c16d51a19b ("RISC-V: Enable cbo.zero in usermode") Reviewed-by: Andrew Jones Signed-off-by: Samuel Holland --- (no changes since v1) arch/riscv/include/asm/csr.h | 2 ++ arch/riscv/kernel/cpufeature.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/arch/riscv/include/asm/csr.h b/arch/riscv/include/asm/csr.h index 510014051f5d..2468c55933cd 100644 --- a/arch/riscv/include/asm/csr.h +++ b/arch/riscv/include/asm/csr.h @@ -424,6 +424,7 @@ # define CSR_STATUS CSR_MSTATUS # define CSR_IE CSR_MIE # define CSR_TVEC CSR_MTVEC +# define CSR_ENVCFG CSR_MENVCFG # define CSR_SCRATCH CSR_MSCRATCH # define CSR_EPC CSR_MEPC # define CSR_CAUSE CSR_MCAUSE @@ -448,6 +449,7 @@ # define CSR_STATUS CSR_SSTATUS # define CSR_IE CSR_SIE # define CSR_TVEC CSR_STVEC +# define CSR_ENVCFG CSR_SENVCFG # define CSR_SCRATCH CSR_SSCRATCH # define CSR_EPC CSR_SEPC # define CSR_CAUSE CSR_SCAUSE diff --git a/arch/riscv/kernel/cpufeature.c b/arch/riscv/kernel/cpufeature.c index 89920f84d0a3..c5b13f7dd482 100644 --- a/arch/riscv/kernel/cpufeature.c +++ b/arch/riscv/kernel/cpufeature.c @@ -950,7 +950,7 @@ arch_initcall(check_unaligned_access_all_cpus); void riscv_user_isa_enable(void) { if (riscv_cpu_has_extension_unlikely(smp_processor_id(), RISCV_ISA_EXT_ZICBOZ)) - csr_set(CSR_SENVCFG, ENVCFG_CBZE); + csr_set(CSR_ENVCFG, ENVCFG_CBZE); } #ifdef CONFIG_RISCV_ALTERNATIVE From patchwork Tue Feb 13 03:37:33 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Samuel Holland X-Patchwork-Id: 200198 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:bc8a:b0:106:860b:bbdd with SMTP id dn10csp308597dyb; Mon, 12 Feb 2024 19:38:41 -0800 (PST) X-Google-Smtp-Source: AGHT+IELcNlu6Q3bciZ8mrIbA/tfA4gmkBq3qPBPs/RfD1sCgdvYoFyyYZWWT7cG29pZlozDImAV X-Received: by 2002:aa7:c0c3:0:b0:561:f3af:433b with SMTP id j3-20020aa7c0c3000000b00561f3af433bmr325903edp.16.1707795521129; Mon, 12 Feb 2024 19:38:41 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1707795521; cv=pass; d=google.com; s=arc-20160816; b=UcshieBGBuDCQ1s2CfxLyxqOxeDS7A1Wpj4ShNKc/MQY32fg/Yhx4TOSrAsu9FcrF5 q33hMPkMW93+JuFtwmyrvIYqHC9/YiLrrxJSVUWuK5PX8Fp1YL1DiT+waav6Yg0QLQvk gE9ruNA/ErgLVYmkCbiBCozqoAlGuCwQBSQ+Na9PeYNcVWZFv6xCNuRHjgIthzzrQeER JD5fVcD7N4tZxGxe2XVq4ZiTVvKnMW8JIUIA6SzUNorlU/J3gtolyTqLemk33xKWX8wt twFjE/lpXPmoBnkLg0DrRm29j++ADIKxq4PCI2JIGi8C5gO06cjsW8UmpDsxRq/jXoTh USGg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=Jim7Yvb6VmY6JIh3NrVmUpVFosXkDK31kcFuWFcbExg=; fh=VFETjARecO7pAKwH4oOJKNAs99G7WDYTwR2+dPzFdjc=; b=ZTjD7vy09hOk/ERu01hj8CmqoaM6BJyhl4OI44t9WQKWZZwyyDQw1J9QSPS/BOP9Y/ Ss+69BQltscBkLgBmk05+mUwIqyuCianq6h8kMgvZEL10lU0EM8QkJWjxjj1vCFUVUhS 6NV3Eo0mqxZa0t6E41Mm6wO6kp4fJ1tCqytE1YE4tzJN218C7VGo8pq1qYXTxF1OTxav ++WrAackn0eEw+CSZNlb+7BFW6r0UgA+KER69JZm1yJjjW5zaU3q7BWPSu+tlXR+B0VW 5OUDY/k/XcehFfQ0U/Zz5Myf+j/4TqCGyvei61hFuamWNnBCJci0dR9xk0/Ufs5+1X3I YABg==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@sifive.com header.s=google header.b=lab23ese; arc=pass (i=1 spf=pass spfdomain=sifive.com dkim=pass dkdomain=sifive.com dmarc=pass fromdomain=sifive.com); spf=pass (google.com: domain of linux-kernel+bounces-62912-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-62912-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=sifive.com X-Forwarded-Encrypted: i=2; AJvYcCWLP4wlH4VQ2XHBgFSQmk3FiFDRnODhOvZy869KT5zWOOM26ykNzeq6I84jeeYx7aMhxI90mWmERckVwWjZq5C3oNF40Q== Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [2604:1380:4601:e00::3]) by mx.google.com with ESMTPS id cm18-20020a0564020c9200b0055ced896819si3447791edb.212.2024.02.12.19.38.40 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 12 Feb 2024 19:38:41 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-62912-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) client-ip=2604:1380:4601:e00::3; Authentication-Results: mx.google.com; dkim=pass header.i=@sifive.com header.s=google header.b=lab23ese; arc=pass (i=1 spf=pass spfdomain=sifive.com dkim=pass dkdomain=sifive.com dmarc=pass fromdomain=sifive.com); spf=pass (google.com: domain of linux-kernel+bounces-62912-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-62912-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=sifive.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 92E121F22C65 for ; Tue, 13 Feb 2024 03:38:40 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 4549910A22; Tue, 13 Feb 2024 03:37:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=sifive.com header.i=@sifive.com header.b="lab23ese" Received: from mail-pf1-f176.google.com (mail-pf1-f176.google.com [209.85.210.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DA1B79479 for ; Tue, 13 Feb 2024 03:37:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707795470; cv=none; b=GYoqNNpCWhv9+RvGzasqVEJ19StYBD+r1FjgKYU3ToAABiXlaePe7bYJTmcfXWdr3mhh+rkl75XOc66HtHKBtMdXxkXcrpxED/Uz3jBzbE4KqP9OYWAqcCiaTE6gWtVPfWYgYhkfHF57UDb3FteROVbwrwdzlVXm6aN9T1N/aw4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707795470; c=relaxed/simple; bh=8pIhNYnxLRa/X2tsQjOh7P2wqEz3w33s57I1KemeK24=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=OzHCynYHYgdr1EfdePCOKtGHFMdRHFUOLFHLC+bWVc33ahz/1Cpxh8eZvL3tOD8s0D5maz35ug0KamubCrlNK5lIQHKR4kS4hPeF6AAPlPxr9amAdY9S6VCiItnlfumRef/sHi3Efjq03q8LPZVXn0l3tj2CrZhxQuQiFE9izbU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=sifive.com; spf=pass smtp.mailfrom=sifive.com; dkim=pass (2048-bit key) header.d=sifive.com header.i=@sifive.com header.b=lab23ese; arc=none smtp.client-ip=209.85.210.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=sifive.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=sifive.com Received: by mail-pf1-f176.google.com with SMTP id d2e1a72fcca58-6e0ac91e1e9so1435785b3a.3 for ; Mon, 12 Feb 2024 19:37:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1707795468; x=1708400268; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Jim7Yvb6VmY6JIh3NrVmUpVFosXkDK31kcFuWFcbExg=; b=lab23esePh3NDeXbEI7/zXxRWu9K4hd3w4hojzCmQKAp4sN4dUe8Tzdl+oXym0ZwQz 4v1kmmOXJXnABk/XZunIETPquj4uW4PaQwghKoQhtzAD3LBPD51Vd1esed4j3PARXtDv IIGeVDMOcAZz94s+6h7pnltOS6D+wXIsZh3o2M6i23mHykDkkakfzHJO5clp0+ZQ1+0W n5dzVy+ExteTrHHgXbTM4larYUecoBIbSBJDvHRiQu4bZehVD2qJdb30ovN88pbNeHXr TEHfmYvleoAYhwrJq4LzPpaMHNRb3iDdVVegINQ5xHNn6uzAAVgJs7rRmNXcoqFzlyEk z58Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707795468; x=1708400268; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Jim7Yvb6VmY6JIh3NrVmUpVFosXkDK31kcFuWFcbExg=; b=uY1yOtPWVuXwcTRtIpFH60Z55yQeDQ6grbcVBeOvzY39e3HLXVO78gkw6kCWnLVM+d NKxlgWnBpxWz5TC9nWqySYdgjtXEhdbLwn8eYtM+6Ej4NSZGw2Rbb9+dEbEVbD7vJac3 RLYHWib/57tLxc3QVFEzGxQVHJHS1TjrPhX/AQM6otz0Gl82kLvRoO9FzjwltJdOq7U2 hILoEqitandbd1xMaaNYyieQYPc5QQkrmTQ9xVIyP76FCjlKWZqCyP/3ahqMAgndfeEN CiakWQtI02ZcybBYeMDtXj3Q2ZJTPQ7g2dcWjOxzTLC7SLAjETGLttwqXG+tOo+0SbzV fRXA== X-Gm-Message-State: AOJu0YxUkgoFQbNbiTJlOPZbx5scVmJZC+gQhaY158r5dcewg6ki+5fI 844yJFwo1IRjkdwAjPNQ0ytZge+nfQXAc0VIaiDBhJ76/fuwnsHmqh5Y416pUcc= X-Received: by 2002:aa7:8685:0:b0:6e0:5317:6772 with SMTP id d5-20020aa78685000000b006e053176772mr6713708pfo.1.1707795468162; Mon, 12 Feb 2024 19:37:48 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCUtDxXelkbmm+CM8OLoo8WM4giaZcxrKGw5FC1up94u0V6jYFdJloVUPvWRQ0Omxq/n9YRlGpQXAYGpmEIR7+klWd8162GgnV8tbjfr9NG9RNhsxttq1+vCK9foEoC0wKl6LWJ+VJ9OhaR6eZRwNvpqxF3p8xEUSYrb8ksnc2H07sCCYQfJvwH5l0u3YCp2Z9mi1xR2N69GDslZW7YF Received: from sw06.internal.sifive.com ([4.53.31.132]) by smtp.gmail.com with ESMTPSA id v11-20020a056a00148b00b006e0334e3dd9sm6188633pfu.76.2024.02.12.19.37.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 12 Feb 2024 19:37:47 -0800 (PST) From: Samuel Holland To: Palmer Dabbelt Cc: Andrew Jones , linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Stefan O'Rear , Samuel Holland Subject: [PATCH -fixes v2 2/4] dt-bindings: riscv: Add ratified privileged ISA versions Date: Mon, 12 Feb 2024 19:37:33 -0800 Message-ID: <20240213033744.4069020-3-samuel.holland@sifive.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240213033744.4069020-1-samuel.holland@sifive.com> References: <20240213033744.4069020-1-samuel.holland@sifive.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1790753396602399323 X-GMAIL-MSGID: 1790753396602399323 The baseline for the RISC-V privileged ISA is version 1.10. Using features from newer versions of the privileged ISA requires the supported version to be reported by platform firmware, either in the ISA string (where the binding already accepts version numbers) or in the riscv,isa-extensions property. So far two newer versions are ratified. Signed-off-by: Samuel Holland Reviewed-by: Andrew Jones --- Changes in v2: - New patch for v2 .../devicetree/bindings/riscv/extensions.yaml | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/Documentation/devicetree/bindings/riscv/extensions.yaml b/Documentation/devicetree/bindings/riscv/extensions.yaml index 63d81dc895e5..7faf22df01af 100644 --- a/Documentation/devicetree/bindings/riscv/extensions.yaml +++ b/Documentation/devicetree/bindings/riscv/extensions.yaml @@ -121,6 +121,16 @@ properties: version of the privileged ISA specification. # multi-letter extensions, sorted alphanumerically + - const: sm1p11 + description: + The standard Machine ISA v1.11, as ratified in the 20190608 + version of the privileged ISA specification. + + - const: sm1p12 + description: + The standard Machine ISA v1.12, as ratified in the 20211203 + version of the privileged ISA specification. + - const: smaia description: | The standard Smaia supervisor-level extension for the advanced @@ -134,6 +144,16 @@ properties: added by other RISC-V extensions in H/S/VS/U/VU modes and as ratified at commit a28bfae (Ratified (#7)) of riscv-state-enable. + - const: ss1p11 + description: + The standard Supervisor ISA v1.11, as ratified in the 20190608 + version of the privileged ISA specification. + + - const: ss1p12 + description: + The standard Supervisor ISA v1.12, as ratified in the 20211203 + version of the privileged ISA specification. + - const: ssaia description: | The standard Ssaia supervisor-level extension for the advanced From patchwork Tue Feb 13 03:37:34 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Samuel Holland X-Patchwork-Id: 200200 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:bc8a:b0:106:860b:bbdd with SMTP id dn10csp308729dyb; Mon, 12 Feb 2024 19:39:03 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCXfVUoJXDGkBrnuE/EaUr6GxsclDq8o3+FWVvESb+lqY6EEi3Do+U0Bo6QCJUg8dXI6ti9hsOxXyTf20eX++PWltbzx7g== X-Google-Smtp-Source: AGHT+IFi2w2feP7fEqeUb7SLTBRd9bLKKjim5hJmjF3Z2/rlVITIIRDgx885XjgZ3PuNRtAtLXkj X-Received: by 2002:a05:620a:4056:b0:785:98a0:6b24 with SMTP id i22-20020a05620a405600b0078598a06b24mr10559463qko.67.1707795542953; Mon, 12 Feb 2024 19:39:02 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1707795542; cv=pass; d=google.com; s=arc-20160816; b=lb00SlawOMb6QFwkDDAAp+z2XlPMq3KZ7/doH0/Sh68d2WfVfvpH9u7153HUkG8hmd KjX1I/MuFKkyRHH+vzMb/t8DbmJKJtt4yF3s3iQhGcmKUbkhcm5necj0SK0ZfHiv3TAA X/qIH54rQIxYXX2MR32hPNKmgBz9COD0PgBC49diDT6D/WNzLYgjhYZBwBpNP851Kk5Q 4rZQQr5BHlBn0VLCNb6JdLNxuqQ1X83unF22N9bhCcMoiVynbGcyDQZUwikgWuZlRqJQ MeJyfy/b9a7wtup1DEJTTfSPSj9lvGYqYqDfKMvHC3uz90iDdZtkYTuQl083S5P6MblB C35Q== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=rK79X93EtBW9qJrpk3LrvTi516ybVeRsHV0te+WOVM0=; fh=mOuY5FKBmHkn9HbJp0Kp/RUH2YN75+Rrr+9GL4Uc6Dg=; b=yZW2RhZ43I6Oxs6fmCZMwfusupPTKa7xjBBA8zPXVckmOfnSexmaWm/JaN4wrf1Erm 4P7uwMqieTvd1YgncHGWD6+B0GRaoUwvN/KzqlIm9ut0lhIerQptPydwcbIFJ2UENqwd HIi4U5cDdBz0oKO3sNzPp5m6nhef3YDyYrlKNfvNq3cDqx15oyXhvpF1R0NtkEH2D3gP wFtkLUluQMT6G1fBmU9Op6fpogvw7K4q/qyRe3UejK660kPc0g/mCdTSAD6q8wE9kiLR WyoaCMStKG+uM7tpgzDof6PLXQTwrZzCBB6B3BpDAnGdbJb6DvUVMFbWj+PWWK2ddGUt W31w==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@sifive.com header.s=google header.b=Uxs9ickc; arc=pass (i=1 spf=pass spfdomain=sifive.com dkim=pass dkdomain=sifive.com dmarc=pass fromdomain=sifive.com); spf=pass (google.com: domain of linux-kernel+bounces-62914-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-62914-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=sifive.com X-Forwarded-Encrypted: i=2; AJvYcCUZ6qYkJO6BuhjyYa2Sq8yZG/PKfkm9aWZc1S6f1IVJODexfptOSEANqYaKHpgB9MwOUP9D0zAn67ZAndIfTr1Eyp22lA== Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id da7-20020a05620a360700b00785bdfe0c47si7232900qkb.258.2024.02.12.19.39.02 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 12 Feb 2024 19:39:02 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-62914-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) client-ip=147.75.199.223; Authentication-Results: mx.google.com; dkim=pass header.i=@sifive.com header.s=google header.b=Uxs9ickc; arc=pass (i=1 spf=pass spfdomain=sifive.com dkim=pass dkdomain=sifive.com dmarc=pass fromdomain=sifive.com); spf=pass (google.com: domain of linux-kernel+bounces-62914-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-62914-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=sifive.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 9AA2E1C22B9B for ; Tue, 13 Feb 2024 03:39:02 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 76E2611C92; Tue, 13 Feb 2024 03:37:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=sifive.com header.i=@sifive.com header.b="Uxs9ickc" Received: from mail-pf1-f177.google.com (mail-pf1-f177.google.com [209.85.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EEE5BAD2C for ; Tue, 13 Feb 2024 03:37:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707795471; cv=none; b=aS1CulKG3wy7vImo/YeUnisML4mbrIE05iHEYd6p3bQ5DVlFR8RrLULJ6iqydaIZ6Quir6Ia5VQgm4ZaWuPXULA9V0KKkz06Os0RCCu+0r5tDq1rGbwZjEK8vNeNzH4hu9mMXzBcipMMlx3WR9V/E2usgoH4zfxa84A/LyARqng= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707795471; c=relaxed/simple; bh=SMCn7g12fMC2sDrQkk/bPAiYh0jF4g8+5rw2D33BJQA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=e41ybtwORMf7WK2+PFYcGfciCWf0pvK5DdRHVamrsV9gU1cnS1XF6D51ud1snfkVhKpvSAN2JcWRPwp+LzfdZCjdiHsNEnd1RwWtzLD371OZQI1CZYM4wA9tHE8f7H/kKWRWXVe4dq7K7kQ+wx8VQCasYzOu+Uk36aAhaK4IVyI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=sifive.com; spf=pass smtp.mailfrom=sifive.com; dkim=pass (2048-bit key) header.d=sifive.com header.i=@sifive.com header.b=Uxs9ickc; arc=none smtp.client-ip=209.85.210.177 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=sifive.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=sifive.com Received: by mail-pf1-f177.google.com with SMTP id d2e1a72fcca58-6e0fc87fc2dso27084b3a.3 for ; Mon, 12 Feb 2024 19:37:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1707795469; x=1708400269; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=rK79X93EtBW9qJrpk3LrvTi516ybVeRsHV0te+WOVM0=; b=Uxs9ickch7LGzdLRkWzSwGyM5NtdG0Jg99PABSkPo6fqeimF8pquOFC5+X83S8YpWg q9sHIW7ziNBEjoliIQRokMprDPT0IIxcXB/nokCTgleg4piXQlGbuXGNDya70/hVSASJ VL8c4OaXc4Lw3697jDAVBLyAegw+tIzX6715duXESRfqSzJ8omB6YTm/v4dagjzTjuSY oy6yoLnNc9k7ErVT/RAxeqfMZh1nAIQu+cycWITgbI+rW80jUEY8QWACI1eeepXFREv5 fcv2NdM+ex6efqDPmyDU7MgxkvOVRmc1WODr2Pm5sxbKfyLXw03QwwCkH4BVYggXHsfL UJEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707795469; x=1708400269; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=rK79X93EtBW9qJrpk3LrvTi516ybVeRsHV0te+WOVM0=; b=WncrKR6OICs9chRxosjUZqNkcMz4qbHwjY5E9y/qIv/hfOE6qnZm35NZLAroki1jgB wmDMiOpihKfe5UHCU07K5/uDOH4ANm6iYU18hfiLLMhOtQ5Wjwf+TNHIOZ4RM911FKxd qYQAag2cDAbZEBSsIB8q+kUsxKgp3T1O/ym9GrMsTORL529TvuSzI9TpdvcYw2gst+fb ZKW8GsAiHio+PnVDYqU9sC7iKikNCBKFoIO/J3TdHUAi1FvR0CHHNvUK4erR15LuAanX JmOL/02gLpjGko9niDTOJ2bRd1RawYHP2T2sgTI6cG3Tkrv3sxQ3Zy4ddTkDBc1T8F+z 67Yg== X-Forwarded-Encrypted: i=1; AJvYcCWrzbnL8//s65+LFmDEobu2FgX00X9eLp3f21jjE7lmAz1BHR8OQevuYr8QlVFw8yyIcdIII2g/3rrUvTfl6FRke3y3/uCvTFhrDcpv X-Gm-Message-State: AOJu0Yxv4my7f5R/d0f+QQjOlunHDpRk8z4r7wmUw2d6FIjkn02PiYyQ yl71qLJFNjDmTj0W9Ek/sImZXzwvURJIHlRI/CuLeDnTwHi1/Ii0/kEOcazPVcSQoyG9Sk9M1V3 2 X-Received: by 2002:a05:6a00:189c:b0:6e0:31c4:3f09 with SMTP id x28-20020a056a00189c00b006e031c43f09mr9843628pfh.3.1707795469256; Mon, 12 Feb 2024 19:37:49 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCU80nXNvG9IvTEkeb+gI3X5g1/YZ1z9f+aFTwEsVZd0YtQwmVXoa/KRvIon26KAt5cNSlHOeF71a2FjUjqRP5PAlJ+nc8CF55EDOUaiOA/PhkgZtMyNbXe6JSVbSCfvp7M3BnJ0NMLC4buORby3LxdT+OtSBYTQh5DYywQasxUalqsHQ7bHg8gdayxPwY7rNeHYSVcWKeeIrg6JNnJHFCh85OAs1TwkJJvw1jzosIxo0AzhuK8B Received: from sw06.internal.sifive.com ([4.53.31.132]) by smtp.gmail.com with ESMTPSA id v11-20020a056a00148b00b006e0334e3dd9sm6188633pfu.76.2024.02.12.19.37.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 12 Feb 2024 19:37:48 -0800 (PST) From: Samuel Holland To: Palmer Dabbelt Cc: Andrew Jones , linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Stefan O'Rear , Samuel Holland , stable@vger.kernel.org Subject: [PATCH -fixes v2 3/4] riscv: Add ISA extension parsing for Sm and Ss Date: Mon, 12 Feb 2024 19:37:34 -0800 Message-ID: <20240213033744.4069020-4-samuel.holland@sifive.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240213033744.4069020-1-samuel.holland@sifive.com> References: <20240213033744.4069020-1-samuel.holland@sifive.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1790753419169148245 X-GMAIL-MSGID: 1790753419169148245 Previously, all extension version numbers were ignored. However, the version number is important for these two extensions. The simplest way to implement this is to use a separate bitmap bit for each supported version, with each successive version implying all of the previous ones. This allows alternatives and riscv_has_extension_[un]likely() to work naturally. To avoid duplicate extensions in /proc/cpuinfo, the new successor_id field allows hiding all but the newest implemented version of an extension. Cc: # v6.7+ Signed-off-by: Samuel Holland --- Changes in v2: - New patch for v2 arch/riscv/include/asm/cpufeature.h | 1 + arch/riscv/include/asm/hwcap.h | 8 ++++++ arch/riscv/kernel/cpu.c | 5 ++++ arch/riscv/kernel/cpufeature.c | 42 +++++++++++++++++++++++++---- 4 files changed, 51 insertions(+), 5 deletions(-) diff --git a/arch/riscv/include/asm/cpufeature.h b/arch/riscv/include/asm/cpufeature.h index 0bd11862b760..ac71384e7bc4 100644 --- a/arch/riscv/include/asm/cpufeature.h +++ b/arch/riscv/include/asm/cpufeature.h @@ -61,6 +61,7 @@ struct riscv_isa_ext_data { const char *property; const unsigned int *subset_ext_ids; const unsigned int subset_ext_size; + const unsigned int successor_id; }; extern const struct riscv_isa_ext_data riscv_isa_ext[]; diff --git a/arch/riscv/include/asm/hwcap.h b/arch/riscv/include/asm/hwcap.h index 5340f818746b..5b51aa1db15b 100644 --- a/arch/riscv/include/asm/hwcap.h +++ b/arch/riscv/include/asm/hwcap.h @@ -80,13 +80,21 @@ #define RISCV_ISA_EXT_ZFA 71 #define RISCV_ISA_EXT_ZTSO 72 #define RISCV_ISA_EXT_ZACAS 73 +#define RISCV_ISA_EXT_SM1p11 74 +#define RISCV_ISA_EXT_SM1p12 75 +#define RISCV_ISA_EXT_SS1p11 76 +#define RISCV_ISA_EXT_SS1p12 77 #define RISCV_ISA_EXT_MAX 128 #define RISCV_ISA_EXT_INVALID U32_MAX #ifdef CONFIG_RISCV_M_MODE +#define RISCV_ISA_EXT_Sx1p11 RISCV_ISA_EXT_SM1p11 +#define RISCV_ISA_EXT_Sx1p12 RISCV_ISA_EXT_SM1p12 #define RISCV_ISA_EXT_SxAIA RISCV_ISA_EXT_SMAIA #else +#define RISCV_ISA_EXT_Sx1p11 RISCV_ISA_EXT_SS1p11 +#define RISCV_ISA_EXT_Sx1p12 RISCV_ISA_EXT_SS1p12 #define RISCV_ISA_EXT_SxAIA RISCV_ISA_EXT_SSAIA #endif diff --git a/arch/riscv/kernel/cpu.c b/arch/riscv/kernel/cpu.c index d11d6320fb0d..2e6b90ed0d51 100644 --- a/arch/riscv/kernel/cpu.c +++ b/arch/riscv/kernel/cpu.c @@ -215,6 +215,11 @@ static void print_isa(struct seq_file *f, const unsigned long *isa_bitmap) if (!__riscv_isa_extension_available(isa_bitmap, riscv_isa_ext[i].id)) continue; + /* Only show the newest implemented version of an extension */ + if (riscv_isa_ext[i].successor_id != RISCV_ISA_EXT_INVALID && + __riscv_isa_extension_available(isa_bitmap, riscv_isa_ext[i].successor_id)) + continue; + /* Only multi-letter extensions are split by underscores */ if (strnlen(riscv_isa_ext[i].name, 2) != 1) seq_puts(f, "_"); diff --git a/arch/riscv/kernel/cpufeature.c b/arch/riscv/kernel/cpufeature.c index c5b13f7dd482..8e10b50120e9 100644 --- a/arch/riscv/kernel/cpufeature.c +++ b/arch/riscv/kernel/cpufeature.c @@ -113,23 +113,29 @@ static bool riscv_isa_extension_check(int id) return true; } -#define _RISCV_ISA_EXT_DATA(_name, _id, _subset_exts, _subset_exts_size) { \ +#define _RISCV_ISA_EXT_DATA(_name, _id, _subset_exts, _subset_exts_size, _successor) { \ .name = #_name, \ .property = #_name, \ .id = _id, \ .subset_ext_ids = _subset_exts, \ - .subset_ext_size = _subset_exts_size \ + .subset_ext_size = _subset_exts_size, \ + .successor_id = _successor, \ } -#define __RISCV_ISA_EXT_DATA(_name, _id) _RISCV_ISA_EXT_DATA(_name, _id, NULL, 0) +#define __RISCV_ISA_EXT_DATA(_name, _id) \ + _RISCV_ISA_EXT_DATA(_name, _id, NULL, 0, RISCV_ISA_EXT_INVALID) /* Used to declare pure "lasso" extension (Zk for instance) */ #define __RISCV_ISA_EXT_BUNDLE(_name, _bundled_exts) \ - _RISCV_ISA_EXT_DATA(_name, RISCV_ISA_EXT_INVALID, _bundled_exts, ARRAY_SIZE(_bundled_exts)) + _RISCV_ISA_EXT_DATA(_name, RISCV_ISA_EXT_INVALID, \ + _bundled_exts, ARRAY_SIZE(_bundled_exts), RISCV_ISA_EXT_INVALID) /* Used to declare extensions that are a superset of other extensions (Zvbb for instance) */ #define __RISCV_ISA_EXT_SUPERSET(_name, _id, _sub_exts) \ - _RISCV_ISA_EXT_DATA(_name, _id, _sub_exts, ARRAY_SIZE(_sub_exts)) + _RISCV_ISA_EXT_DATA(_name, _id, _sub_exts, ARRAY_SIZE(_sub_exts), RISCV_ISA_EXT_INVALID) + +#define __RISCV_ISA_EXT_VERSION(_name, _id, _preds, _preds_size, _successor) \ + _RISCV_ISA_EXT_DATA(_name, _id, _preds, _preds_size, _successor) static const unsigned int riscv_zk_bundled_exts[] = { RISCV_ISA_EXT_ZBKB, @@ -201,6 +207,16 @@ static const unsigned int riscv_zvbb_exts[] = { RISCV_ISA_EXT_ZVKB }; +static const unsigned int riscv_sm_ext_versions[] = { + RISCV_ISA_EXT_SM1p11, + RISCV_ISA_EXT_SM1p12, +}; + +static const unsigned int riscv_ss_ext_versions[] = { + RISCV_ISA_EXT_SS1p11, + RISCV_ISA_EXT_SS1p12, +}; + /* * The canonical order of ISA extension names in the ISA string is defined in * chapter 27 of the unprivileged specification. @@ -299,8 +315,16 @@ const struct riscv_isa_ext_data riscv_isa_ext[] = { __RISCV_ISA_EXT_DATA(zvksh, RISCV_ISA_EXT_ZVKSH), __RISCV_ISA_EXT_BUNDLE(zvksg, riscv_zvksg_bundled_exts), __RISCV_ISA_EXT_DATA(zvkt, RISCV_ISA_EXT_ZVKT), + __RISCV_ISA_EXT_VERSION(sm1p11, RISCV_ISA_EXT_SM1p11, riscv_sm_ext_versions, 0, + RISCV_ISA_EXT_SM1p12), + __RISCV_ISA_EXT_VERSION(sm1p12, RISCV_ISA_EXT_SM1p12, riscv_sm_ext_versions, 1, + RISCV_ISA_EXT_INVALID), __RISCV_ISA_EXT_DATA(smaia, RISCV_ISA_EXT_SMAIA), __RISCV_ISA_EXT_DATA(smstateen, RISCV_ISA_EXT_SMSTATEEN), + __RISCV_ISA_EXT_VERSION(ss1p11, RISCV_ISA_EXT_SS1p11, riscv_ss_ext_versions, 0, + RISCV_ISA_EXT_SS1p12), + __RISCV_ISA_EXT_VERSION(ss1p12, RISCV_ISA_EXT_SS1p12, riscv_ss_ext_versions, 1, + RISCV_ISA_EXT_INVALID), __RISCV_ISA_EXT_DATA(ssaia, RISCV_ISA_EXT_SSAIA), __RISCV_ISA_EXT_DATA(sscofpmf, RISCV_ISA_EXT_SSCOFPMF), __RISCV_ISA_EXT_DATA(sstc, RISCV_ISA_EXT_SSTC), @@ -414,6 +438,14 @@ static void __init riscv_parse_isa_string(unsigned long *this_hwcap, struct risc ; ++ext_end; + + /* + * As a special case for the Sm and Ss extensions, where the version + * number is important, include it in the extension name. + */ + if (ext_end - ext == 2 && tolower(ext[0]) == 's' && + (tolower(ext[1]) == 'm' || tolower(ext[1]) == 's')) + ext_end = isa; break; default: /* From patchwork Tue Feb 13 03:37:35 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Samuel Holland X-Patchwork-Id: 200201 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:bc8a:b0:106:860b:bbdd with SMTP id dn10csp308733dyb; Mon, 12 Feb 2024 19:39:03 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCXWlKAcHSqj8/ptFXvKYs/X8KoWyFiXupfiswF04o2F2n7FZJ2Zw4SO+egGomvlnSuoQs6ScbeU21H/X7/fxTDGgUDu0w== X-Google-Smtp-Source: AGHT+IFo3oER0b8TS0x3x3qH3GgfAreIUpilk8CW4TAAN4PCdOzmxr2uOtKbrnD23IIMX9ypCFcH X-Received: by 2002:a0c:db88:0:b0:68c:850e:12c1 with SMTP id m8-20020a0cdb88000000b0068c850e12c1mr8865041qvk.13.1707795543558; Mon, 12 Feb 2024 19:39:03 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1707795543; cv=pass; d=google.com; s=arc-20160816; b=boqptZKqa3BtAudoeSFQRgqch/hYBXpuVSBlqaCsRdj4A7mOF+QeCPQXBEXSiPlZ8F bsISRIc7boPBD6K2ryheg0KbQmJnnobD10RzjrCspJ+73eEEYRoA32omM8D2el0ZKmac jtkdps2RIwAegh855omwP2HwbWtp5Z2VfOim+p7ggP51r56IqLy9Az2thHC1xxHBCzIF D5uaKTTf4KdmPWBqdT3WSImLvZmTN/g9twnag5w3nhWGwMfF6m1ygxmdvIGEaQP5vYh7 +ASDT9bt1ZFF87Ru4FEnYpA+oNIA90gguCmoixvAK5b5ig1WJQ0ZcUdsWdUQdwdA1lXr CwIA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=Xt5jr7Ps3GScSgM4o7qnaO9gd+HMLeMAVDsngYj3hEM=; fh=KhdxJNxrdF5oE5oa/QL1uqXr/cJ9MHBjS1eQMLTAAKg=; b=jOdQIj7/n/ik8ygia81zi1DJy/1ZfNSffa6zRqg+MHfnZGBDJOWX9rQTgb/ffb+Vt9 RDaLabekMBQ5bRTVdDb6rvsb+WOWG5MmaipH2Lcrlft+riO+QM3wWNFB9h/DC3HVitSw anxCpmD5Yehd99g8aaL9O8nivGuiBu2/+Q3ShHRt5Miij+431I3SKMwAPA+cMx6Oift9 y3zJA8fk12WmTF4ln8bIf/9ES/tkRnQRGKwtF/OhxRXkYh31YQ40EEv3v5aKXEaBJ70s 57eL7QpBrjqO2BuBMFtQoefhYg3UJJS7S2AlODn1vrdTD76vU8qXFPb2lvQaxhO08Wyj 12fg==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@sifive.com header.s=google header.b=XJFJzuM6; arc=pass (i=1 spf=pass spfdomain=sifive.com dkim=pass dkdomain=sifive.com dmarc=pass fromdomain=sifive.com); spf=pass (google.com: domain of linux-kernel+bounces-62915-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-62915-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=sifive.com X-Forwarded-Encrypted: i=2; AJvYcCUdIXsQm2zCR+wFLlhPFnQDMrC+P2K6WtO205LtaRsV42GtzyHejzsQIP2yU4OzQI9txhm/TrEkroXTqHI1Yc4dSBPPHg== Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id jt1-20020a05621427e100b0068cbd994768si2000045qvb.566.2024.02.12.19.39.03 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 12 Feb 2024 19:39:03 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-62915-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@sifive.com header.s=google header.b=XJFJzuM6; arc=pass (i=1 spf=pass spfdomain=sifive.com dkim=pass dkdomain=sifive.com dmarc=pass fromdomain=sifive.com); spf=pass (google.com: domain of linux-kernel+bounces-62915-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-62915-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=sifive.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 40EA11C22EFB for ; Tue, 13 Feb 2024 03:39:03 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 97C0F11CBE; Tue, 13 Feb 2024 03:37:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=sifive.com header.i=@sifive.com header.b="XJFJzuM6" Received: from mail-oi1-f170.google.com (mail-oi1-f170.google.com [209.85.167.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4A160BE5B for ; Tue, 13 Feb 2024 03:37:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707795472; cv=none; b=o1lmTC/wgCejwQTns+j1Q8dxG3SEEzhXuBn7233EyijOHQPQQ8hknNlxDfjNPLiiPJ3CCc9DjpqRSDBdRKKfKCzQ8AWDcKe7xYLst4DoN9HSdxxyk0CL+6WaD4+ljVGhMR5AfqIgtAaha4LAEebMEK/GpcRS1BqokXk7rie+XHw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707795472; c=relaxed/simple; bh=+XzSJU8wJISBeAeCiej2B/wBCsa3VX7K7aJaMYWlWHo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=iN2aozxKqDNW/iuAoPJAeb4pIAmGWbp/JCHDPU/5tNYCj09TuZUF5IjsUAbQvSqtubN2nWIiLeJnkwBwf0c5Zrn6iZv31V7X9u2CXb38o24/pT7XLhFG9h+IkBSMI3upbJGrEatq3M9Q/SXzGj8Rgw0OQbWwFuSvYObNR/yoMsM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=sifive.com; spf=pass smtp.mailfrom=sifive.com; dkim=pass (2048-bit key) header.d=sifive.com header.i=@sifive.com header.b=XJFJzuM6; arc=none smtp.client-ip=209.85.167.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=sifive.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=sifive.com Received: by mail-oi1-f170.google.com with SMTP id 5614622812f47-3be9e11ee59so1944523b6e.1 for ; Mon, 12 Feb 2024 19:37:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1707795470; x=1708400270; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Xt5jr7Ps3GScSgM4o7qnaO9gd+HMLeMAVDsngYj3hEM=; b=XJFJzuM67MXtfpkGs0KHvLwS+pPs4cY4Qf7d8/7K691a5Wo7068Y+7x9taLX3Te7lF 4Zi/enU/fL4vFuVicBRhMa2tnYTB+qeXbgw28X0SPbez7cDGlsSjXL9yBuBlM3eoKo7t u3s3pKV6d6nTPuJt1vgvWPwMmXa3vyNBrXXYnUS3Y7gwbemmVROA/7ZRfp3qA/6XTt2E 3YuiVI2Ue4kbid4qvzFPa9FJFHmBsXoapFUfmHzSRTmQGCiYO/QiJf7hqA4XGDSYxjCO Zpc1GQad9l44MaDubenm0oXXheawV/OuGIK2XrFkvZMk9NoZ5Hse3uydfJFTVPgAZSZa T4RQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707795470; x=1708400270; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Xt5jr7Ps3GScSgM4o7qnaO9gd+HMLeMAVDsngYj3hEM=; b=nK0YMNrLaf3ujJjF4dTlLcqN7FcOTP/JelLqkqilAbap47N3iFt0TAKHafPmyNuqNN ksBUxo8HNnU+PAyI+LvaNQZ41TZcqh9ticZVyaRfhbb8/QdmBIQDnzeXfq9M83Z2eSds UTThLZTLqKHY/vrZXRLBrCdaVBrviniGWtfFWGfyvh5bBWqRMfMADnQMagLXF2d7yXD7 DveynSLAj/M6HpeuZHAGMI8tQBtJfwR2ULZHp1cqbbbe9VcghY23h6kkMvvEKsEttT19 hw/zSOyU0a//3fNAXoXGTV7duFT1H5qfCg5S18RBpEN6k7JwTqCBnvWEd0IO2FIKl79j ZKVg== X-Forwarded-Encrypted: i=1; AJvYcCWqdnN/qKMv3esE6j0BFs115IDYx1rjaLUlsckasTXB/AVcakxwlviX6ihSSsUn/T2HNC16cIWP1kIsxi7XIQcaJbxrarU4z23IpkV2 X-Gm-Message-State: AOJu0YzLJZg5KnSomudOOARTHObK6nq9rPwPE3vOxTBwBd2qXhJGtdM7 jHwS8dShqwsQMRoK8Vc2iipvYdCAWR3oFpQdAu0NMqTALJg6lpvagRble51Ef2c= X-Received: by 2002:a05:6808:318e:b0:3c0:3e26:5259 with SMTP id cd14-20020a056808318e00b003c03e265259mr3613268oib.55.1707795470293; Mon, 12 Feb 2024 19:37:50 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCU1Rc/sB1dWFTQwmx8p2iRKVv5LgWrJCCSeKr8P6rkMbd1uH7JfQSG1Hh74JOY/jKeiuxbEy02WDs3e/g0A9q30Q69s839YsJVcUxX+VSSGNa6J9l4dlN7oNmWZViRGWfRPnJ4HGTtAfEOZMIknw36bZj+YL2HlkbpMT607pb4e7y6zq/Em6Inl3R1cLd8ht02GMlwLAyCC8dUbcCwwaoAhdKHd9WN0x4go0e/Cp4Rmx44os1Oj Received: from sw06.internal.sifive.com ([4.53.31.132]) by smtp.gmail.com with ESMTPSA id v11-20020a056a00148b00b006e0334e3dd9sm6188633pfu.76.2024.02.12.19.37.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 12 Feb 2024 19:37:49 -0800 (PST) From: Samuel Holland To: Palmer Dabbelt Cc: Andrew Jones , linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Stefan O'Rear , Samuel Holland , stable@vger.kernel.org Subject: [PATCH -fixes v2 4/4] riscv: Save/restore envcfg CSR during CPU suspend Date: Mon, 12 Feb 2024 19:37:35 -0800 Message-ID: <20240213033744.4069020-5-samuel.holland@sifive.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240213033744.4069020-1-samuel.holland@sifive.com> References: <20240213033744.4069020-1-samuel.holland@sifive.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1790753419638894728 X-GMAIL-MSGID: 1790753419638894728 The value of the [ms]envcfg CSR is lost when entering a nonretentive idle state, so the CSR must be rewritten when resuming the CPU. Cc: # v6.7+ Fixes: 43c16d51a19b ("RISC-V: Enable cbo.zero in usermode") Signed-off-by: Samuel Holland --- Changes in v2: - Check for privileged ISA v1.12 instead of the specific CSR - Use riscv_has_extension_likely() instead of new ALTERNATIVE()s arch/riscv/include/asm/suspend.h | 1 + arch/riscv/kernel/suspend.c | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/arch/riscv/include/asm/suspend.h b/arch/riscv/include/asm/suspend.h index 02f87867389a..491296a335d0 100644 --- a/arch/riscv/include/asm/suspend.h +++ b/arch/riscv/include/asm/suspend.h @@ -14,6 +14,7 @@ struct suspend_context { struct pt_regs regs; /* Saved and restored by high-level functions */ unsigned long scratch; + unsigned long envcfg; unsigned long tvec; unsigned long ie; #ifdef CONFIG_MMU diff --git a/arch/riscv/kernel/suspend.c b/arch/riscv/kernel/suspend.c index 239509367e42..be03615486ed 100644 --- a/arch/riscv/kernel/suspend.c +++ b/arch/riscv/kernel/suspend.c @@ -15,6 +15,8 @@ void suspend_save_csrs(struct suspend_context *context) { context->scratch = csr_read(CSR_SCRATCH); + if (riscv_has_extension_likely(RISCV_ISA_EXT_Sx1p12)) + context->envcfg = csr_read(CSR_ENVCFG); context->tvec = csr_read(CSR_TVEC); context->ie = csr_read(CSR_IE); @@ -36,6 +38,8 @@ void suspend_save_csrs(struct suspend_context *context) void suspend_restore_csrs(struct suspend_context *context) { csr_write(CSR_SCRATCH, context->scratch); + if (riscv_has_extension_likely(RISCV_ISA_EXT_Sx1p12)) + csr_write(CSR_ENVCFG, context->envcfg); csr_write(CSR_TVEC, context->tvec); csr_write(CSR_IE, context->ie);