From patchwork Wed Mar 27 10:11:31 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Christoph_M=C3=BCllner?= X-Patchwork-Id: 1916665 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=2oSBwTf8; dkim=fail reason="signature verification failed" (2048-bit key; secure) header.d=infradead.org header.i=@infradead.org header.a=rsa-sha256 header.s=desiato.20200630 header.b=T58UkQs8; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=vrull.eu header.i=@vrull.eu header.a=rsa-sha256 header.s=google header.b=qJsiVjQZ; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2607:7c80:54:3::133; helo=bombadil.infradead.org; envelope-from=opensbi-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=patchwork.ozlabs.org) Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:3::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4V4Msd6lMXz1yYW for ; Wed, 27 Mar 2024 21:12:05 +1100 (AEDT) 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=T5335Pmcv0Et1wDREp1++mH4X4nDTWc9Od6WxdKka0U=; b=2oSBwTf8pNqwpT 3NnKi9BIu3go80z8cdX2smLADKBWOweoCy39sk7ipCkeyj07TW8K8QmvZnjeUjdD9HkMTz7N3Cr9V hvP/H23+7igTexhx0nwE9CPmTe4wYLA2k+S/MATLzIntKbL1e9k+GLAI8E7B7AXs9ScfCOdlah2gw KPPFANo0J921HsLWvUYeEzacxUQnlKRPX5vtGlX4LDBF+cassrAqVWDt/QGZIQ5w0jRsqo0tnCAaP CbgsfVdC5+3bCTPEFUAJaVpFto1UsTR/oB4jYBbilpfi5NUHT9GENf5/8pUWwbsXb4aSAkDOqKn/+ lIXls8x1UZzsVfHrlScg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rpQGE-00000008MG8-3Jt8; Wed, 27 Mar 2024 10:11:58 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rpQGB-00000008MDJ-1ldr for opensbi@bombadil.infradead.org; Wed, 27 Mar 2024 10:11:55 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=Content-Transfer-Encoding:Content-Type :MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From: Sender:Reply-To:Content-ID:Content-Description; bh=s2rS3JcA0EXzqCvZjEhzySeQxDDQMRv/EcVFCgBVLVc=; b=T58UkQs8iJ6mibtp6ROFPvZT7H r4fHlvSsgMU8MarNTM23hNKFD2YCM0zk+cmGvcAX0N61GSxjXbTvY3Gy4raldX3F6bFQBmm7XDBlr uvE+JWDTHLaZtcaetN5PlephsqrNHoBGrWyI7RHd70q6PcbXBG8HGwc8h1tO6tUJr+PYyDLm4P2uq zDBS6qDgmC4Vz9r+NVQ0gizDyxpufM0yzFHOsqEqWecLi/UYDdp6XXkDul8rcmYvub0KAWl3xzX1r Jswj/7PKn/SfjYGbOmcER0BmKmZCjWCwbhYQi8ANj5i5zGys03DP/uxbnQGfdI9CbFG14TR8SwHFa bd8VEZHw==; Received: from mail-lf1-x134.google.com ([2a00:1450:4864:20::134]) by desiato.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rpQG5-00000000AEB-0Q0u for opensbi@lists.infradead.org; Wed, 27 Mar 2024 10:11:52 +0000 Received: by mail-lf1-x134.google.com with SMTP id 2adb3069b0e04-515a97846b5so3835837e87.2 for ; Wed, 27 Mar 2024 03:11:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vrull.eu; s=google; t=1711534306; x=1712139106; darn=lists.infradead.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=s2rS3JcA0EXzqCvZjEhzySeQxDDQMRv/EcVFCgBVLVc=; b=qJsiVjQZTP/hkkJn2iKgTQGM28B3OhhKPS0A0DUNitUYOOaynaN0U0Z3I0P+j2PScF 9ITpsiAg5XhQV82YiX7839lUMf5mdBGN1idxb+yOwIGa2MimV8heYkj9MMk0XHv+9YOP l3xYUBWfzrOiCSfqLkZNpKGBYWLdKll25cj2Y2Fb63tTRlzv6LYHRXuU3oQELbmkxcGP dzHgiqzluLPVVugLg8ClZYtCuNprMyqNu7njIFx33WbpZ81lsbMbj1eFrOI+PUMUXmeo NCox9oFQXs2VcZT3W6JH0dAabL7NoxbPJOJpzJqjXdnkt/p0bEGMDwDFNE6FcMdjx0TX k7mA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711534306; x=1712139106; 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=s2rS3JcA0EXzqCvZjEhzySeQxDDQMRv/EcVFCgBVLVc=; b=UpHXKDj011w05bixYsM3GskCGMbV/e8HXLQZ5yG/45Ds9zjNsovRyjj4hixDaMLcyC RbU3HJrkccan9GHVte/CBciPM1f622BjxJhAPJcY3AYA8APg8vQYo/5HsnYk/cpwo4Qy XckJCRPxNE5e1mdQlQnVHXC+k0HHSnDOFObpueIQik9FO1eJgA9t2lOt+SQs0FTZBmtO UAAuOkrgkz/4uxJ6VugrzeMSpMgAMNqHrAhT6ENeMZiW8ZcNrwYAbZUH9CN+7aifbOU9 l9gX451FoIuWiDvTirnnZKFmd8VTITeNHVSRZb4k+9T+eHT6nPVeBxUiYP5W+3YF2npk aXlg== X-Gm-Message-State: AOJu0YxkgaiKd4eod8LFy0xR4TwmKJnP8IoXNZHV0eYK8nX234QXgwzs gBR26yCdzc7tXMMKera1g7dby3rII5mKtJQjytuRXWWScHj/bmJZhqL0sLSS5B5Ener3eTqSxbd 4NX4= X-Google-Smtp-Source: AGHT+IH4t2VgWGwoALvxfY/+P1LtoOMtb3km07ag4q+8E9FyFvurJgSp2MsFYRqhDzojeP83YlbmdQ== X-Received: by 2002:ac2:5b43:0:b0:513:c957:ea4d with SMTP id i3-20020ac25b43000000b00513c957ea4dmr532810lfp.43.1711534306354; Wed, 27 Mar 2024 03:11:46 -0700 (PDT) Received: from antares.fritz.box (62-178-148-172.cable.dynamic.surfer.at. [62.178.148.172]) by smtp.gmail.com with ESMTPSA id dh16-20020a0564021d3000b0056c1c4b870asm2451653edb.16.2024.03.27.03.11.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 27 Mar 2024 03:11:45 -0700 (PDT) From: =?utf-8?q?Christoph_M=C3=BCllner?= To: opensbi@lists.infradead.org, Philipp Tomsich , Cooper Qu , Zhiwei Liu , Huang Tao , Alistair Francis Cc: =?utf-8?q?Christoph_M=C3=BCllner?= Subject: [PATCH 3/9] lib: sbi_emulate_csr: Utilize platform hooks for unknown CSRs Date: Wed, 27 Mar 2024 11:11:31 +0100 Message-ID: <20240327101137.3644359-4-christoph.muellner@vrull.eu> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20240327101137.3644359-1-christoph.muellner@vrull.eu> References: <20240327101137.3644359-1-christoph.muellner@vrull.eu> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240327_101149_700770_EA339481 X-CRM114-Status: GOOD ( 11.18 ) X-Spam-Score: -0.2 (/) X-Spam-Report: Spam detection software, running on the system "desiato.infradead.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: In case we trap during CSR accesses, we have a few defined CSRs that are gracefully emulated. In case we don't know what to do with an unknown CSR, let's give the platform a chance to handle the CSR a [...] Content analysis details: (-0.2 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2a00:1450:4864:20:0:0:0:134 listed in] [list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid X-BeenThere: opensbi@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "opensbi" Errors-To: opensbi-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org In case we trap during CSR accesses, we have a few defined CSRs that are gracefully emulated. In case we don't know what to do with an unknown CSR, let's give the platform a chance to handle the CSR access. Signed-off-by: Christoph Müllner --- lib/sbi/sbi_emulate_csr.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/sbi/sbi_emulate_csr.c b/lib/sbi/sbi_emulate_csr.c index 5f3b111..a6cb855 100644 --- a/lib/sbi/sbi_emulate_csr.c +++ b/lib/sbi/sbi_emulate_csr.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -147,7 +148,8 @@ int sbi_emulate_csr_read(int csr_num, struct sbi_trap_regs *regs, #undef switchcase_hpm default: - ret = SBI_ENOTSUPP; + ret = sbi_platform_read_csr(sbi_platform_ptr(scratch), + csr_num, regs, csr_val); break; } @@ -162,6 +164,7 @@ int sbi_emulate_csr_write(int csr_num, struct sbi_trap_regs *regs, ulong csr_val) { int ret = 0; + struct sbi_scratch *scratch = sbi_scratch_thishart_ptr(); ulong prev_mode = (regs->mstatus & MSTATUS_MPP) >> MSTATUS_MPP_SHIFT; #if __riscv_xlen == 32 bool virt = (regs->mstatusH & MSTATUSH_MPV) ? true : false; @@ -185,7 +188,8 @@ int sbi_emulate_csr_write(int csr_num, struct sbi_trap_regs *regs, break; #endif default: - ret = SBI_ENOTSUPP; + ret = sbi_platform_write_csr(sbi_platform_ptr(scratch), + csr_num, regs, csr_val); break; }