From patchwork Tue Mar 1 17:13:23 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Niklas Cassel X-Patchwork-Id: 12764950 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 772F6C433FE for ; Tue, 1 Mar 2022 17:13:48 +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:In-Reply-To:References: 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=5ubgCYH4s52PLkpTTdl9EPZWfDf4PCZt3zvRR9HzauM=; b=bRm6sQeE3yNq7R A6ShuCxGoPkfZINi8//RKZSThiLh7yq9phyjyksRElTUVhOObH72FRyUcIEpsNeaynyUA6GRKve0c HiqtNNM0o7NyoeZs2hIihpQx3JbRZmAIje8HjI0j3XZEz6yg4hCD8nP4SHhiLgULSlWKBSHD5jG+1 j7vRL+IybR7Bzl/DXgRI8rM+d+oznuNohG+Ekx2M+QGugkUxcosQM6owPc02JBwu8Mb2qI2SToBLt BAGCKd0P1hMry3c/aJwaFjRBaqwYrKzE2LnFqbYN8akOAaxP4UI35VoPSGpS7GuixafQIL28uFSi8 zUMlXGgRECrS+X+lLqBw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nP646-0002gp-Gd; Tue, 01 Mar 2022 17:13:34 +0000 Received: from esa1.hgst.iphmx.com ([68.232.141.245]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nP641-0002f8-9U for linux-riscv@lists.infradead.org; Tue, 01 Mar 2022 17:13:30 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1646154809; x=1677690809; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=GzADZl6p4v5Bf+eIe7eZ6Wyz0K5c/f15GPFCDvdLy4o=; b=AfA+Qf+mpbUJHj4XRJ1jVJU/QeS4jdp5KZSpdyHcVIZ1BqTgXBoFvarJ KBqFKjqeyqKDPLTLM+427/NjZFRQfqbBHlkIpEXhsGbe9cC7odv+OQqYf KADoKls4gBtgwOK76ygsqxGV66va8NMR+TO4PC0VwFwUFOgI02McapMW4 ivCY6hb2+XcqydiJqMNFk0GLuXAhztRe6v8B45ozAf1Pp+Dd9vFev0T/U KfxoVNmNIjrWkfcMNfij2CxBq1t8B0uHHesFyJJTJvI9+U1kX7g+K0apc 4py1cfxRiw27/11N1sR7O2yMyufya9aBq17M6eBWSO/dy4EYj3Wqt8jmn g==; X-IronPort-AV: E=Sophos;i="5.90,146,1643644800"; d="scan'208";a="306119290" Received: from mail-mw2nam10lp2102.outbound.protection.outlook.com (HELO NAM10-MW2-obe.outbound.protection.outlook.com) ([104.47.55.102]) by ob1.hgst.iphmx.com with ESMTP; 02 Mar 2022 01:13:27 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=G7EvmomishoRsJbrDdCbSQVJFmushJKbgZxM6waXRI52628YyjQVY2oY60PFOpPC3TjtVc3gFRJdgzwzQhuch2w66rzIU+5jf0y0rTTYAETNb6cmI8uuDJun6Ri1kSChMzo7br41QRZQTPNAlT/ZQimuVgemgfh+QAEYAZW+jQhXCYlk0FfpRiFLVD6FsvLRxZPpsOzSNlcC5SBgjqa49A3iFuB1SkOGjynVUy759kuWm1TWyXbfN/IlyESXqjPrOQVyz7+j4Z+ZCck3qHqxjCSYodVvkaS45LR4qw369WizDlt6t2m5DWhUIZZgWk/SJPH+bFzhErT+hmnIW1NpEQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=h74C725stXlxTMmXvA6oNubmhl23hNClZbhBHcDOcHg=; b=KDKhJ+kEFvJ8qmOru3+L2/MpqvTLkyshkartRtFfbi+58aXWPtf76F1xcsbi+mXD1lQCkcvb7vYoMGeRPjkZgc4J3kKjE6RKi5UmdsC4UJ/8Ft/0TOlMOlCLj/zciFAXg1WXJwLWRR4bj6Zo+w/T99GjFFMpoPqMTkBpCsjBitDN6DcUY47fKKBnKUNrlPRc5EboZo5szHFJlRr1beHqqd7c/S6FMS+p7IOudGYnbGB2ewW1QipeyJIsJRzl9fTgxGrCxUF9yCQV7ADv3UetAhW3s0WiTjCwS6+iiLvlYWFnvp/zp0iXXpRGQ2SjJx+GbV34rrOsZUDIviwY/F6SLQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=wdc.com; dmarc=pass action=none header.from=wdc.com; dkim=pass header.d=wdc.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sharedspace.onmicrosoft.com; s=selector2-sharedspace-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=h74C725stXlxTMmXvA6oNubmhl23hNClZbhBHcDOcHg=; b=PeqayjUaq+UpLs7nF8FfdAu0WI0uqZcnNeZ7H+JSvpZQEi326kN2I/7qHdlKJ0Lsls4QnkZm1UOjVyJbcxAuLSkNTxvZ6gFDIJwf2s2Qn2cvYJLbGVktPTqvB2jQ+ONxAeWcafW98y/arNXgYim70m6wfGzvCrO7Wud1Zg+icz4= Received: from PH0PR04MB7158.namprd04.prod.outlook.com (2603:10b6:510:8::18) by BL0PR04MB4609.namprd04.prod.outlook.com (2603:10b6:208:4a::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5017.26; Tue, 1 Mar 2022 17:13:23 +0000 Received: from PH0PR04MB7158.namprd04.prod.outlook.com ([fe80::f025:4f23:8e46:b2ed]) by PH0PR04MB7158.namprd04.prod.outlook.com ([fe80::f025:4f23:8e46:b2ed%2]) with mapi id 15.20.5017.027; Tue, 1 Mar 2022 17:13:23 +0000 From: Niklas Cassel To: Thomas Gleixner , Marc Zyngier , Palmer Dabbelt , Paul Walmsley CC: "damien.lemoal@opensource.wdc.com" , Niklas Cassel , "linux-riscv@lists.infradead.org" Subject: [PATCH v2 1/2] irqchip/sifive-plic: Improve naming scheme for per context offsets Thread-Topic: [PATCH v2 1/2] irqchip/sifive-plic: Improve naming scheme for per context offsets Thread-Index: AQHYLY+oImNLeC6HTEyrbPuiRdyJ/g== Date: Tue, 1 Mar 2022 17:13:23 +0000 Message-ID: <20220301171317.3109161-2-Niklas.Cassel@wdc.com> References: <20220301171317.3109161-1-Niklas.Cassel@wdc.com> In-Reply-To: <20220301171317.3109161-1-Niklas.Cassel@wdc.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=wdc.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c17829df-452e-4b6a-0585-08d9fba6caf9 x-ms-traffictypediagnostic: BL0PR04MB4609:EE_ x-microsoft-antispam-prvs: wdcipoutbound: EOP-TRUE x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: s5TJ5RW7/CEdIPtO0gYekVBlQFK14m0x0nUj3DoBeQ4XRuz/RkjNIz+QubI9IpfxYSM+0bajQD5R3SEFxNbn6G5xmghUu9CyRqKZmi4mGPmBJLL2xXTm7w8aYM9YmisJHn8pWHh/iLEgmiqgpH1vn7Wyv6n2cgWO6sbTv7YqZPXM/B3ZhclAFXWEAogOlwdyXmiTz4N3c9Zfrwc+0HtpQTpCXVpGCi03Yo3+EFUZ76DOY/Ws2oO+WkNw8k2YAJn0xflf3tIl04iPtMrKwMUWcKAk0PY9iU/w+N/j/uMQmsHMA957BMo/5GfV+6bZMEQUs/UHQalGf85PE0dnFkuykbW4/jaZ0f+2NgdnKw/Fht1NT02aSR3Ib/1s1ili10Z2YPYJBIuzeXY5XlG4HquhlepRisRef/KOoXPsmr6MXrslLKa/P6aPyWNfg4S4L9qBINpAjtXO8AHkS2PgDs7DFhZ1rqEnXtAEltFnHxuZXKCXNbjzQoJKLYgNxbiJpVrI56qA7vj3PBabfq2a2hBb3ykt0UNALoSXXWOy3bxYAzehZUN1w8RB/Yve7ge71VAclsZUbak16WVAvAY4Ds728t1lePLUL8XMt47I1QeSzjC2wNVlx7UX34FGVfLIQlVL9r5vTjCVQU1RXad390oYBdVftfFVztJzbayegJ+brD6g8H+Py3a9oMltd822PxE8wIW9SWHYRcrMZ7T52LG/Ow== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH0PR04MB7158.namprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(6512007)(38070700005)(5660300002)(316002)(1076003)(86362001)(8676002)(64756008)(66476007)(66556008)(76116006)(66946007)(2616005)(4326008)(38100700002)(91956017)(2906002)(186003)(26005)(66446008)(36756003)(82960400001)(6506007)(6486002)(8936002)(71200400001)(122000001)(508600001)(110136005)(54906003)(83380400001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?IY1U7TFInvzhN7qsSTcalYP?= =?iso-8859-1?q?zD3EXpPy3obMcd+IBKeBjlsJBA/Mu5S20Pr7PIjN+Mu3MWxtHGAPX6Tfl37h?= =?iso-8859-1?q?mxFVSfuVWgN8TNNuBQzHNSsQDSrYljgRXWtUwr8zeaNamYTjOfHsGldG3sFF?= =?iso-8859-1?q?c8LjPDJYAH9T97ispEYo+WHDRcRbPrnov2AS2TQfzkKRA7GB3MsEILUzEg0f?= =?iso-8859-1?q?7OIOFxakzPs2vZJPuSr0/ai/JnpcpgeOGxEu8lROcttZaFtSmDA3qq6b9R5C?= =?iso-8859-1?q?3A5RRWJeUjxPTINhQl2yiTdXej9k2TAHkAQkACnvFT45S7MpdJlrON9wIur8?= =?iso-8859-1?q?GPut0N5fsVN1/43Q45QrV2ImkEH2XeEl4UG6c2W4Sv8+kmL/aLnJ/vsHE9ll?= =?iso-8859-1?q?kDd06xSTp7dxr4/z5/LBGUAl2PMrVzl1Hd6WOKHDq2gnjMGJRkDSlxndxC2W?= =?iso-8859-1?q?qmOqV3OyTHsJhRilAQIGQJkDJD3vQtmsAEOKTcd0lJxouW2hyStVq2lFckFo?= =?iso-8859-1?q?0cdI2zhsquAtrXyrdJweRt1aATGZqaQDgyPcxClEmf3L5y+O7HHR+ljob56Z?= =?iso-8859-1?q?t8hx/l7TUzrIIb8RLoz/6T4erLA6eSX1rbMLsPwD9hyvK5abv8sEkhF8OqEO?= =?iso-8859-1?q?4DpdMQ3H3R7mByUWBmh4T3dNr6CYkCEOIbGl9MEXNg44xdzV6feHh1T6ks4P?= =?iso-8859-1?q?jxvGKvvGqP8oJYn5oy0BfTYfc1hxMfMmlD/NwNzEoWeyi+X2oAh7Atewp2bG?= =?iso-8859-1?q?xsaH/e8ICLqQd0vzmdiYFk08wuUVFBW8wr5Njwyni1tkgAp3leWTamx7BPQ7?= =?iso-8859-1?q?dwGzcmhsoBlXAfQYesfg1IKbgQZUNWuMiO4rhoj7Y58df3gmCQ1gwU4MxcJi?= =?iso-8859-1?q?6KayP5w9EK1dafXvCDmZr4KhvV500gGnAByOjQefIIWixgvogBsJH4iIF0lZ?= =?iso-8859-1?q?CIGHwoVYdohzAn+K/zHKKHyZ5/PWuU17x3B/+Dl0XkOb1go8NuQ55tL7WAB1?= =?iso-8859-1?q?Bt4ZHUzlSxCOLin4Akr9ZT3DCJVZAoqcuR6D6CiNMAG/hoYLo6G8tGEZcofx?= =?iso-8859-1?q?7Z82iHufXxqM3ihRwvspiHhqCV1otvp8ZI+/RKVuMfRrhcPRJgWtQmkMfjE3?= =?iso-8859-1?q?/kQJyjjc23Sq9zkdJR1dyPsHJYFtoarYld7sg1e/De5mUG5/7xno/UtWN16a?= =?iso-8859-1?q?Ezuw/Qe7htOH2xFcu3VO2/JBEaelzHkIhd+gwDda3buKYPqmOJBxgbLddiEd?= =?iso-8859-1?q?1zCXaVXNYQpgrT7kF7IlBQ0uBWYZtI/GQWOe3pMB8CSuDHymPJOLe5HsxmAz?= =?iso-8859-1?q?cBUUfnur0OeDytJH3+OoAh1k5pSIMI3WrBs6xMsoezGZEwqomgZOZYRbA1cz?= =?iso-8859-1?q?zLHTcdAh+FgdzoXVdDabCr6Jww6ed5a6U4EpbMZVNpYTCrW1NguiKKrDUTRx?= =?iso-8859-1?q?ZiWUbR2oqlzWe7VhlF6mCMv9snm/oZPl4cmFQ4Gsy4enytHTDtleERLbGpyj?= =?iso-8859-1?q?0dwjcVhWKe+rGeBJcWN00K+R7CMGIaXIEHz2QnNhvc0/OPbfAtulMOPVpndq?= =?iso-8859-1?q?yO0koVmagultAjxieHZdzJWRm0r8p/t+kmlTCl/fxbzyvtSPBxCy8BLgf9YM?= =?iso-8859-1?q?VT6yKNV5C6oq/Et1T9CHjGQ15qqQ4+csol1ibB+x1LbPay1D/h3fxJuEAgvJ?= =?iso-8859-1?q?11ORSfKcn1Y17cARTqGDJ?= MIME-Version: 1.0 X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR04MB7158.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c17829df-452e-4b6a-0585-08d9fba6caf9 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Mar 2022 17:13:23.5909 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: kQIHluLybtlSDYMJ27z0dorHZ8MLH8Wsmt2DvCPNzi7oEunahS/eiZCgsr7khu6anlVveQNK+kmZeO8YholaNg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR04MB4609 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220301_091329_366857_602392B6 X-CRM114-Status: GOOD ( 15.90 ) X-BeenThere: linux-riscv@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-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org From: Niklas Cassel The PLIC supports a fixed number of contexts (15872). Each context has fixed register offsets in PLIC. The number of contexts that we need to initialize depends on the privilege modes supported by each hart. Therefore, this mapping between PLIC context registers to hart privilege modes is platform specific, and is currently supplied via device tree. For example, canaan,k210 has the following mapping: Context0: hart0 M-mode Context1: hart0 S-mode Context2: hart1 M-mode Context3: hart1 S-mode While sifive,fu540 has the following mapping: Context0: hart0 M-mode Context1: hart1 M-mode Context2: hart1 S-mode Because the number of contexts per hart is not fixed, the names ENABLE_PER_HART and CONTEXT_PER_HART for the register offsets are quite confusing and might mislead the reader to think that these are fixed register offsets per hart. Rename the offsets to more clearly highlight that these are per PLIC context and not per hart. Signed-off-by: Niklas Cassel Reviewed-by: Anup Patel --- drivers/irqchip/irq-sifive-plic.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/irqchip/irq-sifive-plic.c b/drivers/irqchip/irq-sifive-plic.c index 09cc98266d30..fc9da94eb816 100644 --- a/drivers/irqchip/irq-sifive-plic.c +++ b/drivers/irqchip/irq-sifive-plic.c @@ -44,8 +44,8 @@ * Each hart context has a vector of interrupt enable bits associated with it. * There's one bit for each interrupt source. */ -#define ENABLE_BASE 0x2000 -#define ENABLE_PER_HART 0x80 +#define CONTEXT_ENABLE_BASE 0x2000 +#define CONTEXT_ENABLE_SIZE 0x80 /* * Each hart context has a set of control registers associated with it. Right @@ -53,7 +53,7 @@ * take an interrupt, and a register to claim interrupts. */ #define CONTEXT_BASE 0x200000 -#define CONTEXT_PER_HART 0x1000 +#define CONTEXT_SIZE 0x1000 #define CONTEXT_THRESHOLD 0x00 #define CONTEXT_CLAIM 0x04 @@ -361,11 +361,11 @@ static int __init plic_init(struct device_node *node, cpumask_set_cpu(cpu, &priv->lmask); handler->present = true; - handler->hart_base = - priv->regs + CONTEXT_BASE + i * CONTEXT_PER_HART; + handler->hart_base = priv->regs + CONTEXT_BASE + + i * CONTEXT_SIZE; raw_spin_lock_init(&handler->enable_lock); - handler->enable_base = - priv->regs + ENABLE_BASE + i * ENABLE_PER_HART; + handler->enable_base = priv->regs + CONTEXT_ENABLE_BASE + + i * CONTEXT_ENABLE_SIZE; handler->priv = priv; done: for (hwirq = 1; hwirq <= nr_irqs; hwirq++) From patchwork Tue Mar 1 17:13:24 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Niklas Cassel X-Patchwork-Id: 12764951 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 67EC7C433F5 for ; Tue, 1 Mar 2022 17:13:48 +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:In-Reply-To:References: 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=GA3JqslyuVQwaggWmpGIfSua3QDlByw9vPhBloCMJ6Q=; b=bC2DYc6MOQKpqX QU5D385auyhbyX8CiGJblQkd97Zrpz7OwrsK5FSJwFhFZJzpjt12OGlQQdz3Yl9B8hBFot+hyJCrg r3urXWjlxAAhvPDCZx9szZq2pCTTeaHvk+zx/xQTaKNIJwzuFLvU2bcRhAhmsMFixYFE3I/j8+N6A QtYr+/S5IkBFfWn/j0fClt60mT/iRG7MUXDLItaK2HUQr+4tVdjncbCkYaP6QBmVR1mnMV7kVncPx zNoMQJ9uUJ2xEINRkDuDH+7NWGqWzkr6ALiDctqDPUGc/0Q7NNd6yUeOaRG3FV2oqZ4IYh+wUt51O /+hGrA1CFncJKlGrlULA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nP648-0002hI-Gu; Tue, 01 Mar 2022 17:13:36 +0000 Received: from esa1.hgst.iphmx.com ([68.232.141.245]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nP642-0002ep-7B for linux-riscv@lists.infradead.org; Tue, 01 Mar 2022 17:13:31 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1646154810; x=1677690810; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=tfzN7oTAmYVK/hpSPlWAVIp/oqysaDmXcq8K4pkwVUI=; b=CguT2jT/w/xPRTbDrf1++Ab80UG40mHYvGJ4YNguM2OI3Vf9vxmu32Su EKmDLYq2lggShZOuzs6TQFBkSC+giv6yQdZSUO7pKdIl1nAryzOSQH9pS JOcUT470Q28mkU4aLaxMavVA6ewBpwPE/C7JGLKVcV6Xtsuy92laxtY9s h+Zo2ww+DupUhFoeQusnCvE0JlxwTmnQbBLuYr2uR9u0SjDkKt+OK6pAy CN6JmpVM3YbJxesKRO7nXZVUTvo4PY4Yvu7w4XwCoXQD49K+mhDS30APr HDJqtHLUrLpzr/jHKqAdAnIPvuSgBTa6gW18PwvV9X5PrBLQAjk3PPYPS Q==; X-IronPort-AV: E=Sophos;i="5.90,146,1643644800"; d="scan'208";a="306119293" Received: from mail-mw2nam10lp2102.outbound.protection.outlook.com (HELO NAM10-MW2-obe.outbound.protection.outlook.com) ([104.47.55.102]) by ob1.hgst.iphmx.com with ESMTP; 02 Mar 2022 01:13:28 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=X7RkQyyk4dRhej39Tio0F+Cl652etX8pnX5Li77Y/np+rgbDqXTGOkHNU8zyJ+SsRrMenEUbLBLmCz7612eCm0Gf07cIGzZDs5JwEIZhROn7FeNzNwwTa/F7/YzCAgEDE5HpR48BNmfB6PY1AWkV9gVJIb1Ah2h7TydbpZH9PqfZ+oPpQ44zM7UUMRfwfRTjrm8mBGnAuCZ9AxZJXLrnJyU9+/ZqWrRl70ZB+h/09x78D3hDYQSr6OZbO9/WHILjJO7CspoqkkfjjQdhzGd8FuqyPLsqCSGft9fWm4MnGt0e762QPz0nQC3RqKMYCdgla+udVsxo849r+xREL2oF/w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=9RFpE8GDkKfm4Weh+zZi1WXIfi7bO1hHF6tcYpZUKYM=; b=gz5F8RCRIIgZv/IHlcMzmPUkKijOkVV61QhcbvCQ2SIiLXGJFd2Lpq8HSIFGi5FKzNKl0jnjPBzgzbdb4LP/ewN0Z+W88O1yx7pgrxdFX1rqtO1+b/tDsTuQi8+Vl4FyXpSdcIm7RLhpOqo1R6uCcuh//+YrCqVfuhZrgFcKLJ3N/egJC9M85jC0MaovIEeiDCkUAAG7tGPk1RyH12HYPHkr/Wzke8fcGUR/y2G93qnXhi7bVz9IuTFyVlBz0dsvEYvhVxfYuw57NqpRP8GIQcF2bMmd88MCHZ7Qe6/nJj+jzKa0l4LiSeVYcLZm8OESw4kKous9ceC9bdip/S0BqA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=wdc.com; dmarc=pass action=none header.from=wdc.com; dkim=pass header.d=wdc.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sharedspace.onmicrosoft.com; s=selector2-sharedspace-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9RFpE8GDkKfm4Weh+zZi1WXIfi7bO1hHF6tcYpZUKYM=; b=JmSSUmGS0zkCGpNIZqRE4VwdE0/jLcGS2NOGdn+xFlwYfthTGBEAo+GhgIseNupxYD8PhuEXsKOIGEzXS+BLvmiX8gG6NNALjhdxpkaZMXfBYi9LrbyoQU4hUWnFe0FlP4yNRngDzHmMlXatgMoBUzQ1TfErJ7hc5j4e6QcXU5Y= Received: from PH0PR04MB7158.namprd04.prod.outlook.com (2603:10b6:510:8::18) by BL0PR04MB4609.namprd04.prod.outlook.com (2603:10b6:208:4a::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5017.26; Tue, 1 Mar 2022 17:13:24 +0000 Received: from PH0PR04MB7158.namprd04.prod.outlook.com ([fe80::f025:4f23:8e46:b2ed]) by PH0PR04MB7158.namprd04.prod.outlook.com ([fe80::f025:4f23:8e46:b2ed%2]) with mapi id 15.20.5017.027; Tue, 1 Mar 2022 17:13:24 +0000 From: Niklas Cassel To: Thomas Gleixner , Marc Zyngier , Palmer Dabbelt , Paul Walmsley , Albert Ou CC: "damien.lemoal@opensource.wdc.com" , Niklas Cassel , "linux-riscv@lists.infradead.org" Subject: [PATCH v2 2/2] irqchip/sifive-plic: Disable S-mode IRQs if running in M-mode Thread-Topic: [PATCH v2 2/2] irqchip/sifive-plic: Disable S-mode IRQs if running in M-mode Thread-Index: AQHYLY+o0lzIitWgkUOxiY0NzN0p8g== Date: Tue, 1 Mar 2022 17:13:24 +0000 Message-ID: <20220301171317.3109161-3-Niklas.Cassel@wdc.com> References: <20220301171317.3109161-1-Niklas.Cassel@wdc.com> In-Reply-To: <20220301171317.3109161-1-Niklas.Cassel@wdc.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=wdc.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 92efcfca-fb79-42e4-9763-08d9fba6cb72 x-ms-traffictypediagnostic: BL0PR04MB4609:EE_ x-microsoft-antispam-prvs: wdcipoutbound: EOP-TRUE x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ESFAvP7wxGT07PLR9chV7kpRzI6vTnpP/J6wGLCP1u09m6AixYGsa7PGcNpOWZlL7GG7O+xapmxZynVKY81dcbTgjW+PIb4oO82+zrrVcn4O++yD+i0xBx0aENEcanAxrrLZj+JdUxl7ToCTLt1ET3MTjohizQOJRu1e/omRh0A9gtfC/uDVAKPNLa+dUE+dIaKBUDGjIM15o/pXim5RAOshWbcwwyn6JrTWfWbm1liMMcezKCVY4TAjBFhBma2yngp7fMulojeVQB7DOLtr/PAsBHFmv8U2AThhckZdjMO5tGeqeZzSePhD0QnRxeT8Y9MPYWq1JYEPWbvM85+Gal3D1GeCw3CpXfX+RU5SCM2ruDPFA/PADfxuj8UsXdEEi3WcUzHqXPrGV9LjRbS3GO4wDNSKbN2tgyVQwGg1YBHAC1UKEuOVQ68VAfdfes2Ettv5r4V7Uqxqb/FebHcTZilxF6EouMag2cKebeODptJKT9jDMlykmum6lOjeHGQduusqYlGfPcjrqk0QCaoFej2cjr4aSmmuFmPq3/L2crp6RHBb87lSRKFd5DL98CAqJ/R6Xz5AVLtTvWV7pn9IanQRP8nRLUPwTSCC1Z8cNk/zZKsm67urjIYP8d/iKR55fwpvoeFSOAtDnz2jHeu1e5suq6MIWb2Z/6SkILJzhh3fEC+qSc4+AnhXbZaLlQ12xGx66KUOmsgAkyXY6TUyTg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH0PR04MB7158.namprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(6512007)(38070700005)(5660300002)(316002)(1076003)(86362001)(8676002)(64756008)(66476007)(66556008)(76116006)(66946007)(2616005)(4326008)(38100700002)(91956017)(2906002)(186003)(26005)(66446008)(36756003)(82960400001)(6506007)(6486002)(8936002)(71200400001)(122000001)(508600001)(110136005)(54906003)(83380400001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?npfrx48yG6dT6MrUUDHu4qY?= =?iso-8859-1?q?EBL+izqhM+fYkT8HizT84Z0NHm/ytu8OvwV7TL3HtpMVFbQoapTKpHkm9ogS?= =?iso-8859-1?q?RWSD7xobU3Zkj9tK1Si/rakQJUjnAg+/DpKh1Ov2hksJVZkKuPVKGUWKeHRl?= =?iso-8859-1?q?qAjuYaXHcZ8Kl//iDn7JY0lmzu0a7WbXntfsTKUDDISL4NoNEywfNF37A3bl?= =?iso-8859-1?q?nrhilUzJcvwTrJl89NzuRivLjZndm4eEhUIr/DR+iGEJ30DcUWx0d8G0+Cx0?= =?iso-8859-1?q?R4AHoOJgfT4nJQpWlTjZ4h1FYqA68fmkFuINNyUtDrhjWNwWgW2xZiCVK8MC?= =?iso-8859-1?q?yelHP3DsKwhElRY0prFJm+aymhPgnYlfAa4F/8tQJtagQEQgWbmNhvEi7071?= =?iso-8859-1?q?6K0Lfd1vck6bi+ANLV3XFhqzphyjtED0ld4bGW1svThkHTD1KOVC0rsW69Nx?= =?iso-8859-1?q?LDFdFmZyD3nt3DYbCUwhzau/NSDaz3tF1SrwTiKJRXWnk+7usNPvyoPGvOCe?= =?iso-8859-1?q?8dhgj1D1o9GMnGRdwDKn8Enh1yHFiLNq1KnBpzIYSHi3Mq5tiscmIc2qccbc?= =?iso-8859-1?q?V3iMrYCt6Ht59AJMWC7B0ReoSuM9ZnobX3IQk2EB3DoSe5nCM8rohid9lQVi?= =?iso-8859-1?q?z0EJIptltT/szj8xtXBYVC54zhyw+7qokb/aCkVTVbiYVzAxkkGi2PFHi2V8?= =?iso-8859-1?q?8RJTxMNf6FlzLIG1qHCu9zKTNb23Rp209T8F9aHKBIuHK6o3BfUNDXxuGTwU?= =?iso-8859-1?q?AyFWdGV8+2xfaoIL/N/3GjIwU0hcuT9gUpUdcy/l1q7SpFEgYAMqf8sUHLRr?= =?iso-8859-1?q?ccYis5mEIuAeLLp0JM0zT5AhiYiqsuZQNTBNuuZlufTLpYjMnPXythTGGgwY?= =?iso-8859-1?q?mGPGO/SpE3rwE2XF0qslDBnoiXdvIeolKYt6fDe+In118x72CtzkmT8ILKQ2?= =?iso-8859-1?q?/xQUvG61AIkO/WrvxrdT8zh24PGjVJOq/0WBfTTacm2VVJqFZrfNxBhMVWvJ?= =?iso-8859-1?q?U4ExZ+2MHKaQwOhrgLD5aUf+dEuwMANJ8ZbQLkGTnBgCBNnWQ7MiVC2Ih701?= =?iso-8859-1?q?Iaefq4rmsPYMzzSQlkgKI5q0UGwvFCotUQULqpoGsy9u7DuyCDkbwep0tFl1?= =?iso-8859-1?q?kxvqA8AJnMXWQ8AqT117aAFkRF/vWw8LSYQNHpf433l/UBlv+XGXqcFQKoHE?= =?iso-8859-1?q?Shkr2poEPohETaINKr5F+j3SHX3B40Z913XdtMqahe8UXmdHvRIPTnayfVSi?= =?iso-8859-1?q?0hKSe1rorcYBeK2sgQBKWC7PIc15P1IvyxQw4J4Ea0QAwlJTyFdiLqWI2tiu?= =?iso-8859-1?q?XNwOxBiYsDkyeP1WQ0PGndQvCyTmwEJJ6FQ2fkR5o+rpKhajqBN4HQOYngiJ?= =?iso-8859-1?q?0tU4wci5sNpN7YcPdPn1hK3nhl3WKOGXQFdpaUcXW89duBNXhhNXO4nJh+59?= =?iso-8859-1?q?SOiOJU2miuKhXPIdNMUhkysonKWTR+6gTpyrev1Fxh6uHkrbWYzGlD3og+eM?= =?iso-8859-1?q?tQTt2Rqa5ShOiA6MJNAXvkYiqBc7RZufQetm3E88T9r6YvKkUw0kcHuo298m?= =?iso-8859-1?q?khVtQszUB58K7VjLEU8bKHjhSCpsadwhdquIjrhIvfsNp6DAbZLi++HazW3h?= =?iso-8859-1?q?vvLbEEMC+UTAhD4P661iYTIBHJERvK8x6GTqZ8B67OCrRiXJFUxNSKer9ueG?= =?iso-8859-1?q?v+g0/cqgAIcpvupWv0pJu?= MIME-Version: 1.0 X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR04MB7158.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 92efcfca-fb79-42e4-9763-08d9fba6cb72 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Mar 2022 17:13:24.4657 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: u9EHydCQM91OfNjIhRf+Q3F6roXyueSpdMYE8k5pF40QWAEraHzCYrkrYPNv0k+Bw5NPAXLrkfgoKcCWmQrxEQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR04MB4609 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220301_091330_298294_5F40D61D X-CRM114-Status: GOOD ( 17.87 ) X-BeenThere: linux-riscv@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-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org From: Niklas Cassel When detecting a context for a privilege mode different from the current running privilege mode, we simply skip to the next context register. This means that we never clear the S-mode enable bits when running in M-mode. On canaan k210, a bunch of S-mode interrupts are enabled by the bootrom. These S-mode specific interrupts should never trigger, since we never set the mie.SEIE bit in the parent interrupt controller (riscv-intc). However, we will be able to see the mip.SEIE bit set as pending. This isn't a good default when CONFIG_RISCV_M_MODE is set, since in that case we will never enter a lower privilege mode (e.g. S-mode). Let's clear the S-mode enable bits when running the kernel in M-mode, such that we won't have a interrupt pending bit set, which we will never clear. Signed-off-by: Niklas Cassel Reviewed-by: Anup Patel --- drivers/irqchip/irq-sifive-plic.c | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/drivers/irqchip/irq-sifive-plic.c b/drivers/irqchip/irq-sifive-plic.c index fc9da94eb816..e6193d66c0ae 100644 --- a/drivers/irqchip/irq-sifive-plic.c +++ b/drivers/irqchip/irq-sifive-plic.c @@ -81,17 +81,23 @@ static int plic_parent_irq __ro_after_init; static bool plic_cpuhp_setup_done __ro_after_init; static DEFINE_PER_CPU(struct plic_handler, plic_handlers); -static inline void plic_toggle(struct plic_handler *handler, - int hwirq, int enable) +static inline void __plic_toggle(void __iomem *enable_base, + int hwirq, int enable) { - u32 __iomem *reg = handler->enable_base + (hwirq / 32) * sizeof(u32); + u32 __iomem *reg = enable_base + (hwirq / 32) * sizeof(u32); u32 hwirq_mask = 1 << (hwirq % 32); - raw_spin_lock(&handler->enable_lock); if (enable) writel(readl(reg) | hwirq_mask, reg); else writel(readl(reg) & ~hwirq_mask, reg); +} + +static inline void plic_toggle(struct plic_handler *handler, + int hwirq, int enable) +{ + raw_spin_lock(&handler->enable_lock); + __plic_toggle(handler->enable_base, hwirq, enable); raw_spin_unlock(&handler->enable_lock); } @@ -324,8 +330,18 @@ static int __init plic_init(struct device_node *node, * Skip contexts other than external interrupts for our * privilege level. */ - if (parent.args[0] != RV_IRQ_EXT) + if (parent.args[0] != RV_IRQ_EXT) { + /* Disable S-mode enable bits if running in M-mode. */ + if (IS_ENABLED(CONFIG_RISCV_M_MODE)) { + void __iomem *enable_base = priv->regs + + CONTEXT_ENABLE_BASE + + i * CONTEXT_ENABLE_SIZE; + + for (hwirq = 1; hwirq <= nr_irqs; hwirq++) + __plic_toggle(enable_base, hwirq, 0); + } continue; + } hartid = riscv_of_parent_hartid(parent.np); if (hartid < 0) {