From patchwork Wed Mar 2 13:15:52 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Niklas Cassel X-Patchwork-Id: 12765987 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 011AEC433F5 for ; Wed, 2 Mar 2022 13:16:07 +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=bfkjpBXz1FLNBKzmaN9ELNZujLqVfUmdpZKFN9Op6f8=; b=UY2/YEFdQNnenQ 5U1UQYCyUJt0zZj2G7jSpkt8ZYGgmICcJtYmeJ6IU4hzdw01sbqc8jiTW7JvkpdUm/yTIMbNG4/kr 9UD7ypOelvmVUDseW5RqCQbRlXeyGvT3sfxONvZO4CXZjqM/G36Zvs0sfRRegcHg0bLG9DuREmn1P yCcWsynCVYKXpUkiW7zJVJa837hlS0heHYIHMuW5RkiUjnt9Z/Sy+9HnQadFY9z+XW/2eEIMP5gs9 m7augsj6ha9kEU5niqN4QCGBXFCSUIXFBPoiScOWapPyzazc/4XGTCU3qSGqWrBgfwbFP/Ze3d+bE TEYBfDPZV+v0J0NH+Mew==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nPOpk-002jig-VL; Wed, 02 Mar 2022 13:16:01 +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 1nPOph-002jgE-32 for linux-riscv@lists.infradead.org; Wed, 02 Mar 2022 13:15:58 +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=1646226956; x=1677762956; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=dkIzG+gz39I7ajS2/C1UdnD+kIBpO4hRlKc+NqSoXys=; b=oOuJf70/1/E3ZnP+iH+HuSsoy+AjncwmcgsDlEkm+Jv15QaHt3qFSQTC dBWJHHNkwjil+asS79tGI2gEOZB2+IRHBgSM8bvoithL0ErNmkw5AWC3s ICphUUjRMjxmj9nI+8sVxKmQVdmQx+hTyPGZpjyHlAYM5PYniz3pcWXBz t8ZkiVSuJcCdJmPyiOZuYWX/dU7+SXy7fVtJ9Fm1SD+fP+buUMfdDsg6/ KgHm5NW/il6DbSRPOl61Q1rL5CPcb9gDma722g0U9X/jrJaMNKhZtOhZF quh62alWiAiCKu4EtTt9yEEMsP22Khe3RLK3DGjFIk32SKC9G9TLCGr8N A==; X-IronPort-AV: E=Sophos;i="5.90,149,1643644800"; d="scan'208";a="306195806" Received: from mail-dm6nam08lp2044.outbound.protection.outlook.com (HELO NAM04-DM6-obe.outbound.protection.outlook.com) ([104.47.73.44]) by ob1.hgst.iphmx.com with ESMTP; 02 Mar 2022 21:15:54 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LeK3SZdQHZSBoM8yKDiWkDAv7crbChW5Ls63amoQWQn857ZPFRAfouo8NAT1k9VNiTnp7JGR1OK/NsUuYxfmW2Q7Nc7J0BEwwWL8SqPOF3a90BqqFc4Ufg8As+ANnP592yaL5a9dGhAQRkdiCkW49WFfkUANnO/i8T1ND0c/jrt6ssBj01lZwk5R1R1ohtQAsRlB/SGyxtWqzZ4p+olXGaB3Hc4uZFqYNCSDjRtzIEauXdN1gfxGmNuAD/ITpXcBWe+1Vz2AxkiUNHEX3MntTjVkSr+4/eUmx/CyzYhQZZhlY3E3ewyHx0VdNjDe1RUg4duNf9limNM89/H3EMltIg== 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=6/8eE6ljOwYU4/Q9RqMJnpoDXzhzvPNHFFtkVOQzSk8=; b=McBBTs+vNpR5fASZF3gOjqJAf/l7eWVd87pem9AU04N+wJ92/cxkdNA8DEv/4neTgNb1Iavr7addp20vaBU+NFCWzFZDrjp9LvFOxQeUCVpbZ64QUMZ2XWm+F+wtzKYeJJ49vku2i3SxTF0yQfYEFvj2tI2/Hho0/OqBhlqOB2vUpo1g2Hav7qfecj4NwmbI0S8oavNwLKgFevnNMvaANVGVemIXSDqUNc4mDeBpxxzapD6V98UcqA+y3+Zw2gQTRDV7CGbeaAPlK+Ol6gb8l4QGJvBafFv8rxc2IYhZ5QgNl5t9YnTbgxQzh8DjT8K9Wr6BC/V0ITX3iLC79qv6EQ== 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=6/8eE6ljOwYU4/Q9RqMJnpoDXzhzvPNHFFtkVOQzSk8=; b=m0lmW+Su1/k/NkTrb3ISOaJtc8y477kXuEwfehmLxnmRWGGo3iYmAeXHRVR7xxYFJM7r82k//Qgg6e96+7cGBZ8TSerHw0sVb/V6qGsEy3bdoYT722X9oScB0CEaeAVeoFR6aC8ldeVYn3vOQgmgCKnCQZdhnxvVS28uQAL5V6s= Received: from PH0PR04MB7158.namprd04.prod.outlook.com (2603:10b6:510:8::18) by PH0PR04MB7608.namprd04.prod.outlook.com (2603:10b6:510:53::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5017.24; Wed, 2 Mar 2022 13:15:52 +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.5038.014; Wed, 2 Mar 2022 13:15:52 +0000 From: Niklas Cassel To: Thomas Gleixner , Marc Zyngier , Palmer Dabbelt , Paul Walmsley CC: "damien.lemoal@opensource.wdc.com" , Niklas Cassel , Anup Patel , "linux-riscv@lists.infradead.org" Subject: [PATCH v3 1/2] irqchip/sifive-plic: Improve naming scheme for per context offsets Thread-Topic: [PATCH v3 1/2] irqchip/sifive-plic: Improve naming scheme for per context offsets Thread-Index: AQHYLjekMDDi1rNZXEqLw0DL6B6eVA== Date: Wed, 2 Mar 2022 13:15:52 +0000 Message-ID: <20220302131544.3166154-2-Niklas.Cassel@wdc.com> References: <20220302131544.3166154-1-Niklas.Cassel@wdc.com> In-Reply-To: <20220302131544.3166154-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: 772f1846-5da2-48d7-ffc2-08d9fc4ec6e0 x-ms-traffictypediagnostic: PH0PR04MB7608: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: RYMpRsrU9j2kuLM3o4gUKR8eRv5ZRmnQhbV9FnkRScoSDOO9Fhegz3qAFRy5S54cFFrDBv1l0xfBPji3mqUhJMUgB8+M96HLPgmkFgDVrCvXn90cHrKlXak0YkXxlZeZMkX32yKNZdf4hA4X0OTKlEDhAiS1p2mBazEWWNL7utpJUnPqk8vIaCFaROMIeMvCuhfX0HfKLRqsutS917rsitQUcjgnPncXiBquaTv/s7KrdfHSN5NBuloFijpWMpvHvkZIdn1ZQVMmTMW4BTndWjVJSGCTbPN0N7i/kjpReZzJoF6q8Nq7BIILHOHbFK0zS9zOkJZRulERuEvWflXaMPNr7G82j7SagIy527lqisqWV3raXlsxgBMT8AAVZLt1dI0PXJtgG8DjQ8LTXochjxkOM25oZquPjtCORkooi32qJzYLkjVAX6kTuO8KF5HCVOltSZ3Lslx+TEhZwGbCAg+Wb+uVJp29cH/hA3SvAskdFXoaJC7fjX5CkcbHtFvUnOnlHfV3+5IB6qsatmEk/xbcNHSOuOcTZ00CpqxH85sgUKepcrwYf2ebTLL/+U4fI7k3DJCtJa33a8JpAkcbNgo47WTKsZpChgK3kP1PFkngMPLYcRrQHRauvHgT3VFYwHUrUqBIqicM5tZmYM9vKEjkys8VawSr1lloedWFHXNUiG8qMQM9FNGkrKEDcZ0tYyRK5Xmg6BPfeMCepYVfUw== 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)(2906002)(6512007)(38070700005)(2616005)(8936002)(186003)(91956017)(66476007)(1076003)(86362001)(8676002)(66946007)(76116006)(64756008)(5660300002)(4326008)(26005)(38100700002)(6506007)(316002)(66446008)(66556008)(122000001)(82960400001)(6486002)(71200400001)(508600001)(83380400001)(54906003)(110136005)(36756003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?EBfNPCpo377RHX2+k5vO3UA?= =?iso-8859-1?q?Z1tthiW+zhWL8BlFPspYjN4G2OiYEoNlF2wB3rCM18BEvRlhyNVxlaXSE+eD?= =?iso-8859-1?q?HmoHbFCwpRDjThfInaPzU0OLOzFzD5S+yFK8LZDZiq+bUKR44Gu8dR9BIlW2?= =?iso-8859-1?q?6JEf7M/kmS1yKZvVLj6vXj+6FjCNJVlABkFRey93dL1fC375/D8Gygi58hij?= =?iso-8859-1?q?9z3XDxGAODYD7uuRuxAUPcMoi1qnPaTCGMjCiHFEW9o8FH6XA2cOhp9pgNyp?= =?iso-8859-1?q?7l03uTOyzUUNLiEvQvck72bwPd/F2QOUVAUMZo4KTSY0vhHqCcAGyVB7CZwI?= =?iso-8859-1?q?shWuBm4tmO57geUTL/dqXfLJ9Wqfdc/3yry7ON3uCQa8GBJXVRu2xPFX7JYD?= =?iso-8859-1?q?ssSBTArMNJ/KIi2KmSP+jk9PJmTzIWPGuUtVthYDqvDDhwe4T4VMv++z/UPy?= =?iso-8859-1?q?HK5aDAZHhV4G36hWPuPDJHAZx5Ejw+kq6Bb+CzLgiG5pIc9RVTlDAE/7Sw4P?= =?iso-8859-1?q?yQXWvmB4VBJtGEdVxjnjsr226O/P4+qUmzKXz4p9sPivIMDmxyyT6zAbPceo?= =?iso-8859-1?q?g6p5u/aN0Qeq6O6cWTWcTS9W76exmZxaoLElDwpXki6a+5z0DVOe4pKNH1ab?= =?iso-8859-1?q?QtxgcW5yb6NaKdDw6AhZQ5sab+V9c6LAz+cgrMfvnx3P1lWk8VFQavVzFL1V?= =?iso-8859-1?q?Jk3+hRZPvoJyXDW6n3fQlFpUp98avKEd7uf0dtz66ZWfji3ZZLk9Bar3u277?= =?iso-8859-1?q?Rsj/3J3A3wPAUWeZHouU4F2MUowZ3dFuxGpIaepKkdgK6lJdTJ3TOsP0VP49?= =?iso-8859-1?q?xZPCDoFWCt1Je+YByOVov70hsBEsCiPKwkPshp/YYFbBUWUTZ19SI5FuTlZa?= =?iso-8859-1?q?TTiQS9YodhxF55PDKQS+owECXgutrJTIjf/U6wt/u04cCKEAxI+uUHHFKea3?= =?iso-8859-1?q?YA8bbcHDIk6MHqm64wQ46XOlvceVyEiZ/nE53IcCRiLd3FtrGmrW3LaCPTq+?= =?iso-8859-1?q?pGvP8Bd8b2Grtoc0PIbhZZrHdjpwyxEq4jPD17czi1aakF76jqafvXQcPXdT?= =?iso-8859-1?q?zqWNsKTdJRVyKebPngmGYZ59jN4ArtwF29wRyv8Km8FIGOnCzSNUgMef7S1P?= =?iso-8859-1?q?GkAqf/9pgW85JvdsUo+danB/Nd2hem6+6iu1j3aRjNaFyjhEcnwIGmJmXZkN?= =?iso-8859-1?q?OPIIxz7Rx0iTkWIvdAgxQx/qG11Ivpo6rJXTosq7Srp5nJRtSCQe7kg1tVSN?= =?iso-8859-1?q?EHMl2RkfSpVWvZjiDizn12SUCLoaUYktGsrmvumRcQ24dYjpAFy6XQzaAA5r?= =?iso-8859-1?q?2cGh8vY+UqGGzA3p/RzZFaOGto7tcLnv7BpBdP62l9J7sMIU1l4q4g8mbLUf?= =?iso-8859-1?q?RWEWkPBHX5E8ru6MWouX+LdFllNivAgEtb3o0Cj+9hBYkEo8fPnV6MKJPmP5?= =?iso-8859-1?q?GCtP1eu3xnpSK8FoYiRGyUEdNDeCtnemnRKTqLm6l+6E4IayRpxZAZKgUTin?= =?iso-8859-1?q?/XUmcHpNUf/H0dEGdsKIS4JzWY6buzhY7bQYJ9MXh7Mvp4VR7Y5Zum+k4/my?= =?iso-8859-1?q?9qS4p5TvZZxgwQP/15MzjMYXlk7d164V6vr0TUjFbbMyIndR8rj9fTjpY9AR?= =?iso-8859-1?q?6liOGz69B4ZjMxBYKdA7KYMBMXIasJYrDj7YbAcFndYI+8uv02F2ct3QOA7Q?= =?iso-8859-1?q?=3D?= 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: 772f1846-5da2-48d7-ffc2-08d9fc4ec6e0 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Mar 2022 13:15:52.2356 (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: 3GFbV9b1V/pvoUHIaRuvT0FiyFJh0S1gtZtpI1pOMPJ3X7nbcaAzSuoUL0M8UXw4xbpvZlRq2ellHKxpOHpbdg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR04MB7608 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220302_051557_175422_59DD9029 X-CRM114-Status: GOOD ( 16.61 ) 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 Wed Mar 2 13:15:53 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Niklas Cassel X-Patchwork-Id: 12765989 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 6475AC433FE for ; Wed, 2 Mar 2022 13:16:16 +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=HF1Jk3hd813NBQOSFVi0A2fLI2Ljtl+OJWnOsll8cho=; b=KrXMUn6QVHLxz1 XeofvnC2P0DydyS2aGXOH4uRif/fyvXrS6TL4yOSHhKjxRJp3Wvs1etFFEH5webaYyTeX3fy6n7JI Oo31GMRsvr98LR4euOdzbkT+q4nXTPHbkSiE/ELHlZP9wYvXkBVxHbWCVi82okIDN33BM1Jk71UIa X7N1L2YO5TUVz4MX+wfLjhlC0iKENSqnW0y8Y5ay+GbZtVSGXVZQhr8a0WdZj7ctus4TZMgp+FjzT mmB5Oh8dtFh8NMVME2XrXnl3m2WQQcXgJ3v4ACpCGzgVSPYVxlLjBK0ExFCl0jjruNfkQWsflwof1 8AWDtxLtArlwctRPDAQw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nPOpn-002jjo-BN; Wed, 02 Mar 2022 13:16:03 +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 1nPOpg-002jgY-OX for linux-riscv@lists.infradead.org; Wed, 02 Mar 2022 13:15:58 +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=1646226956; x=1677762956; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=oKlZHsktz4KR1alb360gIot1ZgcsJry8n73LJk6cQhw=; b=IxL+Nl4c/Dawlo0LquKMs6nhbu4Rhd7proTDyoDcmcUF9nMBsJP5Tfmb U6MrszO/Ga9+u9wA8wcIrZJ8k5mrPhGrvUWQrSlW5/LXnVlc50BOZDIOg wl9M2oKdDy9ioOSs4qX5B3CjWJM5D7fYUQW9gV/YgEtsRd1ZP1IojaWf/ vikR5t4xRP0H2yZEb+uuY9+lr2Zl4V5jouoSkZ8eGREqTrK5IpPHZGG/T NQSksQ17DwwWN+rrPyUXIeoIrF4KYLXcZl9dZNqEuHxRTtU01F/vVqmHO wbEiOpcfGN3JXjPamRW22fHlKeCjAUIX5JHeAzXLhUQvzaRMJ78Ho9sr/ w==; X-IronPort-AV: E=Sophos;i="5.90,149,1643644800"; d="scan'208";a="306195809" Received: from mail-dm6nam08lp2044.outbound.protection.outlook.com (HELO NAM04-DM6-obe.outbound.protection.outlook.com) ([104.47.73.44]) by ob1.hgst.iphmx.com with ESMTP; 02 Mar 2022 21:15:55 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OU1yzBp+rPRr40LbS0YLPFKySK/oMFFymejjWVs7LUiREvVurwFZzmy70Tv5Z5DYxfnk7E5tHUeA9L+nWx2m0PpVqsFy/j6SwOXWdIDLagZBthNuaKnyVDA4pRdOF1iBCzRkFV9O/x7i0+v9+8GuJ/FIffxr4zhCZjf+M+NTL+f9xgMEtt2S7e8fijz03JxSluTpB/9KCiMQDTsTkrQJYGC0gPRX8u+I7iiI2yccc843Wdo4Zguin5uUxx2gX2sIRrYPj9caJMdeeOTidaoFI9EVcxJbbxAQ9csAnlz/UK/iJN3QIJB5KY5b0tl5nBHGJh+9X5c/q3H9E3lLNG7IoQ== 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=iZwlcpTi73E8q+4QP/2zV6eWE+w0HT2Y1ynQWje6o0Y=; b=GhXHVf6yUbXnYpfxAcXvqmxRH5k2r4kt7+96C6YbrBPYXPa2X76jvWKYEOMnK1K5beEAUeJXAJ+fK0H7GrE+qkdp6px868PXmKzPcrZiIGoZ4J5lT0UbODNTKCd09rKyJA2L8mJrRUCHGfG0VnpxVryDKFfO/koCciTCT9Oa6zIbbNLRGBn6ARQHIMV7/74WgX/Fgnx9grtkKcZ91r7RMOUVfEt4P0Ptg2RpsrmjxOHVOJ0nn+czZKya1zN/6LF+2KE76zkKVHEec50UxJ4bECa8zTJ/aGwN3cynidKpSNthr80nn+ftdv4QMHJ6jukGdTXbtUju1+Zlo1mDg4waEA== 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=iZwlcpTi73E8q+4QP/2zV6eWE+w0HT2Y1ynQWje6o0Y=; b=IO3i6xaeJjlKLosBmFF+8KbqsdUtyoNsLR4SEQqrihgOmFwSxELh2MdRvqy/8KVJOh39/KToRgMYg12+Ig0jQPXTdAuNAfLT9tnalHA/Xt9ERmA4PMrKfGEorcHOZZn+tAqOO2PIu0qjejrRxBgpg88qXBDU7zXlc/PLXQq1m+o= Received: from PH0PR04MB7158.namprd04.prod.outlook.com (2603:10b6:510:8::18) by PH0PR04MB7608.namprd04.prod.outlook.com (2603:10b6:510:53::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5017.24; Wed, 2 Mar 2022 13:15:53 +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.5038.014; Wed, 2 Mar 2022 13:15:53 +0000 From: Niklas Cassel To: Thomas Gleixner , Marc Zyngier , Palmer Dabbelt , Paul Walmsley , Albert Ou CC: "damien.lemoal@opensource.wdc.com" , Niklas Cassel , Anup Patel , "linux-riscv@lists.infradead.org" Subject: [PATCH v3 2/2] irqchip/sifive-plic: Disable S-mode IRQs if running in M-mode Thread-Topic: [PATCH v3 2/2] irqchip/sifive-plic: Disable S-mode IRQs if running in M-mode Thread-Index: AQHYLjekNsSkyfVTzUeR6TkdNsQAEQ== Date: Wed, 2 Mar 2022 13:15:53 +0000 Message-ID: <20220302131544.3166154-3-Niklas.Cassel@wdc.com> References: <20220302131544.3166154-1-Niklas.Cassel@wdc.com> In-Reply-To: <20220302131544.3166154-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: 05185c33-3410-4daf-8748-08d9fc4ec766 x-ms-traffictypediagnostic: PH0PR04MB7608: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: e4M3rSDWliFpDxbEmlI7O8T72PSXri/q9VL4WzbCeBRcNjVpxJFBc9e51nRVvOKTj+pZAJeCJN/PnX5ZLde03w576kkKWaDXYSh/ONRAEC6NIkEGRm4RwEZwaqAbFMn0HI7Gpbrbo0tblUJIlpBYIhXGSjFxbde4hZCNkh29dbSHrIcgHXSFaB30jcLv5il1FIb0DfeMsW3Ve18R1KhYZjlYvzA/VTaoPoY6BsUXAPdyovoFO/v56KnQA4yYmjVsRXqEf8Pn7Z8r+2y7S7LgR6DPtIBI4n4pQ0KDUOqn05BQSMrtllv7U2PSh6PWqCBuij0gi5/lA1PkS/FnMaE0gkUTQb8POy3GNVxlGD3WAIeLAix6IGP96RngSCpP2fKnt83vvzakxfkqwr2m0r6UbCCTeWnX3hwB2EQNa1WUDNBVjn9dZitZRjFq+3jih44gvFTIBssgfwdKHCeAmQWxhNWpnaPv981MjgKxARuEiyOYboqDwQglkKG84S//nzf3SYtVVh0CHPObzBTSP0AD+b6vI7OKq9FW2JHb7Qq0Prhyx0fc2R6OGXIXKUUtqhZbM0HuG7GGUz42ybSkwY3hmiDm/yZJxGoalPjCpVAtJllAD3PDDoMTiaRMD9haBBUefSVVg3RipdRPMSOIplvssIYZdcgOBzqMBldaS6AGDLTf/nUFbht5nT+xYJIqagTVQOVNV2xBq1yo+KdBpiji7g== 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)(2906002)(6512007)(38070700005)(2616005)(8936002)(186003)(91956017)(66476007)(1076003)(86362001)(8676002)(66946007)(76116006)(64756008)(5660300002)(4326008)(26005)(38100700002)(6506007)(316002)(66446008)(66556008)(122000001)(82960400001)(6486002)(71200400001)(508600001)(83380400001)(54906003)(110136005)(36756003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?5+jPGedW7XiHjnFo+1qu+gW?= =?iso-8859-1?q?0dgr+adMogFb7ovqP7Kmxm0ktVCevpUBuy1+C/uyxmZRJeapEvQo2LkqFoCC?= =?iso-8859-1?q?DS8m8W4Loy1dcxbci2DdwKVrUrefP4Jq01LV+y/oVXZemknqDRRfkBwZHblD?= =?iso-8859-1?q?gYtQCE/PV+CcmHC+3BylOvI+2egduKpfI5xVpuysCdCwlaz55MeNlnqAyG1V?= =?iso-8859-1?q?rf6s4xjfoPToZYAw67DqKUujlp3xsLq/ofwNng/SJ/v7WxY46Y4kxy6B0XMq?= =?iso-8859-1?q?6PBSi8bo9VL4L+mf9uq3lTvCfTablZb3SJuNMKSqjZ87zTPipl9vMB3O0d22?= =?iso-8859-1?q?W2LEQ2CawBSSvDdaRoIUpbf24QGq1Yc5xEraekVy5aMH/CpaNcrFi/F2tusz?= =?iso-8859-1?q?2616EoAx/YgTtLNzODzJf1lHpYysctizpXAC+aYFzNX3v2Ckji4Jw43fJbEQ?= =?iso-8859-1?q?mdbwwPtiqcap0w4zb0VDeai3S/8Y1DXVO3mZ4vDNYRD/0LlAiK9wQfE/qDJ4?= =?iso-8859-1?q?oFMA6CIIN7qva0s0ZfbG9HHS2asbIWkSxYPDEcq3tE1qempLEEbgs1qYyHyJ?= =?iso-8859-1?q?xhrLd2NUG6gLkx5Y43pPwzaK594q8JrgjXmL9JY7Rs7SQumn/1rJZHMFoern?= =?iso-8859-1?q?NxHi6/jpYyMDJExvWqIdiUBW1fj6r5gOiZCXmRTrNUeiecb/ZSj0YUPmurHU?= =?iso-8859-1?q?U2OQrYrewddlbm+AIO9fkV0f86bQa4mSgS4chzt2yFrUNj7B9nQQGUe+f0+0?= =?iso-8859-1?q?aGg8otsit+9ConMDgZfsKPWYYZaDoklT71+ihwtiyWY6Fm1BPJUKDZ0Ygb5R?= =?iso-8859-1?q?IZnvAX57eLHlkuaZbuo5HRRTr6o9K/jWrMdeSxZL/iviJ3j1udcmUmXdBYgr?= =?iso-8859-1?q?AZsFJGv9GonbNSxT4UWRz8ceQMN7hymy1+f1z7IGX/UdRVR9CeybP5RsK35u?= =?iso-8859-1?q?61SPfNy2G+OkSUwo7bZ3OtCiDM7lWHNgNxkT7WSbYT03ySBVGbvWKaObZRZ1?= =?iso-8859-1?q?FMAVIhndk8ar8QQ6yIDh4TZlXvhefXT9NiXWlf02k0HTUQwcvPOCEj7YdTFD?= =?iso-8859-1?q?aRou1YGyW0Z2nzE0CbvZt2enc+kFyIqBX8K6thJJVXa9OLrtyfgQaPmn4Wgg?= =?iso-8859-1?q?wAQpdsv+Um0q2WemBbhut+BYsArghhLkcVulIKEajlnDwdYhNDn58+7EO/h5?= =?iso-8859-1?q?7zStbWA/LzLZ/69+T01DQAtKBGppcL+AQEXjnPnV2BbHQoMRSNTLJntAeSzu?= =?iso-8859-1?q?Zj/AkVlvrK08BKdVrRST39eUHwk9Rgq+3b0B0dW27ZIk5v3jja4yrBfmVoj5?= =?iso-8859-1?q?Ts7cVbmhc+0vVQRoE4cXOBInAol4W4LFyH9f18eA1M27yyJgCUfiffSZn5Jo?= =?iso-8859-1?q?ZbEUVuY05DHbmAuzDs1CyI+x2fNiVdGGQiDZN+hjoMkyIOj07rEgLJgpffw5?= =?iso-8859-1?q?AUYIeaGaHi1PlvEtOaO8NHS60ZUveigmXlLGbxg4pLJlZflQ2D/yosvdASYk?= =?iso-8859-1?q?U7VtVN6NnKVyEpcB4yzwY5g8ITYgAlkq29yhXupKHO0sro5uVZSmpIy0ug3z?= =?iso-8859-1?q?/d0eOGJVniPPob3e6g4/biTYEl2jn+NFiI9d6NHrhCEztKP9WV1qFQT2ICzS?= =?iso-8859-1?q?9dIviwcxstEGybjwadaDRJ8wF+7X+41G52p6AT005fFAmvUhXsP/2MF1kG3M?= =?iso-8859-1?q?=3D?= 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: 05185c33-3410-4daf-8748-08d9fc4ec766 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Mar 2022 13:15:53.1163 (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: 4/yvco6CAPC13KOLfkI0u5dJHhtzghggdZdUADTvZKZQX1Y9+ColYg4Fyb6CNN7NcqXp0ZiE+HW1jTcJgArmag== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR04MB7608 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220302_051556_925658_EB441654 X-CRM114-Status: GOOD ( 18.58 ) 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 | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/drivers/irqchip/irq-sifive-plic.c b/drivers/irqchip/irq-sifive-plic.c index fc9da94eb816..bb87e4c3b88e 100644 --- a/drivers/irqchip/irq-sifive-plic.c +++ b/drivers/irqchip/irq-sifive-plic.c @@ -81,17 +81,21 @@ 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 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 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 +328,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) {