From patchwork Wed Apr 19 11:10:51 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Drew Fustini X-Patchwork-Id: 85340 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp306252vqo; Wed, 19 Apr 2023 04:22:23 -0700 (PDT) X-Google-Smtp-Source: AKy350ZzrSS5AAYG0UTQo47WrHlDTR+wxRNCbno5yEmlWAW9wHoOZUvVW9OIGf3ki1bj3ZEcW1Do X-Received: by 2002:a05:6a20:1448:b0:ef:1457:6ce9 with SMTP id a8-20020a056a20144800b000ef14576ce9mr2882442pzi.54.1681903343366; Wed, 19 Apr 2023 04:22:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681903343; cv=none; d=google.com; s=arc-20160816; b=N0DwKd6XHbV66DLLaAqMf1JXQqMj8tYKqLL87pqz25PrZMzAgMcvBxPWfTLQz7aPV0 Hofq6+TO2VrRrnZ7HcbgOIuHGuEfWZX81FOJzHm4kcA0RPJgDWZN+8fnbEgC85+ktx+6 5TGfokIxWNhav+44klignhog5M1/xzFvk9ar60FRY+4yGxNQOm/rT/3QTygAXs4Vk2pa 3cvavlJRRlZKK+IRFlwbMgLtELlzA14hpNc4Tdg+8uheHZ5TAnrWFYP+tlOhO8oUQdh4 nl8skF/kaCp0DeZnJhLSC8ixRQ1fYY3rICAqKpwcYGD3Ag1XADxoiaDplwb8YvXqcCmj INSw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=qOmhE21FgoLvBz4/9K8B1nYj/1N6YhDVDpnvXhhmMHI=; b=VtezKUb6pK5cKBt2f6sP3qphIVwAb3hfYGbDHCwFjaweLBlb0rzt/7IZL7fFHYErlM TemLxRm8m+8WLPP2rMe98bToWnHYZKMmVmefpo5WZ62Gxj+Rdi1dU5QTlboqMgs/Wo2Z bBim0tLyI7aAVdIKdwKOl8tQlUlnxqlz0C5iysXerAxfTtzeOb5J28Ii0FixIKjzV+Mz hP3NiiP9Sbwt+8xsiBs7+SECNlbZsW8O9U3dKYCF3muRGdAFJeRXhz0+ozgkydqgRNZv yj/cg3T/ELL/A7WxubZPoNimMMUuxZpMTs44Fz543zaXUUcsnrok7vneXTc2RsJXCSB4 Wt6g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b=MCc3RKuj; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id s24-20020a632158000000b005034a5a0a58si15599271pgm.434.2023.04.19.04.22.10; Wed, 19 Apr 2023 04:22:23 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b=MCc3RKuj; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232844AbjDSLKn (ORCPT + 99 others); Wed, 19 Apr 2023 07:10:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38216 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232801AbjDSLKf (ORCPT ); Wed, 19 Apr 2023 07:10:35 -0400 Received: from mail-pj1-x102a.google.com (mail-pj1-x102a.google.com [IPv6:2607:f8b0:4864:20::102a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D637E13C23 for ; Wed, 19 Apr 2023 04:10:09 -0700 (PDT) Received: by mail-pj1-x102a.google.com with SMTP id 98e67ed59e1d1-24782fdb652so1397575a91.3 for ; Wed, 19 Apr 2023 04:10:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20221208.gappssmtp.com; s=20221208; t=1681902609; x=1684494609; 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=qOmhE21FgoLvBz4/9K8B1nYj/1N6YhDVDpnvXhhmMHI=; b=MCc3RKujUUOi8hHvnbPZFeUjt8Qd74fXOJWfbDL8OnevMgMRtLCwWwwiC8fo+YtseC Z5CdLbzGTCTc4FrEZwKeoFosFYCULmjriRg7z6nNiNBZZHcqQYlcVxtc/8J/iXL6FnGM Ak1bog8/XCv67o576rPkqx6VVqQB2wiWJUaX4SuFrHLX9Y0r9Nriqgke9p5gwyKw4+mb 6ggfeHji4wYa2rfl88PSkZkxOMDnEFJ8zEx21rVh0Pi1oTVIcQlQYajwFvO958MKvKTP oex460ebviHF9yAeC9yopjk8xV4Lw4HLQclBLRYFseX4PFAQ3a+cloav1If/fEXDS+8S AqkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681902609; x=1684494609; 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=qOmhE21FgoLvBz4/9K8B1nYj/1N6YhDVDpnvXhhmMHI=; b=fSKoGvq95gs0eu5Wno4FprZo8y5QE6HFOOcRmpqvpBYYiPbLWwEOmNcx0uj6U6oh5k QsDRBk1phhnP3ofvijryGEWl5rK3g63D5yzjl/ItgpuzEVk5P66I2wVyvOcf0OjFP7BP BW0ik2M6IRzHmpe02kBMcKCZgUiyqqWrn9URoi3YPDQVI5Tc8rVOnCMxq7xVlhZI4Fr+ 93upC86N4wTRMqU3daxqMYu5sKABYr1UW9oWTSNsDLV0+r850ExPGwWrzPSEWxAUvJIs rjxEFNDDbdjq7c8Ci4bwV5zDg/HIEoCdFO7G1Szz/EhKRvCX9Pe4NORfRRkVmh3+XGvy AqcQ== X-Gm-Message-State: AAQBX9cDGEJs1hQMSWnlqsuTXhMjbDno2n8EARoy4feHlD66Q+CID2ld /b3mch+7AyJCZ0iuBmV75E7mOA== X-Received: by 2002:a17:90b:3901:b0:247:193b:ce84 with SMTP id ob1-20020a17090b390100b00247193bce84mr2501295pjb.15.1681902609085; Wed, 19 Apr 2023 04:10:09 -0700 (PDT) Received: from x1.hsd1.or.comcast.net ([2601:1c2:1800:f680:eaf2:1d7a:7338:16cb]) by smtp.gmail.com with ESMTPSA id g12-20020a1709026b4c00b001a24cded097sm11180774plt.236.2023.04.19.04.10.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Apr 2023 04:10:08 -0700 (PDT) From: Drew Fustini To: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Palmer Dabbelt , Paul Walmsley , Conor Dooley , Ved Shanbhogue , =?utf-8?q?Kornel_Dul=C4=99ba?= , Adrien Ricciardi , Nicolas Pitre , Fenghua Yu , Reinette Chatre , Babu Moger , Peter Newman , x86@kernel.org, Rob Herring , James Morse Cc: Drew Fustini Subject: [RFC PATCH 01/21] RISC-V: Detect the Ssqosid extension Date: Wed, 19 Apr 2023 04:10:51 -0700 Message-Id: <20230419111111.477118-2-dfustini@baylibre.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230419111111.477118-1-dfustini@baylibre.com> References: <20230419111111.477118-1-dfustini@baylibre.com> MIME-Version: 1.0 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1763603480389650453?= X-GMAIL-MSGID: =?utf-8?q?1763603480389650453?= Ssqosid is the Supervisor QoS ID extension defined in the RISC-V CBQRI (Capacity and Bandwidth QoS Register Interface) specification. Link: https://github.com/riscv-non-isa/riscv-cbqri/blob/main/riscv-cbqri.pdf Signed-off-by: Kornel Dulęba [dfustini: rebase from v6.0 to v6.3] Signed-off-by: Drew Fustini --- Note: - A version of this patch rebased on riscv/for-next was already submitted as an RFC to linux-riscv [1] with Message-ID: 20230410043646.3138446-1-dfustini@baylibre.com - This patch is included in this RFC series so as to provide a cohesive demonstration in one series. [1] https://lore.kernel.org/lkml/20230410043646.3138446-1-dfustini@baylibre.com/ arch/riscv/include/asm/hwcap.h | 2 ++ arch/riscv/kernel/cpu.c | 1 + arch/riscv/kernel/cpufeature.c | 1 + 3 files changed, 4 insertions(+) diff --git a/arch/riscv/include/asm/hwcap.h b/arch/riscv/include/asm/hwcap.h index e3021b2590de..255c5c4d0a24 100644 --- a/arch/riscv/include/asm/hwcap.h +++ b/arch/riscv/include/asm/hwcap.h @@ -42,6 +42,8 @@ #define RISCV_ISA_EXT_ZBB 30 #define RISCV_ISA_EXT_ZICBOM 31 #define RISCV_ISA_EXT_ZIHINTPAUSE 32 +#define RISCV_ISA_EXT_SSQOSID 35 + #define RISCV_ISA_EXT_MAX 64 #define RISCV_ISA_EXT_NAME_LEN_MAX 32 diff --git a/arch/riscv/kernel/cpu.c b/arch/riscv/kernel/cpu.c index 8400f0cc9704..d1441872f173 100644 --- a/arch/riscv/kernel/cpu.c +++ b/arch/riscv/kernel/cpu.c @@ -189,6 +189,7 @@ static struct riscv_isa_ext_data isa_ext_arr[] = { __RISCV_ISA_EXT_DATA(zihintpause, RISCV_ISA_EXT_ZIHINTPAUSE), __RISCV_ISA_EXT_DATA(zbb, RISCV_ISA_EXT_ZBB), __RISCV_ISA_EXT_DATA(sscofpmf, RISCV_ISA_EXT_SSCOFPMF), + __RISCV_ISA_EXT_DATA(ssqosid, RISCV_ISA_EXT_SSQOSID), __RISCV_ISA_EXT_DATA(sstc, RISCV_ISA_EXT_SSTC), __RISCV_ISA_EXT_DATA(svinval, RISCV_ISA_EXT_SVINVAL), __RISCV_ISA_EXT_DATA(svpbmt, RISCV_ISA_EXT_SVPBMT), diff --git a/arch/riscv/kernel/cpufeature.c b/arch/riscv/kernel/cpufeature.c index 59d58ee0f68d..80317d2d3975 100644 --- a/arch/riscv/kernel/cpufeature.c +++ b/arch/riscv/kernel/cpufeature.c @@ -222,6 +222,7 @@ void __init riscv_fill_hwcap(void) } else { /* sorted alphabetically */ SET_ISA_EXT_MAP("sscofpmf", RISCV_ISA_EXT_SSCOFPMF); + SET_ISA_EXT_MAP("ssqosid", RISCV_ISA_EXT_SSQOSID); SET_ISA_EXT_MAP("sstc", RISCV_ISA_EXT_SSTC); SET_ISA_EXT_MAP("svinval", RISCV_ISA_EXT_SVINVAL); SET_ISA_EXT_MAP("svpbmt", RISCV_ISA_EXT_SVPBMT); From patchwork Wed Apr 19 11:10:52 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Drew Fustini X-Patchwork-Id: 85325 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp304138vqo; Wed, 19 Apr 2023 04:18:39 -0700 (PDT) X-Google-Smtp-Source: AKy350YENVsRMMYLs8UU9EuWHcptVxTMLuQoQmJKPBxueTVmpbKmR3I4ilj3N22zcHgqr5DK6YFn X-Received: by 2002:a17:903:191:b0:1a6:a988:b873 with SMTP id z17-20020a170903019100b001a6a988b873mr5814484plg.69.1681903118858; Wed, 19 Apr 2023 04:18:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681903118; cv=none; d=google.com; s=arc-20160816; b=h5/Prpz0NukQC+Gmp9qOCwmHvxQDBXWXDS14n5u0Ya5GNV3bFk5bw4VenryHLbB7GC t9Z9lMWlOaHYhWp8cQRBxre7xHd/cGPG//p2j7W0k8gG9mO2nbTzdNeiIr0q8TnK+wcm PYGoyxTH+L0eFkTE7zcUyAeuhAhTdwOuQ3qjty48RwrsV6ypY0WeLbx7rkdxSwS4kmep U6AusVTwVlYm2B4Z5WJaVC3zvGWkdmh6/4t2N/WkOQ9NLes6M3lk04zthmqDy3YRjX3y W3H5+X2uHlxEUG1ZjCTLDp3gUxVpeZtElLAvjFwWpC+llSkrTxUzx78iX6eq7c/dUfKj LipQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=s9eEO9ZSQHehmRVwlaaNhzbm/IQf1ILPfvFx8ATSlnk=; b=eoMRIWVPcuBlPhtfbEpM7UAEs5CJ3yGbYmGAwYte9efHIiPnFRqE3c62Sz4BbW3f1f gw4N7bnRYGl9zIFzEdXXCNmbAeM/E4tIlRAtcJdYtWGD+dX/dqRLnJka48xDfNKbOND6 k6UneP3UJzif/zEpj37eCBgGpWBjeBf/t0i2Z1fwsyLhNfidnTZDCv8fpB5XygjxXDoJ cEbTFuEyvCZVr40vZx7BtwYyTHSIfKjFpv474hHTY2mC1PBKOASsFF8nMQ/5KU8/nXXi wv58+ntzmSiFlvd3e6Cq+2Qy4PVkc91OP6+ZZOBCnXoZsTHuXfXaWhBUDV4lG8u18H30 JVJQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b="nM88pRf/"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id w23-20020a1709027b9700b0019a95ab6b4esi15540163pll.407.2023.04.19.04.18.26; Wed, 19 Apr 2023 04:18:38 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b="nM88pRf/"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232862AbjDSLKr (ORCPT + 99 others); Wed, 19 Apr 2023 07:10:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38288 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232840AbjDSLKk (ORCPT ); Wed, 19 Apr 2023 07:10:40 -0400 Received: from mail-pl1-x62d.google.com (mail-pl1-x62d.google.com [IPv6:2607:f8b0:4864:20::62d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4813414F51 for ; Wed, 19 Apr 2023 04:10:12 -0700 (PDT) Received: by mail-pl1-x62d.google.com with SMTP id d9443c01a7336-1a6670671e3so26993515ad.0 for ; Wed, 19 Apr 2023 04:10:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20221208.gappssmtp.com; s=20221208; t=1681902611; x=1684494611; 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=s9eEO9ZSQHehmRVwlaaNhzbm/IQf1ILPfvFx8ATSlnk=; b=nM88pRf/8GbdydpA0PP59ZJw6KWtk+CReKDnuabgXXMLywUgP8jhNzJYgb+cjDguai OwcZks3oek4D8CauNV//M+GGG84t9v8BrXspxTYPgj7NoYmjKUFElRaaahMEE0bo6GAZ FtdkgabxoZkOMQNnXOB3g9hc4yKmhsOxhjccntE7GQ7MO7BlGELiFMFHqVKcxoxYa+D/ UGrVjOBB/J4w3p2eo9fxlnm9kLTKgC25ESbticBubAHIxpm4o0/6AyM2fj10z3HC7k8p kORWjTcvG2LSfK/BXCcK7QTGjUOLUeviuj3O4CtyJ2TPGJzX7UHGVgZ0baILjf5rs3jp kBUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681902611; x=1684494611; 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=s9eEO9ZSQHehmRVwlaaNhzbm/IQf1ILPfvFx8ATSlnk=; b=Y52We7IkdfJxarOnDYkuRpoHYRpHUeOMGq6JWygqBQQ4NbEGJP/OumgIRn39QnM2F4 xzQIxBawGKK2CZJ08P2P5kG4b//tHZ1CMNMsHuZMCYY4vVEIYwSuvSio9XS8gu7Arttt MAm2bCPGC0Jz6R919XS5Z/gi0ZhEGYzw3tfRhhxj0XQI0ELSt5G2OMSoEOdz0nUxzrRt AwU+s/5fG8iSYjm66bCDgQn2x271FusokJzGJ5gT366hxR0T3VRssCfAXGKn+MxFGguP 0QeQVVfge/Rj5CRgzWk6POezA+M2TUEj7aeXhNjabHYwOJtMkmLOwmykrme6qiG2vyF+ KBNA== X-Gm-Message-State: AAQBX9faW6Ic4+dIJzGI4h70q17uWzDtZWu78+3i8Mgb6uYr6i9cDkeL a8RBUL9u3DgkBP5FQ8UiicF17w== X-Received: by 2002:a17:902:e847:b0:1a4:ee94:a79c with SMTP id t7-20020a170902e84700b001a4ee94a79cmr5668813plg.14.1681902611548; Wed, 19 Apr 2023 04:10:11 -0700 (PDT) Received: from x1.hsd1.or.comcast.net ([2601:1c2:1800:f680:eaf2:1d7a:7338:16cb]) by smtp.gmail.com with ESMTPSA id g12-20020a1709026b4c00b001a24cded097sm11180774plt.236.2023.04.19.04.10.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Apr 2023 04:10:09 -0700 (PDT) From: Drew Fustini To: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Palmer Dabbelt , Paul Walmsley , Conor Dooley , Ved Shanbhogue , =?utf-8?q?Kornel_Dul=C4=99ba?= , Adrien Ricciardi , Nicolas Pitre , Fenghua Yu , Reinette Chatre , Babu Moger , Peter Newman , x86@kernel.org, Rob Herring , James Morse Cc: Drew Fustini Subject: [RFC PATCH 02/21] RISC-V: Add support for sqoscfg CSR Date: Wed, 19 Apr 2023 04:10:52 -0700 Message-Id: <20230419111111.477118-3-dfustini@baylibre.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230419111111.477118-1-dfustini@baylibre.com> References: <20230419111111.477118-1-dfustini@baylibre.com> MIME-Version: 1.0 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1763603244312590242?= X-GMAIL-MSGID: =?utf-8?q?1763603244312590242?= Add support for the sqoscfg CSR defined in the Ssqosid ISA extension (Supervisor-mode Quality of Service ID). The CSR contains two fields: - Resource Control ID (RCID) used determine resource allocation - Monitoring Counter ID (MCID) used to track resource usage Requests from a hart to shared resources like cache will be tagged with these IDs. This allows the usage of shared resources to be associated with the task currently running on the hart. A sqoscfg field is added to thread_struct and has the same format as the sqoscfg CSR. This allows the scheduler to set the hart's sqoscfg CSR to contain the RCID and MCID for the task that is being scheduled in. The sqoscfg CSR is only written to if the thread_struct.sqoscfg is different than the current value of the CSR. A per-cpu variable cpu_sqoscfg is used to mirror that state of the CSR. This is because access to L1D hot memory should be several times faster than a CSR read. Also, in the case of virtualization, accesses to this CSR are trapped in the hypervisor. Link: https://github.com/riscv-non-isa/riscv-cbqri/blob/main/riscv-cbqri.pdf Co-developed-by: Kornel Dulęba Signed-off-by: Kornel Dulęba Signed-off-by: Drew Fustini --- Note: - A version of this patch rebased on riscv/for-next was already submitted as an RFC to linux-riscv [1] with Message-ID: 20230410043646.3138446-1-dfustini@baylibre.com - This patch is included in this RFC series so as to provide a cohesive demonstration in one series. [1] https://lore.kernel.org/lkml/20230410043646.3138446-1-dfustini@baylibre.com/ arch/riscv/Kconfig | 19 ++++++++++++++ arch/riscv/include/asm/csr.h | 8 ++++++ arch/riscv/include/asm/processor.h | 3 +++ arch/riscv/include/asm/qos.h | 40 ++++++++++++++++++++++++++++++ arch/riscv/include/asm/switch_to.h | 2 ++ 5 files changed, 72 insertions(+) create mode 100644 arch/riscv/include/asm/qos.h diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig index c5e42cc37604..9d4c8c505191 100644 --- a/arch/riscv/Kconfig +++ b/arch/riscv/Kconfig @@ -398,6 +398,25 @@ config RISCV_ISA_C If you don't know what to do here, say Y. +config RISCV_ISA_SSQOSID + bool "Ssqosid extension support for supervisor mode Quality of Service ID" + default y + help + Adds support for the Ssqosid ISA extension (Supervisor-mode + Quality of Service ID). + + Ssqosid defines the sqoscfg CSR which allows the system to tag + the running process with RCID (Resource Control ID) and MCID + (Monitoring Counter ID). The RCID is used to determine resource + allocation. The MCID is used to track resource usage in event + counters. + + For example, a cache controller may use the RCID to apply a + cache partitioning scheme and use the MCID to track how much + cache a process, or a group of processes, is using. + + If you don't know what to do here, say Y. + config RISCV_ISA_SVPBMT bool "SVPBMT extension support" depends on 64BIT && MMU diff --git a/arch/riscv/include/asm/csr.h b/arch/riscv/include/asm/csr.h index 0e571f6483d9..ab222ca15799 100644 --- a/arch/riscv/include/asm/csr.h +++ b/arch/riscv/include/asm/csr.h @@ -60,6 +60,13 @@ #define SATP_ASID_MASK _AC(0xFFFF, UL) #endif +/* SQOSCFG fields */ +#define SQOSCFG_RCID_MASK _AC(0x00000FFF, UL) +#define SQOSCFG_MCID_MASK SQOSCFG_RCID_MASK +#define SQOSCFG_MCID_SHIFT 16 +#define SQOSCFG_MASK ((SQOSCFG_MCID_MASK << SQOSCFG_MCID_SHIFT) | \ + SQOSCFG_RCID_MASK) + /* Exception cause high bit - is an interrupt if set */ #define CAUSE_IRQ_FLAG (_AC(1, UL) << (__riscv_xlen - 1)) @@ -246,6 +253,7 @@ #define CSR_STVAL 0x143 #define CSR_SIP 0x144 #define CSR_SATP 0x180 +#define CSR_SQOSCFG 0x181 #define CSR_STIMECMP 0x14D #define CSR_STIMECMPH 0x15D diff --git a/arch/riscv/include/asm/processor.h b/arch/riscv/include/asm/processor.h index 94a0590c6971..724b2aa2732d 100644 --- a/arch/riscv/include/asm/processor.h +++ b/arch/riscv/include/asm/processor.h @@ -39,6 +39,9 @@ struct thread_struct { unsigned long s[12]; /* s[0]: frame pointer */ struct __riscv_d_ext_state fstate; unsigned long bad_cause; +#ifdef CONFIG_RISCV_ISA_SSQOSID + u32 sqoscfg; +#endif }; /* Whitelist the fstate from the task_struct for hardened usercopy */ diff --git a/arch/riscv/include/asm/qos.h b/arch/riscv/include/asm/qos.h new file mode 100644 index 000000000000..297e7fb64d80 --- /dev/null +++ b/arch/riscv/include/asm/qos.h @@ -0,0 +1,40 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef _ASM_RISCV_QOS_H +#define _ASM_RISCV_QOS_H + +#ifdef CONFIG_RISCV_ISA_SSQOSID + +#include +#include + +#include +#include +#include + +/* cached value of sqoscfg csr for each cpu */ +static DEFINE_PER_CPU(u32, cpu_sqoscfg); + +static void __qos_sched_in(struct task_struct *task) +{ + u32 *cpu_sqoscfg_ptr = this_cpu_ptr(&cpu_sqoscfg); + u32 thread_sqoscfg; + + thread_sqoscfg = READ_ONCE(task->thread.sqoscfg); + + if (thread_sqoscfg != *cpu_sqoscfg_ptr) { + *cpu_sqoscfg_ptr = thread_sqoscfg; + csr_write(CSR_SQOSCFG, thread_sqoscfg); + } +} + +static inline void qos_sched_in(struct task_struct *task) +{ + if (riscv_has_extension_likely(RISCV_ISA_EXT_SSQOSID)) + __qos_sched_in(task); +} +#else + +static inline void qos_sched_in(struct task_struct *task) {} + +#endif /* CONFIG_RISCV_ISA_SSQOSID */ +#endif /* _ASM_RISCV_QOS_H */ diff --git a/arch/riscv/include/asm/switch_to.h b/arch/riscv/include/asm/switch_to.h index 60f8ca01d36e..75d9bfd766af 100644 --- a/arch/riscv/include/asm/switch_to.h +++ b/arch/riscv/include/asm/switch_to.h @@ -12,6 +12,7 @@ #include #include #include +#include #ifdef CONFIG_FPU extern void __fstate_save(struct task_struct *save_to); @@ -79,6 +80,7 @@ do { \ if (has_fpu()) \ __switch_to_aux(__prev, __next); \ ((last) = __switch_to(__prev, __next)); \ + qos_sched_in(__next); \ } while (0) #endif /* _ASM_RISCV_SWITCH_TO_H */ From patchwork Wed Apr 19 11:10:53 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Drew Fustini X-Patchwork-Id: 85338 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp305885vqo; Wed, 19 Apr 2023 04:21:44 -0700 (PDT) X-Google-Smtp-Source: AKy350Z9i3LKZ0qdZKBMxUPuSV1k2vz72DYcPociK7m1QUSAnagvS94lBMbLsd3Ucpv7OMzxm6rs X-Received: by 2002:a05:6a00:2349:b0:63b:89a2:d624 with SMTP id j9-20020a056a00234900b0063b89a2d624mr4150893pfj.12.1681903303773; Wed, 19 Apr 2023 04:21:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681903303; cv=none; d=google.com; s=arc-20160816; b=rHJJLEXFU+cuaDydWeecRxpgNorZ7bN1hjHVuXIpSZBT3MuDip2AKtWx0nxi2+cps0 cCBwou3CkX2Y5/oMb29Edc4bsdfiKb5p/Rhb1JZnBtCUthnWxoa95Qi+wEWSywiOjvW1 5grJ71qbmxBWBwT+H+tXbfb2UhVleUYOGs33TuZ6Xd54jMT5Af4+wu88N6zfmaroTZDs L9SEXhVIv2ArSPvfyaW/iinqPAcCHcOJ5rBHp6sXC1uGTx/qSIENzv8BC++ZbmqqpO+9 vHVCmkU9qUZdCZ6ycwMGqr/5ZndETXz/QZWLUfMlbgxivBj0UAOBgP/Y2b4fVZFLmUAq 36/A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=iSeKxrM1bks+EefhwDp2KyUEcfeaeDF9wQYuIpi9EW0=; b=qD7WIypOf59KvenYExOq5tTyndbQrwkkNJJyHGjN12B6iq+aaNFdPXzXCX54EBuhtp qmJ9Kbl3J4xyJ/TKpE4HG8xAjWN3yl+8ibeDYms5pThCM9LjtIuZqnODXXivsCjdrTdK JyGiV/BlQPH1EzLD8+UKzLos4dZVIallrnbRFwue5cXlSAH20yFmC0PNuOwIbJM8Hm5L iKp09cXGgLH4I8lU6yIs67UUQeEtCi0nqX8D6GCRxdkEc/LspQppyOqMtaiNv2WRXdOz LR297RLCDWNElo1yeyducNzZJ5DfXrLmYMH+5st3tiJULd16Lo1YjeX0I1j9DCNCpVJD eYAg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b=49f1VRB4; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id w29-20020aa7955d000000b0063d33dc49e8si4437134pfq.363.2023.04.19.04.21.31; Wed, 19 Apr 2023 04:21:43 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b=49f1VRB4; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231971AbjDSLK7 (ORCPT + 99 others); Wed, 19 Apr 2023 07:10:59 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38440 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232881AbjDSLKt (ORCPT ); Wed, 19 Apr 2023 07:10:49 -0400 Received: from mail-pl1-x634.google.com (mail-pl1-x634.google.com [IPv6:2607:f8b0:4864:20::634]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 91DE915447 for ; Wed, 19 Apr 2023 04:10:14 -0700 (PDT) Received: by mail-pl1-x634.google.com with SMTP id d9443c01a7336-1a66888cb89so25360155ad.3 for ; Wed, 19 Apr 2023 04:10:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20221208.gappssmtp.com; s=20221208; t=1681902614; x=1684494614; 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=iSeKxrM1bks+EefhwDp2KyUEcfeaeDF9wQYuIpi9EW0=; b=49f1VRB4kGVGgl4N0u5BK8ILp9SHeHM+SfTX6b8+b51pY3zpNaPJ1K5jK6EgtzX3Y+ kgWIGu6FPEKFP21/XhNG9ezgg8K2EDcY4BsaH8hKcEgdKBEuXmWAnn7TXhj2pKL8Q80X gsM5BK6Q5MzRmp5iQrFFtt4800JiQbPBCGAiDimIVHwL4tXsJ0gdBDYT/3nSwEGUZcEh WGOPTVgisYyoEj1/vrQ8+Yu0qA+ueJ9JN+d6q3LauLhlb+RVvV1B/ctylOExID/3S9N4 IS3ZV6k4Wca8TNpiWs7+F0/PMjynSVx4U5joLQeEYF/fIm9t9xc4G8+hr0OJ8DDfaRLN aWZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681902614; x=1684494614; 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=iSeKxrM1bks+EefhwDp2KyUEcfeaeDF9wQYuIpi9EW0=; b=eixoExBJNTph9URcu37etoOflRqekM18usv1mE+9Pf1Ae8p5pI8jdBjEXNe/gv/QJm UK/8hFRXR6IFFwQuzDDu9CrdKijbRxqrrRA6ste8doI+HiWgSt8unN+lV5TGzc0jtzRp HVPXMnIu82kcRMxWpsfESiaBGrunSbyzFrOW5peah3HZxzqfxlsfw3Uyl3V9Ev5NV1QE CX9Sh1aiIPyNegQvb7DxHScpP1wVwsHFxrEt3FBr5erLF12wV87t+u62AZivVYHdkdRp bTHz8KHFXGmIsZbvob4WqvKNPwRu1GoXRiR6XnHW4SBnMrCaQAlQ0EQ+9fmOrqfY2WVW W4ng== X-Gm-Message-State: AAQBX9dakfTkaksL//fVSxZSVmyVdm3Nt9nGgCNVNb3hxwOe9Jb+26bg uDsul0TfpuP7PWFCmMHRNzfm/Q== X-Received: by 2002:a17:902:8d98:b0:1a6:ee5a:7208 with SMTP id v24-20020a1709028d9800b001a6ee5a7208mr4745154plo.18.1681902613761; Wed, 19 Apr 2023 04:10:13 -0700 (PDT) Received: from x1.hsd1.or.comcast.net ([2601:1c2:1800:f680:eaf2:1d7a:7338:16cb]) by smtp.gmail.com with ESMTPSA id g12-20020a1709026b4c00b001a24cded097sm11180774plt.236.2023.04.19.04.10.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Apr 2023 04:10:12 -0700 (PDT) From: Drew Fustini To: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Palmer Dabbelt , Paul Walmsley , Conor Dooley , Ved Shanbhogue , =?utf-8?q?Kornel_Dul=C4=99ba?= , Adrien Ricciardi , Nicolas Pitre , Fenghua Yu , Reinette Chatre , Babu Moger , Peter Newman , x86@kernel.org, Rob Herring , James Morse Cc: Drew Fustini Subject: [RFC PATCH 03/21] RISC-V: QoS: define properties of CBQRI controllers Date: Wed, 19 Apr 2023 04:10:53 -0700 Message-Id: <20230419111111.477118-4-dfustini@baylibre.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230419111111.477118-1-dfustini@baylibre.com> References: <20230419111111.477118-1-dfustini@baylibre.com> MIME-Version: 1.0 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1763603439022183052?= X-GMAIL-MSGID: =?utf-8?q?1763603439022183052?= Define data structure to represent the CBQRI properties that a driver for an CBQRI-capable controller would discover during probe. Each instance of a CBQRI-capable controller is added to a list that the RISC-V CBQRI resctrl implementation will consume. Co-developed-by: Adrien Ricciardi Signed-off-by: Adrien Ricciardi Signed-off-by: Drew Fustini --- include/linux/riscv_qos.h | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 include/linux/riscv_qos.h diff --git a/include/linux/riscv_qos.h b/include/linux/riscv_qos.h new file mode 100644 index 000000000000..95016810b575 --- /dev/null +++ b/include/linux/riscv_qos.h @@ -0,0 +1,34 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#ifndef __LINUX_RISCV_QOS_H +#define __LINUX_RISCV_QOS_H + +#include +#include + +#include + +enum cbqri_controller_type { + CBQRI_CONTROLLER_TYPE_CAPACITY, + CBQRI_CONTROLLER_TYPE_BANDWIDTH, + CBQRI_CONTROLLER_TYPE_UNKNOWN +}; + +struct cbqri_controller_info { + unsigned long addr; + unsigned long size; + enum cbqri_controller_type type; + u32 rcid_count; + u32 mcid_count; + struct list_head list; + + struct cache_controller { + int cache_level; + u32 cache_size; /* in bytes */ + struct cpumask cpu_mask; + } cache; +}; + +extern struct list_head cbqri_controllers; + +#endif /* __LINUX_RISCV_QOS_H */ From patchwork Wed Apr 19 11:10:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Drew Fustini X-Patchwork-Id: 85324 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp304082vqo; Wed, 19 Apr 2023 04:18:33 -0700 (PDT) X-Google-Smtp-Source: AKy350YqdTivcm1p7/astSCJzulvGATQsTulrDTg4DSFGY2QDXxXiBa5DoO97i0pN+HuTqEWnuqE X-Received: by 2002:a05:6a00:27a3:b0:63c:b3be:9784 with SMTP id bd35-20020a056a0027a300b0063cb3be9784mr2046132pfb.3.1681903113352; Wed, 19 Apr 2023 04:18:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681903113; cv=none; d=google.com; s=arc-20160816; b=EnARGOCtkhAvB4H+S/2xeI+KhaELO8Xy2Gq6SslrivaiFwgfWXa+cNmSM38IPkBrg4 yboheaA7UN1AZhyO8LzQyQ8B6mfHnhus5oH+pWIV0O2qzYxUgDLxu8/vpY1bGZjvYHcs cKjbVMulQqp9zdtAHbL/uImIaq45avizeduTsrochdjRQSs+g6lDrY4h41c/NhUYiu5p vw2YCrxZO/IkfGPNMiTqyON7Mp17eKyGLF2mCkUo+9v8hNYyJhxqQ2P1LIHl+tPqBzI3 E/38302OU5/U6lMofaBW6btstRXyRNVwSZawlNk4fW9UAOjvwrRTbwFioYj6/P4/TB8X um/g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=g1OkcmhU53RbhkMQs1OOfT4IMIpFMn/hvoMN7xVvdpQ=; b=Qkh1DTdporhvVNVdWacSkdfE7y9+k5jYIULfC3vliGi4zyMbPYE0oe1fCCTV+UJLL7 5tzpWDqZRScY2vwZ89o1sNpPEDFwfVyvSvpC15EkG6l+dZA+bhIfTMz3DbhqKlao9LPr JnIwJn0G0GwKlHfAPSgL8GkK/g+itX/b5/FhDbk0fF74uLuvkZui9163NA+qyrtpoIYv 1KSltebxaJW+zDDZ9LQMO/ybm0kyXE6pDhgsCStaR4CGhsann/VTC+RgRKx6WzRFYS5e 5AijHWd6LNW3dm3YhtK/L66UkY/tAN5FZKR9APWfcPp5PmnnfF4lmxfAE6TeoHRulJOn rfiA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b=tOvJ2jom; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id p63-20020a622942000000b0063b6cccb40fsi12799667pfp.188.2023.04.19.04.18.21; Wed, 19 Apr 2023 04:18:33 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b=tOvJ2jom; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232876AbjDSLLC (ORCPT + 99 others); Wed, 19 Apr 2023 07:11:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38414 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232849AbjDSLKv (ORCPT ); Wed, 19 Apr 2023 07:10:51 -0400 Received: from mail-pf1-x42f.google.com (mail-pf1-x42f.google.com [IPv6:2607:f8b0:4864:20::42f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C645513F9A for ; Wed, 19 Apr 2023 04:10:15 -0700 (PDT) Received: by mail-pf1-x42f.google.com with SMTP id d2e1a72fcca58-63b73203e0aso15252473b3a.1 for ; Wed, 19 Apr 2023 04:10:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20221208.gappssmtp.com; s=20221208; t=1681902615; x=1684494615; 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=g1OkcmhU53RbhkMQs1OOfT4IMIpFMn/hvoMN7xVvdpQ=; b=tOvJ2jomn2lCN7CzbmQxXUPM+RMt5nQnovetT4UyRyBVZdKUWLTslytcs5Fijiw4IH nco6zem+f6UyYuypUHPg1WuTBPSd2/yCDcny+7RkWgqWQf6nzPkIwbw/3Dt98SE9CPvL bDcp7NZayY/ZA69jSqsfc5HVI4qcdaRTuNSY2IFurnSljwY1lMjPIXSf+3T0aiTV0o5r 4n5tZ0OdGGQ6duEP5C7OqQB1lM5CkTP6CiCPoKhWB6nO4I8xW1GzxZZjbtm3NM74MCNo Zk0F+k0cZbSeF6eMPaV4vRVlNYRwLkB1D4SHSNlgs8uFm8QORgJqfpI2wKA4eOUjwUOU WNFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681902615; x=1684494615; 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=g1OkcmhU53RbhkMQs1OOfT4IMIpFMn/hvoMN7xVvdpQ=; b=Pp68+rhkGcHJRanQjZ+AEFxnW2pE+c/EmWL+djYIDZSy4Tbt7dFVeJoK75SNYc7O2F jdBtxZUZyDRwRcz34ioFSymcFR9rSGL++zCk8OJdstNdoxYWQugxznujr7RsrolgkvvM 3q0GWUqZEDqeM9nh9U1iK7ptZFO8djPVuVs4XCtUY3epsNTvNFYjbFChHNeRcpmqbKcA E4YUzfwZNl0oAz/chQhIfmDBpuI2UpaPtKqWGAkAcP9m/b34EY/E6hFmpRfhZWD7Dx1R CkZ/bzLhgHWVN2dX0dIDQzh6uUuQJBelOSP0s4oCIf3d9fE0DRujUPN1a+m6XECloDd4 mkSw== X-Gm-Message-State: AAQBX9cNIUpDaiYwxJl5fqgJ8AsmKkXsKigoFfMTwo11vxxnYH/OYvGE FXqWCOPX8dF/iS26RozN5rpKtQ== X-Received: by 2002:a17:903:26c9:b0:1a2:7462:d674 with SMTP id jg9-20020a17090326c900b001a27462d674mr1959521plb.24.1681902615276; Wed, 19 Apr 2023 04:10:15 -0700 (PDT) Received: from x1.hsd1.or.comcast.net ([2601:1c2:1800:f680:eaf2:1d7a:7338:16cb]) by smtp.gmail.com with ESMTPSA id g12-20020a1709026b4c00b001a24cded097sm11180774plt.236.2023.04.19.04.10.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Apr 2023 04:10:14 -0700 (PDT) From: Drew Fustini To: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Palmer Dabbelt , Paul Walmsley , Conor Dooley , Ved Shanbhogue , =?utf-8?q?Kornel_Dul=C4=99ba?= , Adrien Ricciardi , Nicolas Pitre , Fenghua Yu , Reinette Chatre , Babu Moger , Peter Newman , x86@kernel.org, Rob Herring , James Morse Cc: Drew Fustini Subject: [RFC PATCH 04/21] RISC-V: QoS: define CBQRI capacity and bandwidth capabilities Date: Wed, 19 Apr 2023 04:10:54 -0700 Message-Id: <20230419111111.477118-5-dfustini@baylibre.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230419111111.477118-1-dfustini@baylibre.com> References: <20230419111111.477118-1-dfustini@baylibre.com> MIME-Version: 1.0 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1763603239149878343?= X-GMAIL-MSGID: =?utf-8?q?1763603239149878343?= Define data structures to store the capacity and bandwidth capabilities that are discovered for a CBQRI-capable controller. Co-developed-by: Adrien Ricciardi Signed-off-by: Adrien Ricciardi Signed-off-by: Drew Fustini --- arch/riscv/kernel/qos/internal.h | 130 +++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 arch/riscv/kernel/qos/internal.h diff --git a/arch/riscv/kernel/qos/internal.h b/arch/riscv/kernel/qos/internal.h new file mode 100644 index 000000000000..e07d7f92e206 --- /dev/null +++ b/arch/riscv/kernel/qos/internal.h @@ -0,0 +1,130 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +#ifndef _ASM_RISCV_QOS_INTERNAL_H +#define _ASM_RISCV_QOS_INTERNAL_H + +#include + +#define CBQRI_CC_CAPABILITIES_OFF 0 +#define CBQRI_CC_MON_CTL_OFF 8 +#define CBQRI_CC_MON_CTL_VAL_OFF 16 +#define CBQRI_CC_ALLOC_CTL_OFF 24 +#define CBQRI_CC_BLOCK_MASK_OFF 32 + +#define CBQRI_BC_CAPABILITIES_OFF 0 +#define CBQRI_BC_MON_CTL_OFF 8 +#define CBQRI_BC_MON_CTR_VAL_OFF 16 +#define CBQRI_BC_ALLOC_CTL_OFF 24 +#define CBQRI_BC_BW_ALLOC_OFF 32 + +#define CBQRI_CC_CAPABILITIES_VER_MINOR_MASK GENMASK(3, 0) +#define CBQRI_CC_CAPABILITIES_VER_MAJOR_MASK GENMASK(7, 4) + +#define CBQRI_CC_CAPABILITIES_FRCID_MASK 0x1 +#define CBQRI_CC_CAPABILITIES_FRCID_SHIFT 24 + +#define CBQRI_CC_CAPABILITIES_NCBLKS_SHIFT 8 +#define CBQRI_CC_CAPABILITIES_NCBLKS_MASK 0xFFFF + +#define CBQRI_BC_CAPABILITIES_VER_MINOR_MASK GENMASK(3, 0) +#define CBQRI_BC_CAPABILITIES_VER_MAJOR_MASK GENMASK(7, 4) + +#define CBQRI_BC_CAPABILITIES_NBWBLKS_SHIFT 8 +#define CBQRI_BC_CAPABILITIES_NBWBLKS_MASK 0xFFFF +#define CBQRI_BC_CAPABILITIES_MRBWB_SHIFT 32 +#define CBQRI_BC_CAPABILITIES_MRBWB_MASK 0xFFFF + +#define CBQRI_CONTROL_REGISTERS_BUSY_SHIFT 39 +#define CBQRI_CONTROL_REGISTERS_BUSY_MASK 0x01 +#define CBQRI_CONTROL_REGISTERS_STATUS_SHIFT 32 +#define CBQRI_CONTROL_REGISTERS_STATUS_MASK 0x7F +#define CBQRI_CONTROL_REGISTERS_OP_SHIFT 0 +#define CBQRI_CONTROL_REGISTERS_OP_MASK 0x1F +#define CBQRI_CONTROL_REGISTERS_AT_SHIFT 5 +#define CBQRI_CONTROL_REGISTERS_AT_MASK 0x07 +#define CBQRI_CONTROL_REGISTERS_AT_DATA 0 +#define CBQRI_CONTROL_REGISTERS_AT_CODE 1 +#define CBQRI_CONTROL_REGISTERS_RCID_SHIFT 8 +#define CBQRI_CONTROL_REGISTERS_RCID_MASK 0xFFF +#define CBQRI_CONTROL_REGISTERS_RBWB_SHIFT 0 +#define CBQRI_CONTROL_REGISTERS_RBWB_MASK 0xFF + +#define CBQRI_CC_MON_CTL_OP_CONFIG_EVENT 1 +#define CBQRI_CC_MON_CTL_OP_READ_COUNTER 2 +#define CBQRI_CC_MON_CTL_STATUS_SUCCESS 1 + +#define CBQRI_CC_ALLOC_CTL_OP_CONFIG_LIMIT 1 +#define CBQRI_CC_ALLOC_CTL_OP_READ_LIMIT 2 +#define CBQRI_CC_ALLOC_CTL_OP_FLUSH_RCID 3 +#define CBQRI_CC_ALLOC_CTL_STATUS_SUCCESS 1 + +#define CBQRI_BC_MON_CTL_OP_CONFIG_EVENT 1 +#define CBQRI_BC_MON_CTL_OP_READ_COUNTER 2 +#define CBQRI_BC_MON_CTL_STATUS_SUCCESS 1 + +#define CBQRI_BC_ALLOC_CTL_OP_CONFIG_LIMIT 1 +#define CBQRI_BC_ALLOC_CTL_OP_READ_LIMIT 2 +#define CBQRI_BC_ALLOC_CTL_STATUS_SUCCESS 1 + +/* Capacity Controller hardware capabilities */ +/* from qemu/include/hw/riscv/cbqri.h */ +struct riscv_cbqri_capacity_caps { + u16 ncblks; + u16 cache_level; + u32 blk_size; + + bool supports_alloc_at_data; + bool supports_alloc_at_code; + + bool supports_alloc_op_config_limit; + bool supports_alloc_op_read_limit; + bool supports_alloc_op_flush_rcid; + + bool supports_mon_at_data; + bool supports_mon_at_code; + + bool supports_mon_op_config_event; + bool supports_mon_op_read_counter; + + bool supports_mon_evt_id_none; + bool supports_mon_evt_id_occupancy; +}; + +/* Bandwidth Controller hardware capabilities */ +/* from qemu/include/hw/riscv/cbqri.h */ +struct riscv_cbqri_bandwidth_caps { + u16 nbwblks; /* number of bandwidth block */ + u16 mrbwb; /* max reserved bw blocks */ + + bool supports_alloc_at_data; + bool supports_alloc_at_code; + + bool supports_alloc_op_config_limit; + bool supports_alloc_op_read_limit; + + bool supports_mon_at_data; + bool supports_mon_at_code; + + bool supports_mon_op_config_event; + bool supports_mon_op_read_counter; + + bool supports_mon_evt_id_none; + bool supports_mon_evt_id_rdwr_count; + bool supports_mon_evt_id_rdonly_count; + bool supports_mon_evt_id_wronly_count; +}; + +struct cbqri_controller { + struct cbqri_controller_info *ctrl_info; + void __iomem *base; + + int ver_major; + int ver_minor; + + struct riscv_cbqri_bandwidth_caps bc; + struct riscv_cbqri_capacity_caps cc; + + bool alloc_capable; + bool mon_capable; +}; + +#endif /* _ASM_RISCV_QOS_INTERNAL_H */ From patchwork Wed Apr 19 11:10:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Drew Fustini X-Patchwork-Id: 85329 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp304686vqo; Wed, 19 Apr 2023 04:19:48 -0700 (PDT) X-Google-Smtp-Source: AKy350ZozxKvH5M0oL4kf9g5LD0C/9fe7pPSytOdvxaCIqJjbDNJZie9KKYZkz6QMMC+zE2vsfD3 X-Received: by 2002:a17:90b:4f8b:b0:247:a68d:7f22 with SMTP id qe11-20020a17090b4f8b00b00247a68d7f22mr2861377pjb.4.1681903187744; Wed, 19 Apr 2023 04:19:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681903187; cv=none; d=google.com; s=arc-20160816; b=qczzkdBgduxGqKLKb7Yp0NApnzqHPI4TZqmHvwjVLyzHe2a82VK9wd5pTXMBdpsDxn F6NpTEviOwLHtVCR/qcpyAjRGywsbF9pNVByiGzWc0QpO1yuDpZy7yn+Qd33Dx0H5Rjj +lYctlIXy940v+rflKvorpP4sx6JDVLce9ynH70IprjTSQIy3yw/vu595iGWdg/ZxBIs ZdWeChjDA0siG6e8IUZJhIeU2d3YU5DJ3MB99cNvHRNUo5uxSU+ay6HCyGeBIE584dmc Fjqp6ftIM3+rRXyjM+DOqHE+7In2LIKqXjwiuD5hp9DYevnCX+TNs24eGuIP7b2hC05G Xb4g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=XmVkd/UrXriHJHxvxxsPlqAajEG3FYZbywzFeJQXIHk=; b=l7mW0ZbvmEm+aplrgDUf9C6BGDSsFmhwkWgy2nRhGVAAxJNXIflolh9ZRMZ+DZTTYS ZklWqRho6JhpUAxmw7RbBZTh3lKRjUDpNwHfjmxah9zdN8MJ+s8py42BTXkFJ46pP6zW 3SpGb7NDuXbxp/oEZIS39VEIynpA8JqVyGBHsXjrg/xWFf0qJ7J0RQlWZoP0GnEBJTLU nWceYLzpPl6zB2DB2J9z55F5zZJ9Q0Wtg1B1Yb4YDDsXos8wCq6zFX1J6EMctXBhLFEn Xsj89qJV+o10GZDJ352T+kZmBQcaMPsiAkIoSok52XZzph/R511OJDnyXe5/txEaTj/C ky7w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b=zPbQZG9U; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h9-20020a170902f54900b001a4f168718bsi12612745plf.585.2023.04.19.04.19.35; Wed, 19 Apr 2023 04:19:47 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b=zPbQZG9U; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232893AbjDSLLF (ORCPT + 99 others); Wed, 19 Apr 2023 07:11:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38440 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232867AbjDSLLB (ORCPT ); Wed, 19 Apr 2023 07:11:01 -0400 Received: from mail-pf1-x430.google.com (mail-pf1-x430.google.com [IPv6:2607:f8b0:4864:20::430]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BD2BF7A88 for ; Wed, 19 Apr 2023 04:10:20 -0700 (PDT) Received: by mail-pf1-x430.google.com with SMTP id d2e1a72fcca58-63b57c49c4cso2689620b3a.3 for ; Wed, 19 Apr 2023 04:10:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20221208.gappssmtp.com; s=20221208; t=1681902617; x=1684494617; 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=XmVkd/UrXriHJHxvxxsPlqAajEG3FYZbywzFeJQXIHk=; b=zPbQZG9UKwm7GRyIqZChI5pPpnjrvhb8Q5Cx0LVS9GCn0om8iAHe+VSMXHgYhN4iIE 8hHCqRn6dwTm2nsiT9GilKXMZ1FCN5xuGY6ikI9a3/jb7VDcGrJSy6OtfIdK3QlW6N6+ RxvuxkbB2fpmlt3qaEEq/XF6YsyaBgL3a3uLDu9C3fO+5Ry3wbbsbycb9tLDG71pLFqj 6Ph52NPqQie9WLd/4O6LUZjHBRNlMGRcO41aMzbPqSyM/UYae08hx6DIu6+5KiIvg/BL iP1p9QGFXCiDa/ohQY7K8Ow0ju7miafcpNFTqcaScbcUWUl3Y1ontHOlSlMSlZHcrBr2 V3aw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681902617; x=1684494617; 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=XmVkd/UrXriHJHxvxxsPlqAajEG3FYZbywzFeJQXIHk=; b=aWnw9Z/BjF0t7W4h75rW7ho2isMU9OcrOLddU7sJlE3zFoCoMSoAGADzTSn5zQAIfT +bRf1pHBVYPJDmDDZQH0QtqWLoc338bNtubNXFJnfSa/gYPMS+wkPT0yr2J6TlEZ2eVZ A+85gPZqW/OE7mBtAcQrcLCKhchtNB6roTkVqYj9ikxH1sF1v19e0wmjsuD79EGMm8Mi RmyG2zm8MK5KS/DWEK+oupMwBq99PN4+G3pHZyfOgopMi6DEa8OxjsKru4h4uFFDlXQs 0ODpBBTxeKgxkULBG8usK1cJmdvLW/3fVrZY3lFqR8kztJ8jX0VgHxxWoxbzXJ4B1OMb j4dw== X-Gm-Message-State: AAQBX9cBoRhdmGwUTzPfHhgdYAs6DF4OEqgyiskKNxnlCBWpn5vBvj2h mcYe6l22MRzlVl69vJV1KtXI+g== X-Received: by 2002:a17:902:c941:b0:1a6:387a:6572 with SMTP id i1-20020a170902c94100b001a6387a6572mr6089976pla.13.1681902616795; Wed, 19 Apr 2023 04:10:16 -0700 (PDT) Received: from x1.hsd1.or.comcast.net ([2601:1c2:1800:f680:eaf2:1d7a:7338:16cb]) by smtp.gmail.com with ESMTPSA id g12-20020a1709026b4c00b001a24cded097sm11180774plt.236.2023.04.19.04.10.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Apr 2023 04:10:16 -0700 (PDT) From: Drew Fustini To: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Palmer Dabbelt , Paul Walmsley , Conor Dooley , Ved Shanbhogue , =?utf-8?q?Kornel_Dul=C4=99ba?= , Adrien Ricciardi , Nicolas Pitre , Fenghua Yu , Reinette Chatre , Babu Moger , Peter Newman , x86@kernel.org, Rob Herring , James Morse Cc: Drew Fustini Subject: [RFC PATCH 05/21] RISC-V: QoS: define prototypes for resctrl interface Date: Wed, 19 Apr 2023 04:10:55 -0700 Message-Id: <20230419111111.477118-6-dfustini@baylibre.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230419111111.477118-1-dfustini@baylibre.com> References: <20230419111111.477118-1-dfustini@baylibre.com> MIME-Version: 1.0 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1763603316791040198?= X-GMAIL-MSGID: =?utf-8?q?1763603316791040198?= Define the prototypes for the resctrl interface functions that are implemented on RISC-V. Co-developed-by: Adrien Ricciardi Signed-off-by: Adrien Ricciardi Signed-off-by: Drew Fustini --- include/linux/riscv_qos.h | 58 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/include/linux/riscv_qos.h b/include/linux/riscv_qos.h index 95016810b575..537e503a8e99 100644 --- a/include/linux/riscv_qos.h +++ b/include/linux/riscv_qos.h @@ -3,6 +3,7 @@ #ifndef __LINUX_RISCV_QOS_H #define __LINUX_RISCV_QOS_H +#include #include #include @@ -31,4 +32,61 @@ struct cbqri_controller_info { extern struct list_head cbqri_controllers; +bool resctrl_arch_alloc_capable(void); +bool resctrl_arch_mon_capable(void); +bool resctrl_arch_is_llc_occupancy_enabled(void); +bool resctrl_arch_is_mbm_local_enabled(void); +bool resctrl_arch_is_mbm_total_enabled(void); + +struct rdt_resource; +/* + * Note about terminology between x86 (Intel RDT/AMD QoS) and RISC-V: + * CLOSID on x86 is RCID on RISC-V + * RMID on x86 is MCID on RISC-V + * CDP on x86 is AT (access type) on RISC-V + */ +bool resctrl_arch_get_cdp_enabled(enum resctrl_res_level ignored); +bool resctrl_arch_match_closid(struct task_struct *tsk, u32 closid); +bool resctrl_arch_match_rmid(struct task_struct *tsk, u32 closid, u32 rmid); +int resctrl_arch_mon_ctx_alloc_no_wait(struct rdt_resource *r, int evtid); +void resctrl_arch_mon_ctx_free(struct rdt_resource *r, int evtid, int ctx); +void resctrl_arch_reset_resources(void); +void resctrl_arch_rmid_idx_decode(u32 idx, u32 *closid, u32 *rmid); +u32 resctrl_arch_rmid_idx_encode(u32 closid, u32 rmid); +int resctrl_arch_set_cdp_enabled(enum resctrl_res_level ignored, bool enable); +void resctrl_arch_set_closid_rmid(struct task_struct *tsk, u32 closid, u32 rmid); +void resctrl_arch_set_cpu_default_closid(int cpu, u32 closid); +void resctrl_arch_set_cpu_default_closid_rmid(int cpu, u32 closid, u32 pmg); +u32 resctrl_arch_system_num_rmid_idx(void); +void resctrl_sched_in(void); + +static inline bool resctrl_arch_event_is_free_running(enum resctrl_event_id evt) +{ + /* must be true for resctrl L3 monitoring files to be created */ + return true; +} + +static inline unsigned int resctrl_arch_round_mon_val(unsigned int val) +{ + return val; +} + +/* Pseudo lock is not supported on RISC-V */ +static inline int resctrl_arch_pseudo_lock_fn(void *_plr) { return 0; } +static inline int resctrl_arch_measure_l2_residency(void *_plr) { return 0; } +static inline int resctrl_arch_measure_l3_residency(void *_plr) { return 0; } +static inline int resctrl_arch_measure_cycles_lat_fn(void *_plr) { return 0; } +static inline u64 resctrl_arch_get_prefetch_disable_bits(void) { return 0; } + +/* Not needed for RISC-V */ +bool resctrl_arch_match_iommu_closid(struct iommu_group *group, u32 closid); +bool resctrl_arch_match_iommu_closid_rmid(struct iommu_group *group, u32 closid, u32 rmid); +int resctrl_arch_set_iommu_closid_rmid(struct iommu_group *group, u32 closid, u32 rmid); + +/* Not needed for RISC-V */ +static inline void resctrl_arch_enable_mon(void) { } +static inline void resctrl_arch_disable_mon(void) { } +static inline void resctrl_arch_enable_alloc(void) { } +static inline void resctrl_arch_disable_alloc(void) { } + #endif /* __LINUX_RISCV_QOS_H */ From patchwork Wed Apr 19 11:10:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Drew Fustini X-Patchwork-Id: 85335 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp305327vqo; Wed, 19 Apr 2023 04:20:48 -0700 (PDT) X-Google-Smtp-Source: AKy350Yp+3Dssni2xOWNpLcUHMKSIDrb3PvqZKYOE6/ji7ymO+hthfxTtEbjdkXeZImZQAiFGhyt X-Received: by 2002:a05:6a20:12d2:b0:c6:c0c1:b1fe with SMTP id v18-20020a056a2012d200b000c6c0c1b1femr3483235pzg.57.1681903248407; Wed, 19 Apr 2023 04:20:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681903248; cv=none; d=google.com; s=arc-20160816; b=GVXcDBlLt/Mh446tVYvxu2lUF+U9vnQ1nO0U3bzSI0D0hsbPx4Cs4gB9q/NzsY1scc R7vfY3QsnAJxpl3zLwELCl/ZJXNOkbaJpZeOkUX4eKbZG5835sVthdzt9l/240cOtG4r aX0O2sztA+GNVB/oiTg48iY4Se8Hxt3xpawc2lo0r8+jdEC76ga7PYZVgf0f4cBlyvrU 0sZiCjZ6ng2Y/iugltHkL62kBX6bwzZLFfgTxlbDs+eotjoJwtrxc3YL7ZwTSQpjA6po 0rT0/Pq55/slFheApYwSoAg4U7UMD4DwWltFkOKQZHs7TilJfV1h8EpWfbcJOqlooh0a t9fw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=erF7h0FFrrflFOP1De39iTiQwqZxcNsKEc8OIQm5UJM=; b=xMvlCsMMKMccCkHPkL/X7dmELPp1KB7h3lDJhLbHOlTJ9cvcTqYogC3rTxt52pbTP/ fsF9weRDQMbckC+M3IvVV841w6iNlO5uW3S6eAyGEqJHzVOAi3ubzilY7rnwDu3ivZhS IGahAjA8IO99ZTw9zx0h5etpUK8ugSEvuo5+8jtf6Nr99fiMk9SiCvBRl3SyqCV3nB5V avn/szpKtWezAKV862z5i2tGoxXjW97xPoO9vA79bOcCTXJsKv6pA1Tda0OjLnLn+SR/ V19N8l1kogdj6K9+P2mPsw2v8SJ56/cfdxmtn6r2SK9+ZcZ/2t1xlKMrI8Fjv/Cwpx6f rFDQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b=wz3bVzEC; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f20-20020a63f114000000b0051bb433f5bbsi7418039pgi.386.2023.04.19.04.20.35; Wed, 19 Apr 2023 04:20:48 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b=wz3bVzEC; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232911AbjDSLLI (ORCPT + 99 others); Wed, 19 Apr 2023 07:11:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38346 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232879AbjDSLLC (ORCPT ); Wed, 19 Apr 2023 07:11:02 -0400 Received: from mail-pl1-x62e.google.com (mail-pl1-x62e.google.com [IPv6:2607:f8b0:4864:20::62e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 26F9913C1D for ; Wed, 19 Apr 2023 04:10:21 -0700 (PDT) Received: by mail-pl1-x62e.google.com with SMTP id d9443c01a7336-1a52667955dso35500485ad.1 for ; Wed, 19 Apr 2023 04:10:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20221208.gappssmtp.com; s=20221208; t=1681902618; x=1684494618; 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=erF7h0FFrrflFOP1De39iTiQwqZxcNsKEc8OIQm5UJM=; b=wz3bVzECh81V9P/8eSWWBlXF/ppb7Eo6YzU8zyukUtrt3VzZ0IEpHBtlfje9DVEk8A WgQ43IxHuPg5JxpS+AeX0+JDT9BXNewP9GBxLEbdYftK7bLLCUGMUBxE7QFEhweo+hXs ikPvUAgfl+FTTZIHdjmvg1mvLBoejr44HJSj8MVhg6jkkNQb0V/xq7HvECgQM+xvxg07 /rhj2VeNHkSdv02dw84Cnm0BPWlGc4/tYeOszJHSqvjMvIJoOYvVzIpUznLiSKPl9ow8 IW5VIWbPwZJgWUbhYU2YozHm+nuM/R3jyKv8aDekyuNVAe3ivBaYboWEbeNyyV528ZgP kQ1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681902618; x=1684494618; 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=erF7h0FFrrflFOP1De39iTiQwqZxcNsKEc8OIQm5UJM=; b=hEz3Xh1sAubvbIvBnJHJ2sehVaTW3JG5ykg9QGSJCAJ8vrrIpuZ1czzIfgahy42k8S Dm8MXeSSXploDw37Wc7HvfgV9Di7oPvruyP7bEIU0wlg1jR4ymuA2778hNmmBqX22Rf4 jIBYeIIDC1P+SHe+qhF5NTWa/jNE6Pv0socXyaxwhTfYVzNKAcjHf8IY1n51KCVYA/cp iRZ7QpLG349wS8ncIJ+X6oRLyst6UTCKsC6mNiyCT2XBLer/wwz7/iXiYNlLrtXMaYKH xAbSQkCO0FvAjvk8wAV2Xn/N1blK0ANjdD7jBnYpaQ04EejswALDDRFdMAgiCy4Y9OAg x1LA== X-Gm-Message-State: AAQBX9cgnGNRCO0p2LD4AvzrHGuMiwci2oy0cubkxhcUhpqbxjseRMO/ kkuB4pjA2RhWxrgoYDXbKojQKw== X-Received: by 2002:a17:903:41c2:b0:1a8:106c:4a1a with SMTP id u2-20020a17090341c200b001a8106c4a1amr3748412ple.1.1681902618470; Wed, 19 Apr 2023 04:10:18 -0700 (PDT) Received: from x1.hsd1.or.comcast.net ([2601:1c2:1800:f680:eaf2:1d7a:7338:16cb]) by smtp.gmail.com with ESMTPSA id g12-20020a1709026b4c00b001a24cded097sm11180774plt.236.2023.04.19.04.10.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Apr 2023 04:10:17 -0700 (PDT) From: Drew Fustini To: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Palmer Dabbelt , Paul Walmsley , Conor Dooley , Ved Shanbhogue , =?utf-8?q?Kornel_Dul=C4=99ba?= , Adrien Ricciardi , Nicolas Pitre , Fenghua Yu , Reinette Chatre , Babu Moger , Peter Newman , x86@kernel.org, Rob Herring , James Morse Cc: Drew Fustini Subject: [RFC PATCH 06/21] RISC-V: QoS: define CBQRI resctrl resources and domains Date: Wed, 19 Apr 2023 04:10:56 -0700 Message-Id: <20230419111111.477118-7-dfustini@baylibre.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230419111111.477118-1-dfustini@baylibre.com> References: <20230419111111.477118-1-dfustini@baylibre.com> MIME-Version: 1.0 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1763603381045035398?= X-GMAIL-MSGID: =?utf-8?q?1763603381045035398?= Define data structures to encapsulate the resctrl resource and domain structures. Co-developed-by: Adrien Ricciardi Signed-off-by: Adrien Ricciardi Signed-off-by: Drew Fustini --- arch/riscv/kernel/qos/internal.h | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/arch/riscv/kernel/qos/internal.h b/arch/riscv/kernel/qos/internal.h index e07d7f92e206..a3ed98ce5dd6 100644 --- a/arch/riscv/kernel/qos/internal.h +++ b/arch/riscv/kernel/qos/internal.h @@ -65,6 +65,11 @@ #define CBQRI_BC_ALLOC_CTL_OP_READ_LIMIT 2 #define CBQRI_BC_ALLOC_CTL_STATUS_SUCCESS 1 +int qos_resctrl_setup(void); +void qos_resctrl_exit(void); +int qos_resctrl_online_cpu(unsigned int cpu); +int qos_resctrl_offline_cpu(unsigned int cpu); + /* Capacity Controller hardware capabilities */ /* from qemu/include/hw/riscv/cbqri.h */ struct riscv_cbqri_capacity_caps { @@ -127,4 +132,26 @@ struct cbqri_controller { bool mon_capable; }; +struct cbqri_resctrl_res { + struct rdt_resource resctrl_res; + struct cbqri_controller controller; + u32 max_rcid; + u32 max_mcid; +}; + +struct cbqri_resctrl_dom { + struct rdt_domain resctrl_dom; + // NCBLKS is 16 bit which is 2^16 = 65536 + // If each bit is a block, then cc_block_mask could 1024 times 64 byte + u64 cbm; + u64 rbwb; + u64 *ctrl_val; + struct cbqri_controller *hw_ctrl; +}; + +struct cbqri_config { + u64 cbm; /* capacity block mask */ + u64 rbwb; /* reserved bandwidth blocks */ +}; + #endif /* _ASM_RISCV_QOS_INTERNAL_H */ From patchwork Wed Apr 19 11:10:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Drew Fustini X-Patchwork-Id: 85333 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp305002vqo; Wed, 19 Apr 2023 04:20:20 -0700 (PDT) X-Google-Smtp-Source: AKy350ZvyLJh0Bdl0JngFnbiqYYntHt8qgYbW4ndzpGjqtThloktDWiu20KGkrduHPrwglho5D9H X-Received: by 2002:a05:6a00:23c6:b0:62d:cfd4:e440 with SMTP id g6-20020a056a0023c600b0062dcfd4e440mr3688981pfc.8.1681903220156; Wed, 19 Apr 2023 04:20:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681903220; cv=none; d=google.com; s=arc-20160816; b=N6eDKTf6o4mPsv24rnZQGGg7RRZiubF1FM0CszxDvmoT8mNUCecmiWxIzTGiwMw40G BXHBDA776LeqqTde5f84pR3ZY4mQm7mvg5eLCBFkuSjH5Ucbp0SWojVU3BzIjjHI6NDl EkUQS8KEPTi0JAEDuRqeEe3+UWrqGv1YEiWEUD0c8+82zRHy4ir7EpQYn/892wtdxW90 gNIYUia+c0nW7xaRS7hcBt3qTUyeh6mUCLX7699dQ92+w+Ff9xyECzF541HeJTGV+Q8w McHa04r/kDTUcXNuhwVOHbzkVW0ORLeyhB5C4UaJWWKXyxZVMwzO4Hyoepe+oYOJt/lt XIVg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=wRqDYjVwLNTwFZ6eNRmIXekZ/lW+bncYt6+OIKBCY18=; b=rknVIHmMW4USDXP74ci25nwSzkhL3cf4Agj9Dbdn3zZH8Ce1s7SbwM5Y5X/OnJWoqN YvqDkBq3hiVXVaVdcHx+dfyxnAK9/iwJjdBAVu9IncLEjuWG37J9LvSheC7uBngBlp7l PxwPsTxtQ76jw1+bN/z5T3i+D9rXKqekt1ZdiOfXGEyslPd8SiQuInP0ffpDA8d2aRCK VzxKOnjLXzN7eaK4zAo+6c2B9MuwPZCUcyOxTtOxUxAEx+3zFa9YMMa+JzU6bxJut3KB CrL2KmOh7BRyNIgc/YfrWhGssjTw3BNq0GQK3m7aDmZ5u7HthARWmBmLiXXCOXs1jdfU x9yw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b=AMhaf7SU; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id w29-20020aa7955d000000b0063d33dc49e8si4437134pfq.363.2023.04.19.04.20.07; Wed, 19 Apr 2023 04:20:20 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b=AMhaf7SU; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232901AbjDSLLT (ORCPT + 99 others); Wed, 19 Apr 2023 07:11:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38442 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232897AbjDSLLG (ORCPT ); Wed, 19 Apr 2023 07:11:06 -0400 Received: from mail-pj1-x1034.google.com (mail-pj1-x1034.google.com [IPv6:2607:f8b0:4864:20::1034]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3B7AA13C02 for ; Wed, 19 Apr 2023 04:10:25 -0700 (PDT) Received: by mail-pj1-x1034.google.com with SMTP id 98e67ed59e1d1-246f856d751so2176106a91.0 for ; Wed, 19 Apr 2023 04:10:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20221208.gappssmtp.com; s=20221208; t=1681902620; x=1684494620; 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=wRqDYjVwLNTwFZ6eNRmIXekZ/lW+bncYt6+OIKBCY18=; b=AMhaf7SUiRzLmkSyVSEAP9V8LSH4NK1HWqoH4fU5X6n+5OlFnW1RMbq/UNlr9qxVDU yQHpexaxYJHaFQjbY5D7inckZTfB8fRNt1qVkHZGphd+zJ1448Lzm/JbffD84cnJS2ME 4FkcT2cxgbDMIQHPn49fMRyWYDy/HWUZMxrOGSqRHpBaD6iQlAvr9AEmB9VltUpeRv1n D6yQfDGFkXT+DLBtQ3/CxjB8W+soWe3eEYzejQ5e7WsEizDZhClU3bbldHULe+fQ8fPR 13ZOvzMhL9UyP6+GxT/KWMysBoUI56YnqdvBJ1/RLmAGpn/d1449aoQvH8GkY4nVhxgW 4mgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681902620; x=1684494620; 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=wRqDYjVwLNTwFZ6eNRmIXekZ/lW+bncYt6+OIKBCY18=; b=bhEKksRvBOq/6JBxXBgPMu1XR9mdUUCmaWwob7RJVN4kbBGi4Cg5dXxckpm+s9UgTn 9OU46Qp37G5s1VoarYnYsItJub7CAyeoc/jJHxaM9saDtBjKD/u42+38JRfxebIDZii1 SlDX0cWhVZqVQql1ZePmQAQhcepOcjswqpmVDET/JH2nZCOTylAvwIRh5pcYDc0HoD9q OlLzrso7PVckcYRx0frOs0omRcaAU8YZ5VGMQ3uQmOPSz6fjIGlwSP7J2NwVcoziSDmV wKr/cXYkihmACTzNCCZSCQaIcpficc5oNdvRWQJGlpZci3pmNMWMt+dPiPocTygMEAj1 BBog== X-Gm-Message-State: AAQBX9cHnOkEpITu14F9lRmoqhL92oPHeRO+dxw39wEf4CyxBDLHdvWQ MNRdUbkq1JNsJ25/Sj1eFQkb6Q== X-Received: by 2002:a17:90a:ee86:b0:249:8963:c6b with SMTP id i6-20020a17090aee8600b0024989630c6bmr1471908pjz.18.1681902619937; Wed, 19 Apr 2023 04:10:19 -0700 (PDT) Received: from x1.hsd1.or.comcast.net ([2601:1c2:1800:f680:eaf2:1d7a:7338:16cb]) by smtp.gmail.com with ESMTPSA id g12-20020a1709026b4c00b001a24cded097sm11180774plt.236.2023.04.19.04.10.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Apr 2023 04:10:19 -0700 (PDT) From: Drew Fustini To: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Palmer Dabbelt , Paul Walmsley , Conor Dooley , Ved Shanbhogue , =?utf-8?q?Kornel_Dul=C4=99ba?= , Adrien Ricciardi , Nicolas Pitre , Fenghua Yu , Reinette Chatre , Babu Moger , Peter Newman , x86@kernel.org, Rob Herring , James Morse Cc: Drew Fustini Subject: [RFC PATCH 07/21] RISC-V: QoS: add resctrl interface for CBQRI controllers Date: Wed, 19 Apr 2023 04:10:57 -0700 Message-Id: <20230419111111.477118-8-dfustini@baylibre.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230419111111.477118-1-dfustini@baylibre.com> References: <20230419111111.477118-1-dfustini@baylibre.com> MIME-Version: 1.0 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1763603350993552264?= X-GMAIL-MSGID: =?utf-8?q?1763603350993552264?= Add interface for CBQRI controller drivers to make use of the resctrl filesystem. Co-developed-by: Adrien Ricciardi Signed-off-by: Adrien Ricciardi Signed-off-by: Drew Fustini --- arch/riscv/kernel/qos/qos_resctrl.c | 1231 +++++++++++++++++++++++++++ 1 file changed, 1231 insertions(+) create mode 100644 arch/riscv/kernel/qos/qos_resctrl.c diff --git a/arch/riscv/kernel/qos/qos_resctrl.c b/arch/riscv/kernel/qos/qos_resctrl.c new file mode 100644 index 000000000000..f4116d9a9f04 --- /dev/null +++ b/arch/riscv/kernel/qos/qos_resctrl.c @@ -0,0 +1,1231 @@ +// SPDX-License-Identifier: GPL-2.0-only +// Copyright (C) 2023 Rivos Inc. + +#define pr_fmt(fmt) "qos: resctrl: " fmt + +#include +#include +#include +#include +#include +#include +#include +#include "internal.h" + +#define MAX_CONTROLLERS 6 +static struct cbqri_resctrl_res cbqri_resctrl_resources[RDT_NUM_RESOURCES]; +/* + * The size of the controllers array reflects that number of CBQRI controllers + * (3x capacity, 3x bandwidth) in the hypothetical SoC that Qemu implements for + * the CBQRI proof-of-concept. + * + * The proper solution will involve dynamically allocating cbqri_controller + * structures and adding them to a list of controllers. This avoids having to + * make assumptions about the system. + */ +static struct cbqri_controller controllers[MAX_CONTROLLERS]; +static int found_controllers; + +static bool exposed_alloc_capable; +static bool exposed_mon_capable; +/* CDP (code data prioritization) on x86 is AT (access type) on RISC-V */ +static bool exposed_cdp_l2_capable; +static bool exposed_cdp_l3_capable; +static bool is_cdp_l2_enabled; +static bool is_cdp_l3_enabled; + +/* used by resctrl_arch_system_num_rmid_idx() */ +static u32 max_rmid; + +LIST_HEAD(cbqri_controllers); + +static int qos_wait_busy_flag(struct cbqri_controller *ctrl, int reg_offset); + +bool resctrl_arch_alloc_capable(void) +{ + return exposed_alloc_capable; +} + +bool resctrl_arch_mon_capable(void) +{ + return exposed_mon_capable; +} + +bool resctrl_arch_is_mbm_local_enabled(void) +{ + /* + * Seems to be the bandwidth between a L2 cache and L3 cache + * according to Intel resctrl implementation. There is no meaning + * in supporting such stat when we use resctrl MON_DATA feature + * to support CBQRI bandwidth monitoring. + */ + return false; +} + +bool resctrl_arch_is_mbm_total_enabled(void) +{ + return true; +} + +bool resctrl_arch_get_cdp_enabled(enum resctrl_res_level rid) +{ + switch (rid) { + case RDT_RESOURCE_L2: + return is_cdp_l2_enabled; + + case RDT_RESOURCE_L3: + return is_cdp_l3_enabled; + + default: + return false; + } +} + +int resctrl_arch_set_cdp_enabled(enum resctrl_res_level rid, bool enable) +{ + switch (rid) { + case RDT_RESOURCE_L2: + if (!exposed_cdp_l2_capable) + return -ENODEV; + is_cdp_l2_enabled = enable; + break; + + case RDT_RESOURCE_L3: + if (!exposed_cdp_l3_capable) + return -ENODEV; + is_cdp_l3_enabled = enable; + break; + + default: + return -ENODEV; + } + + return 0; +} + +bool resctrl_arch_is_llc_occupancy_enabled(void) +{ + /* + * There is no occupancy in CBQRI bandwidth controller (resctrl MON_DATA + * was the only available way to implement RISC-V memory monitoring). + * As we need occupancy for CBQRI capacity controller, this global + * setting is true, but the ll_occupancy files of CBQRI bandwidth + * controllers will return an error. + */ + return true; +} + +/* + * Note about terminology between x86 (Intel RDT/AMD QoS) and RISC-V: + * CLOSID on x86 is RCID on RISC-V + * RMID on x86 is MCID on RISC-V + */ +u32 resctrl_arch_get_num_closid(struct rdt_resource *res) +{ + struct cbqri_resctrl_res *hw_res; + + hw_res = container_of(res, struct cbqri_resctrl_res, resctrl_res); + + return hw_res->max_rcid; +} + +u32 resctrl_arch_system_num_rmid_idx(void) +{ + return max_rmid; +} + +u32 resctrl_arch_rmid_idx_encode(u32 closid, u32 rmid) +{ + return rmid; +} + +void resctrl_arch_rmid_idx_decode(u32 idx, u32 *closid, u32 *rmid) +{ + *closid = ((u32)~0); /* refer to X86_RESCTRL_BAD_CLOSID */ + *rmid = idx; +} + +/* RISC-V resctrl interface does not maintain a default sqoscfg value for a given CPU */ +void resctrl_arch_set_cpu_default_closid_rmid(int cpu, u32 closid, u32 rmid) { } + +void resctrl_sched_in(void) +{ + qos_sched_in(current); +} + +void resctrl_arch_sync_cpu_defaults(void *info) +{ + resctrl_sched_in(); +} + +void resctrl_arch_set_closid_rmid(struct task_struct *tsk, u32 closid, u32 rmid) +{ + u32 sqoscfg; + + WARN_ON_ONCE((closid & SQOSCFG_RCID_MASK) != closid); + WARN_ON_ONCE((rmid & SQOSCFG_MCID_MASK) != rmid); + + sqoscfg = rmid << SQOSCFG_MCID_SHIFT; + sqoscfg |= closid; + WRITE_ONCE(tsk->thread.sqoscfg, sqoscfg); +} + +bool resctrl_arch_match_closid(struct task_struct *tsk, u32 closid) +{ + u32 sqoscfg; + bool match; + + sqoscfg = READ_ONCE(tsk->thread.sqoscfg); + match = (sqoscfg & SQOSCFG_RCID_MASK) == closid; + return match; +} + +bool resctrl_arch_match_rmid(struct task_struct *tsk, u32 closid, u32 rmid) +{ + u32 tsk_rmid; + + tsk_rmid = READ_ONCE(tsk->thread.sqoscfg); + tsk_rmid >>= SQOSCFG_MCID_SHIFT; + tsk_rmid &= SQOSCFG_MCID_MASK; + + return tsk_rmid == rmid; +} + +struct rdt_resource *resctrl_arch_get_resource(enum resctrl_res_level l) +{ + if (l >= RDT_NUM_RESOURCES) + return NULL; + + return &cbqri_resctrl_resources[l].resctrl_res; +} + +struct rdt_domain *resctrl_arch_find_domain(struct rdt_resource *r, int id) +{ + struct rdt_domain *domain; + struct list_head *l; + + list_for_each(l, &r->domains) { + domain = list_entry(l, struct rdt_domain, list); + if (id == domain->id) + return domain; + } + + return NULL; +} + +void resctrl_arch_reset_resources(void) +{ + /* not implemented for the RISC-V resctrl implementation */ +} + +int resctrl_arch_mon_ctx_alloc_no_wait(struct rdt_resource *r, int evtid) +{ + /* RISC-V can always read an rmid, nothing needs allocating */ + return 0; +} + +void resctrl_arch_mon_ctx_free(struct rdt_resource *r, int evtid, int ctx) +{ + /* not implemented for the RISC-V resctrl interface */ +} + +bool resctrl_arch_is_evt_configurable(enum resctrl_event_id evt) +{ + return false; +} + +int resctrl_arch_rmid_read(struct rdt_resource *r, struct rdt_domain *d, + u32 closid, u32 rmid, enum resctrl_event_id eventid, + u64 *val, int arch_mon_ctx) +{ + /* + * The current Qemu implementation of CBQRI capacity and bandwidth + * controllers do not emulate the utilization of resources over + * time. Therefore, Qemu currently sets the invalid bit in + * cc_mon_ctr_val and bc_mon_ctr_val, and there is no meaningful + * value other than 0 to return for reading an RMID (e.g. MCID in + * CBQRI terminology) + */ + + return 0; +} + +void resctrl_arch_reset_rmid(struct rdt_resource *r, struct rdt_domain *d, + u32 closid, u32 rmid, enum resctrl_event_id eventid) +{ + /* not implemented for the RISC-V resctrl interface */ +} + +void resctrl_arch_mon_event_config_read(void *info) +{ + /* not implemented for the RISC-V resctrl interface */ +} + +void resctrl_arch_mon_event_config_write(void *info) +{ + /* not implemented for the RISC-V resctrl interface */ +} + +void resctrl_arch_reset_rmid_all(struct rdt_resource *r, struct rdt_domain *d) +{ + /* not implemented for the RISC-V resctrl implementation */ +} + +/* Set capacity block mask (cc_block_mask) */ +static void cbqri_set_cbm(struct cbqri_controller *ctrl, u64 cbm) +{ + int reg_offset; + u64 reg; + + reg_offset = CBQRI_CC_BLOCK_MASK_OFF; + reg = ioread64(ctrl->base + reg_offset); + + reg = cbm; + iowrite64(reg, ctrl->base + reg_offset); + + reg = ioread64(ctrl->base + reg_offset); +} + +/* Set the Rbwb (reserved bandwidth blocks) field in bc_bw_alloc */ +static void cbqri_set_rbwb(struct cbqri_controller *ctrl, u64 rbwb) +{ + int reg_offset; + u64 reg; + + reg_offset = CBQRI_BC_BW_ALLOC_OFF; + reg = ioread64(ctrl->base + reg_offset); + reg |= rbwb & CBQRI_CONTROL_REGISTERS_RBWB_MASK; + iowrite64(reg, ctrl->base + reg_offset); +} + +/* Get the Rbwb (reserved bandwidth blocks) field in bc_bw_alloc */ +static u64 cbqri_get_rbwb(struct cbqri_controller *ctrl) +{ + int reg_offset; + u64 reg; + + reg_offset = CBQRI_BC_BW_ALLOC_OFF; + reg = ioread64(ctrl->base + reg_offset); + reg &= CBQRI_CONTROL_REGISTERS_RBWB_MASK; + + return reg; +} + +static int qos_wait_busy_flag(struct cbqri_controller *ctrl, int reg_offset) +{ + unsigned long timeout = jiffies + (HZ / 10); /* Timeout after 100ms */ + u64 reg; + int busy; + + while (time_before(jiffies, timeout)) { + reg = ioread64(ctrl->base + reg_offset); + busy = (reg >> CBQRI_CONTROL_REGISTERS_BUSY_SHIFT) & + CBQRI_CONTROL_REGISTERS_BUSY_MASK; + if (!busy) + return 0; + } + + pr_warn("%s(): busy timeout", __func__); + return -EIO; +} + +/* Perform operation on capacity controller */ +static int do_capacity_alloc_op(struct cbqri_controller *ctrl, int operation, + enum resctrl_conf_type type, int rcid) +{ + int reg_offset = CBQRI_CC_ALLOC_CTL_OFF; + int status; + u64 reg; + + reg = ioread64(ctrl->base + reg_offset); + reg &= ~(CBQRI_CONTROL_REGISTERS_OP_MASK << CBQRI_CONTROL_REGISTERS_OP_SHIFT); + reg |= (operation & CBQRI_CONTROL_REGISTERS_OP_MASK) << + CBQRI_CONTROL_REGISTERS_OP_SHIFT; + reg &= ~(CBQRI_CONTROL_REGISTERS_RCID_MASK << + CBQRI_CONTROL_REGISTERS_RCID_SHIFT); + reg |= (rcid & CBQRI_CONTROL_REGISTERS_RCID_MASK) << + CBQRI_CONTROL_REGISTERS_RCID_SHIFT; + + /* CBQRI capacity AT is only supported on caches for now */ + if (ctrl->ctrl_info->type == CBQRI_CONTROLLER_TYPE_CAPACITY && + ((ctrl->ctrl_info->cache.cache_level == 2 && is_cdp_l2_enabled) || + (ctrl->ctrl_info->cache.cache_level == 3 && is_cdp_l3_enabled))) { + reg &= ~(CBQRI_CONTROL_REGISTERS_AT_MASK << + CBQRI_CONTROL_REGISTERS_AT_SHIFT); + switch (type) { + case CDP_CODE: + reg |= (CBQRI_CONTROL_REGISTERS_AT_CODE & + CBQRI_CONTROL_REGISTERS_AT_MASK) << + CBQRI_CONTROL_REGISTERS_AT_SHIFT; + break; + case CDP_DATA: + default: + reg |= (CBQRI_CONTROL_REGISTERS_AT_DATA & + CBQRI_CONTROL_REGISTERS_AT_MASK) << + CBQRI_CONTROL_REGISTERS_AT_SHIFT; + break; + } + } + + iowrite64(reg, ctrl->base + reg_offset); + + if (qos_wait_busy_flag(ctrl, reg_offset) < 0) { + pr_err("%s(): BUSY timeout when executing the operation", __func__); + return -EIO; + } + + reg = ioread64(ctrl->base + reg_offset); + status = (reg >> CBQRI_CONTROL_REGISTERS_STATUS_SHIFT) & + CBQRI_CONTROL_REGISTERS_STATUS_MASK; + if (status != 1) { + pr_err("%s(): operation %d failed: status=%d", __func__, operation, status); + return -EIO; + } + + return 0; +} + +/* Perform operation on bandwidth controller */ +static int do_bandwidth_alloc_op(struct cbqri_controller *ctrl, int operation, int rcid) +{ + int reg_offset = CBQRI_BC_ALLOC_CTL_OFF; + int status; + u64 reg; + + reg = ioread64(ctrl->base + reg_offset); + reg &= ~(CBQRI_CONTROL_REGISTERS_OP_MASK << CBQRI_CONTROL_REGISTERS_OP_SHIFT); + reg |= (operation & CBQRI_CONTROL_REGISTERS_OP_MASK) << + CBQRI_CONTROL_REGISTERS_OP_SHIFT; + reg &= ~(CBQRI_CONTROL_REGISTERS_RCID_MASK << CBQRI_CONTROL_REGISTERS_RCID_SHIFT); + reg |= (rcid & CBQRI_CONTROL_REGISTERS_RCID_MASK) << + CBQRI_CONTROL_REGISTERS_RCID_SHIFT; + iowrite64(reg, ctrl->base + reg_offset); + + if (qos_wait_busy_flag(ctrl, reg_offset) < 0) { + pr_err("%s(): BUSY timeout when executing the operation", __func__); + return -EIO; + } + + reg = ioread64(ctrl->base + reg_offset); + status = (reg >> CBQRI_CONTROL_REGISTERS_STATUS_SHIFT) & + CBQRI_CONTROL_REGISTERS_STATUS_MASK; + if (status != 1) { + pr_err("%s(): operation %d failed with status = %d", + __func__, operation, status); + return -EIO; + } + + return 0; +} + +static int cbqri_apply_bw_config(struct cbqri_resctrl_dom *hw_dom, u32 closid, + enum resctrl_conf_type type, struct cbqri_config *cfg) +{ + struct cbqri_controller *ctrl = hw_dom->hw_ctrl; + int ret = 0; + u64 rbwb; + + if (cfg->cbm != hw_dom->ctrl_val[closid]) { + /* Store the new rbwb in the ctrl_val array for this closid in this domain */ + hw_dom->ctrl_val[closid] = cfg->rbwb; + + /* set reserved bandwidth blocks */ + cbqri_set_rbwb(ctrl, cfg->rbwb); + /* get reserved bandwidth blocks */ + rbwb = cbqri_get_rbwb(ctrl); + + /* Capacity config limit operation for RCID (closid) */ + ret = do_capacity_alloc_op(ctrl, CBQRI_CC_ALLOC_CTL_OP_CONFIG_LIMIT, type, closid); + if (ret < 0) { + pr_err("%s(): operation failed: ret = %d", __func__, ret); + return ret; + } + + /* Clear rbwb before read limit to verify op works*/ + cbqri_set_rbwb(ctrl, 0); + + /* Bandwidth allocation read limit operation for RCID (closid) to verify */ + ret = do_capacity_alloc_op(ctrl, CBQRI_CC_ALLOC_CTL_OP_READ_LIMIT, type, closid); + if (ret < 0) { + pr_err("%s(): operation failed: ret = %d", __func__, ret); + return ret; + } + + /* Read capacity block mask for RCID (closid) to verify */ + rbwb = cbqri_get_rbwb(ctrl); + } + + return ret; +} + +static int cbqri_apply_cache_config(struct cbqri_resctrl_dom *hw_dom, u32 closid, + enum resctrl_conf_type type, struct cbqri_config *cfg) +{ + struct cbqri_controller *ctrl = hw_dom->hw_ctrl; + int reg_offset, err = 0; + u64 reg; + + if (cfg->cbm != hw_dom->ctrl_val[closid]) { + /* store the new cbm in the ctrl_val array for this closid in this domain */ + hw_dom->ctrl_val[closid] = cfg->cbm; + + /* set capacity block mask (cc_block_mask) */ + cbqri_set_cbm(ctrl, cfg->cbm); + + /* Capacity config limit operation for RCID (closid) */ + err = do_capacity_alloc_op(ctrl, CBQRI_CC_ALLOC_CTL_OP_CONFIG_LIMIT, type, closid); + if (err < 0) { + pr_err("%s(): operation failed: err = %d", __func__, err); + return err; + } + + /* clear cc_block_mask before read limit to verify op works*/ + cbqri_set_cbm(ctrl, 0); + + /* Capacity read limit operation for RCID (closid) to verify */ + err = do_capacity_alloc_op(ctrl, CBQRI_CC_ALLOC_CTL_OP_READ_LIMIT, type, closid); + if (err < 0) { + pr_err("%s(): operation failed: err = %d", __func__, err); + return err; + } + + /* Read capacity block mask for RCID (closid) to verify */ + reg_offset = CBQRI_CC_BLOCK_MASK_OFF; + reg = ioread64(ctrl->base + reg_offset); + } + + return err; +} + +int resctrl_arch_update_one(struct rdt_resource *r, struct rdt_domain *d, + u32 closid, enum resctrl_conf_type t, u32 cfg_val) +{ + struct cbqri_resctrl_res *res; + struct cbqri_resctrl_dom *dom; + struct cbqri_config cfg; + int err = 0; + + res = container_of(r, struct cbqri_resctrl_res, resctrl_res); + dom = container_of(d, struct cbqri_resctrl_dom, resctrl_dom); + + if (!r->alloc_capable) + return -EINVAL; + + switch (r->rid) { + case RDT_RESOURCE_L2: + case RDT_RESOURCE_L3: + cfg.cbm = cfg_val; + err = cbqri_apply_cache_config(dom, closid, t, &cfg); + break; + case RDT_RESOURCE_MBA: + cfg.rbwb = cfg_val; + err = cbqri_apply_bw_config(dom, closid, t, &cfg); + break; + default: + return -EINVAL; + } + + return err; +} + +int resctrl_arch_update_domains(struct rdt_resource *r, u32 closid) +{ + struct resctrl_staged_config *cfg; + enum resctrl_conf_type t; + struct rdt_domain *d; + int err = 0; + + list_for_each_entry(d, &r->domains, list) { + for (t = 0; t < CDP_NUM_TYPES; t++) { + cfg = &d->staged_config[t]; + if (!cfg->have_new_ctrl) + continue; + err = resctrl_arch_update_one(r, d, closid, t, cfg->new_ctrl); + if (err) { + pr_debug("%s(): return err=%d", __func__, err); + return err; + } + } + } + return err; +} + +u32 resctrl_arch_get_config(struct rdt_resource *r, struct rdt_domain *d, + u32 closid, enum resctrl_conf_type type) +{ + struct cbqri_resctrl_res *hw_res; + struct cbqri_resctrl_dom *hw_dom; + struct cbqri_controller *ctrl; + int reg_offset; + int err; + u64 reg; + + hw_res = container_of(r, struct cbqri_resctrl_res, resctrl_res); + hw_dom = container_of(d, struct cbqri_resctrl_dom, resctrl_dom); + + ctrl = hw_dom->hw_ctrl; + + if (!r->alloc_capable) + return -EINVAL; + + switch (r->rid) { + case RDT_RESOURCE_L2: + case RDT_RESOURCE_L3: + + /* Clear cc_block_mask before read limit operation */ + cbqri_set_cbm(ctrl, 0); + + /* Capacity read limit operation for RCID (closid) */ + err = do_capacity_alloc_op(ctrl, CBQRI_CC_ALLOC_CTL_OP_READ_LIMIT, type, closid); + if (err < 0) { + pr_err("%s(): operation failed: err = %d", __func__, err); + return -EIO; + } + + /* Read capacity block mask for RCID (closid) */ + reg_offset = CBQRI_CC_BLOCK_MASK_OFF; + reg = ioread64(ctrl->base + reg_offset); + + /* Update the config value for the closid in this domain */ + hw_dom->ctrl_val[closid] = reg; + + return hw_dom->ctrl_val[closid]; + + case RDT_RESOURCE_MBA: + + /* Capacity read limit operation for RCID (closid) */ + err = do_bandwidth_alloc_op(ctrl, CBQRI_CC_ALLOC_CTL_OP_READ_LIMIT, closid); + if (err < 0) { + pr_err("%s(): operation failed: err = %d", __func__, err); + return -EIO; + } + + hw_dom->ctrl_val[closid] = cbqri_get_rbwb(ctrl); + + return hw_dom->ctrl_val[closid]; + + default: + return -EINVAL; + } +} + +static int qos_discover_controller_feature(struct cbqri_controller *ctrl, + int reg_offset, + int operation, + int *status, + bool *access_type_supported) +{ + u64 reg, saved_reg; + int at; + + /* Keep the initial register value to preserve the WPRI fields */ + reg = ioread64(ctrl->base + reg_offset); + saved_reg = reg; + + /* Execute the requested operation to find if the register is implemented */ + reg &= ~(CBQRI_CONTROL_REGISTERS_OP_MASK << CBQRI_CONTROL_REGISTERS_OP_SHIFT); + reg |= (operation & CBQRI_CONTROL_REGISTERS_OP_MASK) << CBQRI_CONTROL_REGISTERS_OP_SHIFT; + iowrite64(reg, ctrl->base + reg_offset); + if (qos_wait_busy_flag(ctrl, reg_offset) < 0) { + pr_err("%s(): BUSY timeout when executing the operation", __func__); + return -EIO; + } + + /* Get the operation status */ + reg = ioread64(ctrl->base + reg_offset); + *status = (reg >> CBQRI_CONTROL_REGISTERS_STATUS_SHIFT) & + CBQRI_CONTROL_REGISTERS_STATUS_MASK; + + /* + * Check for the AT support if the register is implemented + * (if not, the status value will remain 0) + */ + if (*status != 0) { + /* Set the AT field to a valid value */ + reg = saved_reg; + reg &= ~(CBQRI_CONTROL_REGISTERS_AT_MASK << CBQRI_CONTROL_REGISTERS_AT_SHIFT); + reg |= CBQRI_CONTROL_REGISTERS_AT_CODE << CBQRI_CONTROL_REGISTERS_AT_SHIFT; + iowrite64(reg, ctrl->base + reg_offset); + if (qos_wait_busy_flag(ctrl, reg_offset) < 0) { + pr_err("%s(): BUSY timeout when setting AT field", __func__); + return -EIO; + } + + /* + * If the AT field value has been reset to zero, + * then the AT support is not present + */ + reg = ioread64(ctrl->base + reg_offset); + at = (reg >> CBQRI_CONTROL_REGISTERS_AT_SHIFT) & CBQRI_CONTROL_REGISTERS_AT_MASK; + if (at == CBQRI_CONTROL_REGISTERS_AT_CODE) + *access_type_supported = true; + else + *access_type_supported = false; + } + + /* Restore the original register value */ + iowrite64(saved_reg, ctrl->base + reg_offset); + if (qos_wait_busy_flag(ctrl, reg_offset) < 0) { + pr_err("%s(): BUSY timeout when restoring the original register value", __func__); + return -EIO; + } + + return 0; +} + +/* + * Note: for the purposes of the CBQRI proof-of-concept, debug logging + * has been left in this function that discovers the properties of CBQRI + * capable controllers in the system. pr_debug calls would be removed + * before submitting non-RFC patches. + */ +static int qos_resctrl_discover_controller(struct cbqri_controller_info *ctrl_info, + struct cbqri_controller *ctrl) +{ + int err = 0, status; + u64 reg; + + pr_debug("controller info: type=%d addr=0x%lx size=%lu max-rcid=%u max-mcid=%u", + ctrl_info->type, ctrl_info->addr, ctrl_info->size, + ctrl_info->rcid_count, ctrl_info->mcid_count); + + /* max_rmid is used by resctrl_arch_system_num_rmid_idx() */ + max_rmid = ctrl_info->mcid_count; + + ctrl->ctrl_info = ctrl_info; + + /* Try to access the memory-mapped CBQRI registers */ + if (!request_mem_region(ctrl_info->addr, ctrl_info->size, "cbqri_controller")) { + pr_debug("%s(): return %d", __func__, err); + return err; + } + ctrl->base = ioremap(ctrl_info->addr, ctrl_info->size); + if (!ctrl->base) { + pr_debug("%s(): goto err_release_mem_region", __func__); + goto err_release_mem_region; + } + + ctrl->alloc_capable = false; + ctrl->mon_capable = false; + + /* Discover capacity allocation and monitoring features */ + if (ctrl_info->type == CBQRI_CONTROLLER_TYPE_CAPACITY) { + pr_debug("probe capacity controller"); + + /* Make sure the register is implemented */ + reg = ioread64(ctrl->base + CBQRI_CC_CAPABILITIES_OFF); + if (reg == 0) { + err = -ENODEV; + goto err_iounmap; + } + + ctrl->ver_minor = reg & CBQRI_CC_CAPABILITIES_VER_MINOR_MASK; + ctrl->ver_major = reg & CBQRI_CC_CAPABILITIES_VER_MAJOR_MASK; + + ctrl->cc.supports_alloc_op_flush_rcid = (reg >> CBQRI_CC_CAPABILITIES_FRCID_SHIFT) + & CBQRI_CC_CAPABILITIES_FRCID_MASK; + + ctrl->cc.ncblks = (reg >> CBQRI_CC_CAPABILITIES_NCBLKS_SHIFT) & + CBQRI_CC_CAPABILITIES_NCBLKS_MASK; + + /* Calculate size of capacity block in bytes */ + ctrl->cc.blk_size = ctrl_info->cache.cache_size / ctrl->cc.ncblks; + ctrl->cc.cache_level = ctrl_info->cache.cache_level; + + pr_debug("version=%d.%d ncblks=%d blk_size=%d cache_level=%d", + ctrl->ver_major, ctrl->ver_minor, + ctrl->cc.ncblks, ctrl->cc.blk_size, ctrl->cc.cache_level); + + /* Discover monitoring features */ + err = qos_discover_controller_feature(ctrl, CBQRI_CC_MON_CTL_OFF, + CBQRI_CC_MON_CTL_OP_READ_COUNTER, + &status, &ctrl->cc.supports_mon_at_code); + if (err) { + pr_err("%s() failed to discover cc_mon_ctl feature", __func__); + goto err_iounmap; + } + + if (status == CBQRI_CC_MON_CTL_STATUS_SUCCESS) { + pr_debug("cc_mon_ctl is supported"); + ctrl->cc.supports_mon_op_config_event = true; + ctrl->cc.supports_mon_op_read_counter = true; + ctrl->mon_capable = true; + } else { + pr_debug("cc_mon_ctl is NOT supported"); + ctrl->cc.supports_mon_op_config_event = false; + ctrl->cc.supports_mon_op_read_counter = false; + ctrl->mon_capable = false; + } + /* + * AT data is "always" supported as it has the same value + * than when AT field is not supported. + */ + ctrl->cc.supports_mon_at_data = true; + pr_debug("supports_mon_at_data: %d, supports_mon_at_code: %d", + ctrl->cc.supports_mon_at_data, ctrl->cc.supports_mon_at_code); + + /* Discover allocation features */ + err = qos_discover_controller_feature(ctrl, CBQRI_CC_ALLOC_CTL_OFF, + CBQRI_CC_ALLOC_CTL_OP_READ_LIMIT, + &status, &ctrl->cc.supports_alloc_at_code); + if (err) { + pr_err("%s() failed to discover cc_alloc_ctl feature", __func__); + goto err_iounmap; + } + + if (status == CBQRI_CC_ALLOC_CTL_STATUS_SUCCESS) { + pr_debug("cc_alloc_ctl is supported"); + ctrl->cc.supports_alloc_op_config_limit = true; + ctrl->cc.supports_alloc_op_read_limit = true; + ctrl->alloc_capable = true; + exposed_alloc_capable = true; + } else { + pr_debug("cc_alloc_ctl is NOT supported"); + ctrl->cc.supports_alloc_op_config_limit = false; + ctrl->cc.supports_alloc_op_read_limit = false; + ctrl->alloc_capable = false; + } + /* + * AT data is "always" supported as it has the same value + * than when AT field is not supported + */ + ctrl->cc.supports_alloc_at_data = true; + pr_debug("supports_alloc_at_data: %d, supports_alloc_at_code: %d", + ctrl->cc.supports_alloc_at_data, + ctrl->cc.supports_alloc_at_code); + } else if (ctrl_info->type == CBQRI_CONTROLLER_TYPE_BANDWIDTH) { + pr_debug("probe bandwidth controller"); + + /* Make sure the register is implemented */ + reg = ioread64(ctrl->base + CBQRI_BC_CAPABILITIES_OFF); + if (reg == 0) { + err = -ENODEV; + goto err_iounmap; + } + + ctrl->ver_minor = reg & CBQRI_BC_CAPABILITIES_VER_MINOR_MASK; + ctrl->ver_major = reg & CBQRI_BC_CAPABILITIES_VER_MAJOR_MASK; + + ctrl->bc.nbwblks = (reg >> CBQRI_BC_CAPABILITIES_NBWBLKS_SHIFT) & + CBQRI_BC_CAPABILITIES_NBWBLKS_MASK; + ctrl->bc.mrbwb = (reg >> CBQRI_BC_CAPABILITIES_MRBWB_SHIFT) & + CBQRI_BC_CAPABILITIES_MRBWB_MASK; + + pr_debug("version=%d.%d nbwblks=%d mrbwb=%d", + ctrl->ver_major, ctrl->ver_minor, + ctrl->bc.nbwblks, ctrl->bc.mrbwb); + + // Discover monitoring features + err = qos_discover_controller_feature(ctrl, CBQRI_BC_MON_CTL_OFF, + CBQRI_BC_MON_CTL_OP_READ_COUNTER, + &status, &ctrl->bc.supports_mon_at_code); + if (err) { + pr_err("%s() failed to discover bc_mon_ctl feature", __func__); + goto err_iounmap; + } + + if (status == CBQRI_BC_MON_CTL_STATUS_SUCCESS) { + pr_debug("bc_mon_ctl is supported"); + ctrl->bc.supports_mon_op_config_event = true; + ctrl->bc.supports_mon_op_read_counter = true; + ctrl->mon_capable = true; + exposed_mon_capable = true; + } else { + pr_debug("bc_mon_ctl is NOT supported"); + ctrl->bc.supports_mon_op_config_event = false; + ctrl->bc.supports_mon_op_read_counter = false; + ctrl->mon_capable = false; + } + // AT data is "always" supported as it has the same value + // than when AT field is not supported + ctrl->bc.supports_mon_at_data = true; + pr_debug("supports_mon_at_data: %d, supports_mon_at_code: %d", + ctrl->bc.supports_mon_at_data, ctrl->bc.supports_mon_at_code); + + // Discover allocation features + err = qos_discover_controller_feature(ctrl, CBQRI_BC_ALLOC_CTL_OFF, + CBQRI_BC_ALLOC_CTL_OP_READ_LIMIT, + &status, &ctrl->bc.supports_alloc_at_code); + if (err) { + pr_err("%s() failed to discover bc_alloc_ctl feature", __func__); + goto err_iounmap; + } + + if (status == CBQRI_BC_ALLOC_CTL_STATUS_SUCCESS) { + pr_debug("bc_alloc_ctl is supported"); + ctrl->bc.supports_alloc_op_config_limit = true; + ctrl->bc.supports_alloc_op_read_limit = true; + ctrl->alloc_capable = true; + exposed_alloc_capable = true; + } else { + pr_debug("bc_alloc_ctl is NOT supported"); + ctrl->bc.supports_alloc_op_config_limit = false; + ctrl->bc.supports_alloc_op_read_limit = false; + ctrl->alloc_capable = false; + } + + /* + * AT data is "always" supported as it has the same value + * than when AT field is not supported + */ + ctrl->bc.supports_alloc_at_data = true; + pr_debug("supports_alloc_at_data: %d, supports_alloc_at_code: %d", + ctrl->bc.supports_alloc_at_data, ctrl->bc.supports_alloc_at_code); + } else { + pr_err("controller type is UNKNOWN"); + err = -ENODEV; + goto err_release_mem_region; + } + + return 0; + +err_iounmap: + pr_err("%s(): err_iounmap", __func__); + iounmap(ctrl->base); + +err_release_mem_region: + pr_err("%s(): err_release_mem_region", __func__); + release_mem_region(ctrl_info->addr, ctrl_info->size); + + return err; +} + +static struct rdt_domain *qos_new_domain(struct cbqri_controller *ctrl) +{ + struct cbqri_resctrl_dom *hw_dom; + struct rdt_domain *domain; + + hw_dom = kzalloc(sizeof(*hw_dom), GFP_KERNEL); + if (!hw_dom) + return NULL; + + /* associate this cbqri_controller with the domain */ + hw_dom->hw_ctrl = ctrl; + + /* the rdt_domain struct from inside the cbqri_resctrl_dom struct */ + domain = &hw_dom->resctrl_dom; + + INIT_LIST_HEAD(&domain->list); + + return domain; +} + +static int qos_bw_blocks_to_percentage(struct cbqri_controller *ctrl, int blocks) +{ + int percentage; + + if (ctrl->ctrl_info->type != CBQRI_CONTROLLER_TYPE_BANDWIDTH) + return -1; + + blocks *= 100; + percentage = blocks / ctrl->bc.nbwblks; + if (blocks % ctrl->bc.nbwblks) + percentage++; + + return percentage; +} + +static int domain_setup_ctrlval(struct rdt_resource *r, struct rdt_domain *d) +{ + struct cbqri_resctrl_res *hw_res; + struct cbqri_resctrl_dom *hw_dom; + u64 *dc; + int i; + + hw_res = container_of(r, struct cbqri_resctrl_res, resctrl_res); + hw_dom = container_of(d, struct cbqri_resctrl_dom, resctrl_dom); + + dc = kmalloc_array(hw_res->max_rcid, sizeof(*hw_dom->ctrl_val), + GFP_KERNEL); + if (!dc) + return -ENOMEM; + + hw_dom->ctrl_val = dc; + + for (i = 0; i < hw_res->max_rcid; i++, dc++) + *dc = r->default_ctrl; + + /* + * The Qemu implementation for the CBQRI proof-of-concept has + * known reset values for all registers. A proper solution would + * be to perform a CONFIG_LIMIT operation to set the default for + * each RCID + */ + return 0; +} + +static int qos_resctrl_add_controller_domain(struct cbqri_controller *ctrl, int *id) +{ + struct rdt_domain *domain, *mon_domain = NULL; + struct cbqri_resctrl_res *cbqri_res = NULL; + struct cbqri_resctrl_dom *hw_dom_to_free; + struct rdt_resource *res; + int internal_id = *id; + int err; + + domain = qos_new_domain(ctrl); + if (!domain) + return -ENOSPC; + + if (ctrl->ctrl_info->type == CBQRI_CONTROLLER_TYPE_CAPACITY) { + cpumask_copy(&domain->cpu_mask, &ctrl->ctrl_info->cache.cpu_mask); + + if (ctrl->ctrl_info->cache.cache_level == 2) { + cbqri_res = &cbqri_resctrl_resources[RDT_RESOURCE_L2]; + cbqri_res->max_rcid = ctrl->ctrl_info->rcid_count; + cbqri_res->max_mcid = ctrl->ctrl_info->mcid_count; + res = &cbqri_res->resctrl_res; + res->num_rmid = ctrl->ctrl_info->mcid_count; + res->fflags = RFTYPE_RES_CACHE; + res->rid = RDT_RESOURCE_L2; + res->name = "L2"; + res->alloc_capable = ctrl->alloc_capable; + res->mon_capable = ctrl->mon_capable; + res->format_str = "%d=%0*x"; + res->cache_level = 2; + res->data_width = 3; + res->cache.arch_has_sparse_bitmaps = false; + res->cache.arch_has_per_cpu_cfg = false; + res->cache.shareable_bits = 0x000; + res->cache.min_cbm_bits = 1; + res->cache.cbm_len = ctrl->cc.ncblks; + res->default_ctrl = BIT_MASK(ctrl->cc.ncblks) - 1; + } else if (ctrl->ctrl_info->cache.cache_level == 3) { + cbqri_res = &cbqri_resctrl_resources[RDT_RESOURCE_L3]; + cbqri_res->max_rcid = ctrl->ctrl_info->rcid_count; + cbqri_res->max_mcid = ctrl->ctrl_info->mcid_count; + res = &cbqri_res->resctrl_res; + res->num_rmid = ctrl->ctrl_info->mcid_count; + res->fflags = RFTYPE_RES_CACHE; + res->rid = RDT_RESOURCE_L3; + res->name = "L3"; + res->cache_level = 3; + res->alloc_capable = ctrl->alloc_capable; + res->mon_capable = ctrl->mon_capable; + res->format_str = "%d=%0*x"; + res->data_width = 4; + res->cache.arch_has_sparse_bitmaps = false; + res->cache.arch_has_per_cpu_cfg = false; + res->cache.shareable_bits = 0x000; + res->cache.min_cbm_bits = 1; + res->cache.cbm_len = ctrl->cc.ncblks; + res->default_ctrl = BIT_MASK(ctrl->cc.ncblks) - 1; + } else { + pr_err("%s(): unknown cache level %d", __func__, + ctrl->ctrl_info->cache.cache_level); + err = -ENODEV; + goto err_free_domain; + } + } else if (ctrl->ctrl_info->type == CBQRI_CONTROLLER_TYPE_BANDWIDTH) { + if (ctrl->alloc_capable) { + cbqri_res = &cbqri_resctrl_resources[RDT_RESOURCE_MBA]; + cbqri_res->max_rcid = ctrl->ctrl_info->rcid_count; + cbqri_res->max_mcid = ctrl->ctrl_info->mcid_count; + res = &cbqri_res->resctrl_res; + res->num_rmid = ctrl->ctrl_info->mcid_count; + res->fflags = RFTYPE_RES_MB; + res->rid = RDT_RESOURCE_MBA; + res->name = "MB"; + res->alloc_capable = ctrl->alloc_capable; + /* + * MBA resource is only for allocation and + * monitoring can only be done with L3 resource + */ + res->mon_capable = false; + res->format_str = "%d=%*u"; + res->data_width = 4; + /* + * MBA schemata expects percentage so convert + * maximum reserved bw blocks to percentage + */ + res->default_ctrl = qos_bw_blocks_to_percentage(ctrl, ctrl->bc.mrbwb); + /* + * Use values from 0 to MBA_MAX instead of power of two values, + * see Intel System Programming Guide manual section 18.19.7.2 + */ + res->membw.delay_linear = true; + res->membw.arch_needs_linear = true; + /* Disable non-linear values support */ + res->membw.throttle_mode = THREAD_THROTTLE_UNDEFINED; + // The minimum percentage allowed by the CBQRI spec + res->membw.min_bw = 1; + res->membw.bw_gran = 1; + } + + /* + * Monitoring is not possible with Intel MBA resource, + * so add a L3 domain if monitoring is supported by the CBQRI + * bandwidth controller. + */ + if (ctrl->mon_capable) { + struct cbqri_resctrl_res *mon_cbqri_res; + + mon_cbqri_res = &cbqri_resctrl_resources[RDT_RESOURCE_L3]; + mon_domain = qos_new_domain(ctrl); + if (!domain) + goto err_free_mon_domain; + + /* + * For CBQRI, any cpu (technically a hart in RISC-V terms) + * can access the memory-mapped registers of any CBQRI + * controller in the system. Thus it does not matter for + * RISC-V which cpu runs the resctrl code. + */ + cpumask_setall(&domain->cpu_mask); + + err = domain_setup_ctrlval(&mon_cbqri_res->resctrl_res, mon_domain); + if (err) + goto err_free_mon_domain; + + mon_domain->id = internal_id; + internal_id++; + list_add_tail(&mon_domain->list, &mon_cbqri_res->resctrl_res.domains); + err = resctrl_online_domain(res, mon_domain); + if (err) { + pr_debug("%s(): BW monitoring domain online failed", __func__); + goto err_free_mon_domain; + } + } + } else { + pr_err("%s(): unknown resource %d", __func__, ctrl->ctrl_info->type); + err = -ENODEV; + goto err_free_domain; + } + + domain->id = internal_id; + err = domain_setup_ctrlval(res, domain); + if (err) + goto err_free_mon_domain; + + if (cbqri_res) { + list_add_tail(&domain->list, &cbqri_res->resctrl_res.domains); + *id = internal_id; + err = resctrl_online_domain(res, domain); + if (err) { + pr_debug("%s(): failed to online cbqri_res domain", __func__); + goto err_free_domain; + } + } + + return 0; + +err_free_mon_domain: + if (!mon_domain) { + /* + * mon_domain is a struct rdt_domain which is a member of + * struct cbqri_resctrl_dom. That cbqri_resctrl_dom was + * allocated in qos_new_domain() and must be freed. + */ + hw_dom_to_free = container_of(mon_domain, struct cbqri_resctrl_dom, resctrl_dom); + kfree(hw_dom_to_free); + } + +err_free_domain: + /* similar to err_free_mon_domain but the ptr is 'domain' instead */ + hw_dom_to_free = container_of(domain, struct cbqri_resctrl_dom, resctrl_dom); + kfree(hw_dom_to_free); + + return err; +} + +static int qos_resctrl_setup_resources(void) +{ + struct rdt_domain *domain, *domain_temp; + struct cbqri_controller_info *ctrl_info; + struct cbqri_controller *ctrl; + struct cbqri_resctrl_res *res; + int err = 0, i, id = 0; + + list_for_each_entry(ctrl_info, &cbqri_controllers, list) { + err = qos_resctrl_discover_controller(ctrl_info, &controllers[found_controllers]); + if (err) { + pr_err("%s(): qos_resctrl_discover_controller failed (%d)", __func__, err); + goto err_unmap_controllers; + } + + found_controllers++; + if (found_controllers > MAX_CONTROLLERS) { + pr_warn("%s(): increase MAX_CONTROLLERS value", __func__); + break; + } + } + + for (i = 0; i < RDT_NUM_RESOURCES; i++) { + res = &cbqri_resctrl_resources[i]; + INIT_LIST_HEAD(&res->resctrl_res.domains); + INIT_LIST_HEAD(&res->resctrl_res.evt_list); + res->resctrl_res.rid = i; + } + + for (i = 0; i < found_controllers; i++) { + ctrl = &controllers[i]; + err = qos_resctrl_add_controller_domain(ctrl, &id); + if (err) { + pr_err("%s(): failed to add controller domain (%d)", __func__, err); + goto err_free_controllers_list; + } + id++; + + /* + * CDP (code data prioritization) on x86 is similar to + * the AT (access type) field in CBQRI. CDP only supports + * caches so this must be a CBQRI capacity controller. + */ + if (ctrl->ctrl_info->type == CBQRI_CONTROLLER_TYPE_CAPACITY && + ctrl->cc.supports_alloc_at_code && + ctrl->cc.supports_alloc_at_data) { + if (ctrl->ctrl_info->cache.cache_level == 2) + exposed_cdp_l2_capable = true; + else + exposed_cdp_l3_capable = true; + } + } + + pr_debug("exposed_alloc_capable = %d", exposed_alloc_capable); + pr_debug("exposed_mon_capable = %d", exposed_mon_capable); + pr_debug("exposed_cdp_l2_capable = %d", exposed_cdp_l2_capable); + pr_debug("exposed_cdp_l3_capable = %d", exposed_cdp_l3_capable); + return 0; + +err_free_controllers_list: + for (i = 0; i < RDT_NUM_RESOURCES; i++) { + res = &cbqri_resctrl_resources[i]; + list_for_each_entry_safe(domain, domain_temp, &res->resctrl_res.domains, list) { + kfree(domain); + } + } + +err_unmap_controllers: + for (i = 0; i < found_controllers; i++) { + iounmap(controllers[i].base); + release_mem_region(controllers[i].ctrl_info->addr, controllers[i].ctrl_info->size); + } + + return err; +} + +int qos_resctrl_setup(void) +{ + s32 err; + + err = qos_resctrl_setup_resources(); + if (err) { + pr_err("%s() failed with error %d\n", __func__, err); + return err; + } + + err = resctrl_init(); + + return err; +} + +int qos_resctrl_online_cpu(unsigned int cpu) +{ + return resctrl_online_cpu(cpu); +} + +int qos_resctrl_offline_cpu(unsigned int cpu) +{ + resctrl_offline_cpu(cpu); + return 0; +} From patchwork Wed Apr 19 11:10:58 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Drew Fustini X-Patchwork-Id: 85337 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp305552vqo; Wed, 19 Apr 2023 04:21:09 -0700 (PDT) X-Google-Smtp-Source: AKy350b3/wv3qA7FWDraq0R+0iXur4EFnTlqZ/wTrQ258ZttH93PGe1VzzzDg4xtPSlJ8UVSwsdQ X-Received: by 2002:a05:6a00:2d84:b0:63d:254a:3901 with SMTP id fb4-20020a056a002d8400b0063d254a3901mr3496117pfb.25.1681903269013; Wed, 19 Apr 2023 04:21:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681903268; cv=none; d=google.com; s=arc-20160816; b=qNxbDJSr2m+QbAFGNkQQ8bmLWlSPjVHRU69WP/mh+OA481BbGwM4MxgD4OKSsHYjg4 BscvMtrs531pMT61JmSOtJCCVba8ZHdhPSuDdYCtdC3xAm6zJKwl9x77FJfCWaXrnHnJ gMWeDzY5XcJHBWS+hJLCx2zNrFhoywpd9fRbR2Z1ll7NuVqSjURxS+gkRblJxb7DG0kN ma4RO3/hnj3+lTZQJCrpN9Lh8adV/FSzQ1w3ZMMk3w9hslD06IROF4eo3LxaDGfsZTQM ciq6ts79kcvOM0lP8ie2Is1ExnrdTQVcXIDRuyNnUVNNbdh940WuE+6E8AFLAJmsfEGQ G3Dg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=Sl6ZZPHDkI9/+UU2TcDaa7qsesK/iY8UwQlFo2pnRGU=; b=F2Ka6iw3xKhB8FVOPKWSlVyK5Ek35Bmemjc/o+a0jLH2zo3OSvoVLLp3DtW5AOFh+a qJCjxGzKKDNauvHoAVUTq06Z3/XtmoDazEDqpddSqrEzof8IMHzZPJjrORjcUCx6n6f5 OdDJ81/bzkhyvbalYbnB7oypQJ2b9x+9nzKitXdiKJFiU3OuOB5zfl1gzGL14BH5xylr byOjTJvW/xDvyV3DTQdSP0XWjo4YwW+5zMnyJlkdpbjAB3yShrY9l+ZaZYnfz5RupM/F FsWgbR0i6YlPKKOT+fK107cJO7NBNEKmNhCfuI4HMTHVmOhHOoy7EpOdPp9++PdwlBUz j8Tg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b=teXl9sZA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id y36-20020a631824000000b0051b603fe4f9si13692860pgl.876.2023.04.19.04.20.56; Wed, 19 Apr 2023 04:21:08 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b=teXl9sZA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232849AbjDSLLV (ORCPT + 99 others); Wed, 19 Apr 2023 07:11:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38650 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232903AbjDSLLI (ORCPT ); Wed, 19 Apr 2023 07:11:08 -0400 Received: from mail-pl1-x632.google.com (mail-pl1-x632.google.com [IPv6:2607:f8b0:4864:20::632]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D6D471446D for ; Wed, 19 Apr 2023 04:10:27 -0700 (PDT) Received: by mail-pl1-x632.google.com with SMTP id d9443c01a7336-1a6715ee82fso35063405ad.1 for ; Wed, 19 Apr 2023 04:10:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20221208.gappssmtp.com; s=20221208; t=1681902622; x=1684494622; 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=Sl6ZZPHDkI9/+UU2TcDaa7qsesK/iY8UwQlFo2pnRGU=; b=teXl9sZA/vikfdnyID3OxKrmidpT4xgl6Dzon/dM8dfFMedyiwryINMJF1Ivem0Ntw 9eg4qqI0ib3racb7edyRvjU0vYn7vHgSUpIDQeg8WtOLg5oElpv+znRGFB0uo1y3FaE5 8DSuROEgor7W6zjph2142OtZ9pV5uYq83FEvjYsly8hshW1K5QBY1HsOIpvv1LQ1zFQU y9mwCdPTo37EzbUCFWZsZ0vqtVaFDqjPYdj/gKjiYkwJgCDWMN8t3LMTNLRnkrUzTTVu v9TDsLX6+Yz2HkWVQqGwpd7PpXFdpgq+TaHrzHWnlfXSYvptMWnaKAyv6Mxbehoj4Rxt LqDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681902622; x=1684494622; 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=Sl6ZZPHDkI9/+UU2TcDaa7qsesK/iY8UwQlFo2pnRGU=; b=ce2pCg5jmUOiNDAFl6ca1ObMADhrzjwC3Z5HvPQ/ZLX/pAm4XKHtofZRxZGYsF0ZsO QVN47R/63Qjj8euVmPuHZAGkiyGCn52Tpzy2LtnnNXukctc4yeo/mkUSNNSGqAuHSz+R KvVCE4x6DsE6Q67MNR461NSnO1c1hAUt7JxTjcBdXtKWHPnvP4i9y9Eg3R2SwetkFtWZ zC9GR1EhCGkPUJ/CjgTeEYji1pv3bg8o7QivGPYdkPRbHztAiw8b/6pI66sNQkijvFnq ZqtsqJ2kffWQEON/Nhd+ohjituZfGzlkv2GL1OGHEZkXsR1fT6+qJoUXq7+SNFpARjUU kYBw== X-Gm-Message-State: AAQBX9d4imEz+XwDG1LJdKDlwl3rurI97b1Uw1NcsM6JLdLP++ajgND7 tttuZjwXBhl536AYFDXT+c8AvC4hkBdsV6XDPSY= X-Received: by 2002:a17:903:22d0:b0:1a6:74ce:9bed with SMTP id y16-20020a17090322d000b001a674ce9bedmr5688908plg.46.1681902621989; Wed, 19 Apr 2023 04:10:21 -0700 (PDT) Received: from x1.hsd1.or.comcast.net ([2601:1c2:1800:f680:eaf2:1d7a:7338:16cb]) by smtp.gmail.com with ESMTPSA id g12-20020a1709026b4c00b001a24cded097sm11180774plt.236.2023.04.19.04.10.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Apr 2023 04:10:21 -0700 (PDT) From: Drew Fustini To: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Palmer Dabbelt , Paul Walmsley , Conor Dooley , Ved Shanbhogue , =?utf-8?q?Kornel_Dul=C4=99ba?= , Adrien Ricciardi , Nicolas Pitre , Fenghua Yu , Reinette Chatre , Babu Moger , Peter Newman , x86@kernel.org, Rob Herring , James Morse Cc: Drew Fustini Subject: [RFC PATCH 08/21] RISC-V: QoS: expose implementation to resctrl Date: Wed, 19 Apr 2023 04:10:58 -0700 Message-Id: <20230419111111.477118-9-dfustini@baylibre.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230419111111.477118-1-dfustini@baylibre.com> References: <20230419111111.477118-1-dfustini@baylibre.com> MIME-Version: 1.0 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1763603402531992209?= X-GMAIL-MSGID: =?utf-8?q?1763603402531992209?= The generic resctrl header include/linux/resctrl.h includes asm/resctrl.h when CONFIG_ARCH_HAS_CPU_RESCTRL is set. Co-developed-by: Adrien Ricciardi Signed-off-by: Adrien Ricciardi Signed-off-by: Drew Fustini --- arch/riscv/include/asm/resctrl.h | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 arch/riscv/include/asm/resctrl.h diff --git a/arch/riscv/include/asm/resctrl.h b/arch/riscv/include/asm/resctrl.h new file mode 100644 index 000000000000..7d247d87dab9 --- /dev/null +++ b/arch/riscv/include/asm/resctrl.h @@ -0,0 +1,2 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +#include From patchwork Wed Apr 19 11:10:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Drew Fustini X-Patchwork-Id: 85336 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp305473vqo; Wed, 19 Apr 2023 04:21:00 -0700 (PDT) X-Google-Smtp-Source: AKy350YcbaELjPlUM4qYsNnJEDmwZLmrCx4UV7wGUCtuXhkhpNO+T1Fv8GIJ+iGqXI3pPxQ4ryRz X-Received: by 2002:a05:6a00:2e10:b0:63b:435f:134a with SMTP id fc16-20020a056a002e1000b0063b435f134amr4118711pfb.28.1681903259718; Wed, 19 Apr 2023 04:20:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681903259; cv=none; d=google.com; s=arc-20160816; b=hZVq5r2EMJXNLLXLZ0dBHTrrErCwir/513evA6Ymr5j35iGGLX0EGqcT4EI+nPaKXv vmzZZJQ5dyZx3JOUy6WnNGYZme3hlf6aK1c4sn9dqRqGqG3lxhIEF+GghBD6JQ2exiyF 6Uetcu4eSiVgFXp4tbtYSD2g0C/rUPLsns0Qavc6gL/2J9UMSaIbu4FlYZ69/n+1K1t+ wQZuDTzQKjJ2Sy8smAlU/iaJFmzkL7LueA/+pu2e9eYa6NlgNcC9MvuXghcLlSszrY3Q /ZVFjUVo6OfXKQgxmboGacgVLDuAG7OolZy+YU2u9FxDJRN6eNAE95fT/YYo/roEYIU+ eC0g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=Eblfm/T6iTpx+B5jQxcafLiaSwdeB6MwJNMx1053fIM=; b=Hk2BjXy9DpgsbTBTA4KAKUqOK9lTxpomnIETv2qQQdq1hLTdRIfOMwTamo5N+CryCH 2xZM5OrancFcGMZMdp07GQOyZDHYLelu2BEpgAOpZCbOq/Mr7IOn+a9W+SnnM0vB52EC DviVU3ZeLXqtNkrwdzAlwDRVetE45Es3r38tksQ4b8kmea4YsOS+At1yQ5h4sQMSAr6q 0CaC+tejNUvuhAZl2t1T/hOrtmKEm6qAM4TJtTKlsXjmQTfRJYncmQeWjVOmkTfhtBHw AFZuvpCWfYffWxFfqdgbX8/T1bofbwrV7WQDbGxbEWaN8dhpoYdBtn0zB6PoXg+rUcNE iw4w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b=DeZfx01Z; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id e16-20020aa79810000000b0063ca0c271b9si7071061pfl.227.2023.04.19.04.20.47; Wed, 19 Apr 2023 04:20:59 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b=DeZfx01Z; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232970AbjDSLLZ (ORCPT + 99 others); Wed, 19 Apr 2023 07:11:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38672 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232879AbjDSLLK (ORCPT ); Wed, 19 Apr 2023 07:11:10 -0400 Received: from mail-pl1-x633.google.com (mail-pl1-x633.google.com [IPv6:2607:f8b0:4864:20::633]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2A45A13F9C for ; Wed, 19 Apr 2023 04:10:29 -0700 (PDT) Received: by mail-pl1-x633.google.com with SMTP id d9443c01a7336-1a80d827179so10132295ad.3 for ; Wed, 19 Apr 2023 04:10:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20221208.gappssmtp.com; s=20221208; t=1681902623; x=1684494623; 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=Eblfm/T6iTpx+B5jQxcafLiaSwdeB6MwJNMx1053fIM=; b=DeZfx01ZX7Sehx3CCekOj5Wmh5/0E6L27Vt1u0RCG6Af7W4Ww6d99E98VCdUMc5ILQ ppeTAQ4ynNy3TiNv6XuWSxIGB7HqcDqzwIX1tzEXE/xJHgae/7yiQ786zEhoR6k3gOvX L8RXwIuD/Bcpb+fx+/tEgYMPtOMn/5RGiZHZQSsVTwbwnESwjJZgQKjJgS+CYdiWmv/X sTlTz+tcJxIHBX9j344JEvQHen6NftYor8JECB66GT3RicUQttnGHRgNi5k9OBP15w4r +bm2YkMfwA9+FPgWxfcfMf6baW+J4rq9LuYDUDbRWAWXCt8WxTxt6hmZHGKv+vMZxzEt z6Og== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681902623; x=1684494623; 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=Eblfm/T6iTpx+B5jQxcafLiaSwdeB6MwJNMx1053fIM=; b=XdFMMr2YsKNNzYQHqbxeYASfGeAwxhvJn9goi5e8jGYw/uRvUJ07CtBryCh1wKnU6z 7NrwQf/dr3XkkV8M1n9LNU2aBWdgz6VXi5W+YH9DGv7LdTYmRvwCx/7AWthR8SyF7vLq vtS7AhrP2OcJCf73HLak15pV7FAA/TdnpCg+/+1V04sTrOQ41IHvQ55WLh/wG2uoFHq5 ctDsN/UwfM1Ddygs9BX/P88ziy4Gwua5X6E0AE0vYI0SLWO+VPANnwUtoVE8XSQ1ryio ysVIBWLIubW7CZS/rOu6JuYB3frAm8fG/DzaQnvDJaeXVjl8/csObE+g8SvXQfUdXe51 1L9g== X-Gm-Message-State: AAQBX9dss5o5dCndAvwPBhTKEqKj46AImUER6KGjlqOVEPAinSqM94kE hEUlLQdoDWwP8b0/oapC+Ib8Zo4PQd+ASze/z5Y= X-Received: by 2002:a17:902:ab81:b0:1a6:4e7b:7037 with SMTP id f1-20020a170902ab8100b001a64e7b7037mr4418984plr.69.1681902623318; Wed, 19 Apr 2023 04:10:23 -0700 (PDT) Received: from x1.hsd1.or.comcast.net ([2601:1c2:1800:f680:eaf2:1d7a:7338:16cb]) by smtp.gmail.com with ESMTPSA id g12-20020a1709026b4c00b001a24cded097sm11180774plt.236.2023.04.19.04.10.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Apr 2023 04:10:22 -0700 (PDT) From: Drew Fustini To: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Palmer Dabbelt , Paul Walmsley , Conor Dooley , Ved Shanbhogue , =?utf-8?q?Kornel_Dul=C4=99ba?= , Adrien Ricciardi , Nicolas Pitre , Fenghua Yu , Reinette Chatre , Babu Moger , Peter Newman , x86@kernel.org, Rob Herring , James Morse Cc: Drew Fustini Subject: [RFC PATCH 09/21] RISC-V: QoS: add late_initcall to setup resctrl interface Date: Wed, 19 Apr 2023 04:10:59 -0700 Message-Id: <20230419111111.477118-10-dfustini@baylibre.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230419111111.477118-1-dfustini@baylibre.com> References: <20230419111111.477118-1-dfustini@baylibre.com> MIME-Version: 1.0 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1763603392524505576?= X-GMAIL-MSGID: =?utf-8?q?1763603392524505576?= Add late_initcall which checks if the Ssqosid extension is present, and if so, calls resctrl setup and sets cpu hotplug state to "qos:online". Co-developed-by: Adrien Ricciardi Signed-off-by: Adrien Ricciardi Signed-off-by: Drew Fustini --- arch/riscv/kernel/qos/qos.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 arch/riscv/kernel/qos/qos.c diff --git a/arch/riscv/kernel/qos/qos.c b/arch/riscv/kernel/qos/qos.c new file mode 100644 index 000000000000..0b5fde06cbe1 --- /dev/null +++ b/arch/riscv/kernel/qos/qos.c @@ -0,0 +1,31 @@ +// SPDX-License-Identifier: GPL-2.0-only +// Copyright (C) 2023 Rivos Inc. + +#include +#include +#include +#include +#include + +#include +#include + +#include "internal.h" + +static int __init qos_arch_late_init(void) +{ + int err; + + if (!riscv_isa_extension_available(NULL, SSQOSID)) + return -ENODEV; + + err = qos_resctrl_setup(); + if (err != 0) + return err; + + cpuhp_setup_state(CPUHP_AP_ONLINE_DYN, "qos:online", qos_resctrl_online_cpu, + qos_resctrl_offline_cpu); + + return err; +} +late_initcall(qos_arch_late_init); From patchwork Wed Apr 19 11:11:00 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Drew Fustini X-Patchwork-Id: 85330 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp304711vqo; Wed, 19 Apr 2023 04:19:50 -0700 (PDT) X-Google-Smtp-Source: AKy350aOyWIMsBv60wbznGi7b+Q6FRRNXJUFF6yvNuvVVam1kE1O0vuLeZHm7INZdgJSQKUZInU1 X-Received: by 2002:a05:6a00:2395:b0:63b:7af1:47c9 with SMTP id f21-20020a056a00239500b0063b7af147c9mr3630861pfc.13.1681903190137; Wed, 19 Apr 2023 04:19:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681903190; cv=none; d=google.com; s=arc-20160816; b=MomClXD7JaaXHXse6+N7+Alq8OzS8BWpumKcnNs3J1p3xTZf7AC1fp1/gbYoF8BCSz eSQ7EsfFZeafD3Lizg+gX8O3ztYZcmaXWIR7esiJl2oGKJsUay0UDjuEbB9I22+oPt13 heepMEc2e4Q3rPRsUT1LEsz4aZnIAsW/ocuTJ1Ze5GFjSQUtDYl5nwWozUPrSM0Wd3Xm OeURMZiB3PEcoP5EkBLoT4s160QiLC1FIJkaOjJh8CwqPNxMK62cWWsSDGZKHcMgL20w pQGhggRfa1bjvzFNOFuaVLPkGzH1En4zYWdqAxmWa98nwhddo63j/zcHuVtAyHPPF5LJ mObg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=4hp9NpznKrrhFUn5kY4plzR5MQ6NWWu6XSocDBe3Nh8=; b=KnUZt2NJ0NjOoAigvkrdv5YZxrLvsesm3QjPNzG7De8LweQgB1ooBGd9erfeztTydw 9/HXzDlnQpo3e/Mfu8iOgP7BhlTtQBeZeJxbh76Tzp0L5ZfWuOar+sUrnjgbaq80PNIY rYLV8McYWw8bhzaHva49Illv/dlfT4v8tUsf2kruq4OP/ytFF0r9cL1jGUb8AUlje61S nii0Ifp+pVD8LhIi0R4mU7FCaPhLAUd5vkIIcyByWsf4BZ+RR9UysPAsAem/7PS97gJ8 e4me0jhmtJQpzp5eo3sDdLUhShWkiFffIfBTXWK5x55D4p6ki6S3XWl1byT+ZDIDEReb hrWw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b=bSlEbec9; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id p63-20020a622942000000b0063b6cccb40fsi12799667pfp.188.2023.04.19.04.19.15; Wed, 19 Apr 2023 04:19:50 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b=bSlEbec9; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232976AbjDSLL2 (ORCPT + 99 others); Wed, 19 Apr 2023 07:11:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38616 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232931AbjDSLLQ (ORCPT ); Wed, 19 Apr 2023 07:11:16 -0400 Received: from mail-pl1-x62c.google.com (mail-pl1-x62c.google.com [IPv6:2607:f8b0:4864:20::62c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 67DD413C37 for ; Wed, 19 Apr 2023 04:10:33 -0700 (PDT) Received: by mail-pl1-x62c.google.com with SMTP id d9443c01a7336-1a9253d4551so516025ad.0 for ; Wed, 19 Apr 2023 04:10:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20221208.gappssmtp.com; s=20221208; t=1681902625; x=1684494625; 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=4hp9NpznKrrhFUn5kY4plzR5MQ6NWWu6XSocDBe3Nh8=; b=bSlEbec9/6HF6hffS50ZidbvyeHeOIIlvjS3fkxYt9p2ccPaMCloBmttbuqqmsN+pP DQKv+mly9xKqQ4DR+95+zT4hxj70m32RkOVien5/iCyTKT/aF057uciiXJCz04ujXg4j 9UYRl+7MZAmd5jQbkwrSe4SmKcvX1AYAsUQJbwA/7i+dCzahPypNFubuZwsTbBHpKRkV nM3OfcozCj/et54NEGR796BoVTOz7l/50j92hxQPhew31E9fQbhqC9Tiv0CFffEHVVLL qGT+FuApfG1S8zPBFa1RInxm7TqmigulH7DtfZowilsJGVx+WXKTVPZlCDvlmAvfTUZP uFUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681902625; x=1684494625; 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=4hp9NpznKrrhFUn5kY4plzR5MQ6NWWu6XSocDBe3Nh8=; b=Sq2Ai6P+lBtchZElmGLbQYt+KQRdvyQ7HERTUJyNyILJaqGz/nbIDPRIaeI3eWkBuy 7wed4jpAzZZIDnm3AvafH86g6Q2+dXk5FGsqd/Hn0N5DLN8wTkUS5EX5ReVi/Zu3QnPV 3cnqjHKdFRwc4aKKTEBYm3oqDInfOkYM+xPOAT1BZrFof8CK/kF2th2or8hsBgU3hIX2 z5gu7deyT4efI0wmbkbu3ApND5tR87duDjI0QJiuYHeJ+6AbFkFXDlr28Xqq73h1gLI/ WWIp79FKp/s8g6QJsM/gcxdByg9G1AsRUzWPPsZzfgptkzMdQ/0J4UKqn7H8CVxuXJTv 1sMQ== X-Gm-Message-State: AAQBX9fy2lA5/mqFB4Y/abrbnn6HPmR6JiezdkjmjK2Wrj+O3uUwga4j 11lFo9v+WhzCltoF7QkcCreHRA== X-Received: by 2002:a17:902:ee4d:b0:1a6:9f09:866d with SMTP id 13-20020a170902ee4d00b001a69f09866dmr5126919plo.61.1681902624856; Wed, 19 Apr 2023 04:10:24 -0700 (PDT) Received: from x1.hsd1.or.comcast.net ([2601:1c2:1800:f680:eaf2:1d7a:7338:16cb]) by smtp.gmail.com with ESMTPSA id g12-20020a1709026b4c00b001a24cded097sm11180774plt.236.2023.04.19.04.10.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Apr 2023 04:10:24 -0700 (PDT) From: Drew Fustini To: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Palmer Dabbelt , Paul Walmsley , Conor Dooley , Ved Shanbhogue , =?utf-8?q?Kornel_Dul=C4=99ba?= , Adrien Ricciardi , Nicolas Pitre , Fenghua Yu , Reinette Chatre , Babu Moger , Peter Newman , x86@kernel.org, Rob Herring , James Morse Cc: Drew Fustini Subject: [RFC PATCH 10/21] RISC-V: QoS: make CONFIG_RISCV_ISA_SSQOSID select resctrl Date: Wed, 19 Apr 2023 04:11:00 -0700 Message-Id: <20230419111111.477118-11-dfustini@baylibre.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230419111111.477118-1-dfustini@baylibre.com> References: <20230419111111.477118-1-dfustini@baylibre.com> MIME-Version: 1.0 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1763603319490079448?= X-GMAIL-MSGID: =?utf-8?q?1763603319490079448?= Make CONFIG_RISCV_ISA_SSQOSID select the config options for resctrl: ARCH_HAS_CPU_RESCTRL and RESCTRL_FS Co-developed-by: Adrien Ricciardi Signed-off-by: Adrien Ricciardi Signed-off-by: Drew Fustini --- arch/riscv/Kconfig | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig index 9d4c8c505191..683349c2e809 100644 --- a/arch/riscv/Kconfig +++ b/arch/riscv/Kconfig @@ -401,6 +401,9 @@ config RISCV_ISA_C config RISCV_ISA_SSQOSID bool "Ssqosid extension support for supervisor mode Quality of Service ID" default y + select ARCH_HAS_CPU_RESCTRL + select RESCTRL_FS + select MISC_FILESYSTEMS help Adds support for the Ssqosid ISA extension (Supervisor-mode Quality of Service ID). From patchwork Wed Apr 19 11:11:01 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Drew Fustini X-Patchwork-Id: 85321 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp303407vqo; Wed, 19 Apr 2023 04:17:24 -0700 (PDT) X-Google-Smtp-Source: AKy350ZWqrsBO8uzzrP6ya8+HDL8Rrba04BXUk57dPsYo6cNQrLhaPYwtcA4NRkMr7czlIo0rX/W X-Received: by 2002:a05:6a20:431a:b0:ef:e240:b564 with SMTP id h26-20020a056a20431a00b000efe240b564mr3487883pzk.47.1681903044398; Wed, 19 Apr 2023 04:17:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681903044; cv=none; d=google.com; s=arc-20160816; b=LGd2lsN6ylpqrjOePVyERdUZz8Hpw9vBTqWD6Q9fpOmEql1h1GyPx1UmafZzhBInRq WzbWeD5ODO3IN3YtHTx4SsREm2xnH8XQdfhEER6FcmoVHK8HrdH0wTwvkn1UwvOs6gbw 7iI7WpAkNmqsT8rAVnoqEBev6w0qJd2tJRQ3aKTVKrDiKt302zrNVqIkGw9G0r/dupIr qYvHmZ5/BzHMzuiQmDnjz1J0bkZjw5c9UyOQm20i99MR8RtDE30/DZlFzi/L7vCXfhtz Sok8OCxhrkWemshZOk5ZuK3f+AzKKwVzIumg273vYQTmul0IPU4XZlRdNNRzFkYj+Tu2 5Dbg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=1F7zU+i+fgt15KwVVGwxKhOm7NGAJEpboJ7iHtKcEtA=; b=eGA4mq6lYnu42NNkQZjDohmTh2RNu8+LMKbCLICpcAwfkZyhsez2itxdDkExNXs+fA K10xFuG8uc72fhVQjBd+DWZcGkT3Iv65tqSDtVTX2e9moqHkOZixWu3SPpHsqPi53iQy PPepOceaHONrhAb+xLp4NuerXaq8oPLMNCTjof6pvfjJU50hPnrJHlSKxXRbn9W+m4Yx bkbMx1A/vf2vWxllZKrB9T2+2C/S+Ry1XACtIKji9oliHJ7CfjNfBCUnqbJOG8xiTXb7 a4eL8hERybFi9gAVvTXg1x+AfLCw9L0CLFG9puKBsE/PEUE3lfsUjuOWqWUbgsZ4ZU4/ swWg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b=aV4uFLLX; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f63-20020a623842000000b00624eb57b45dsi16318041pfa.74.2023.04.19.04.17.11; Wed, 19 Apr 2023 04:17:24 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b=aV4uFLLX; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232984AbjDSLLa (ORCPT + 99 others); Wed, 19 Apr 2023 07:11:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38622 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232937AbjDSLLR (ORCPT ); Wed, 19 Apr 2023 07:11:17 -0400 Received: from mail-pl1-x62e.google.com (mail-pl1-x62e.google.com [IPv6:2607:f8b0:4864:20::62e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1507213C3F for ; Wed, 19 Apr 2023 04:10:35 -0700 (PDT) Received: by mail-pl1-x62e.google.com with SMTP id d9443c01a7336-1a68f2345c5so21727755ad.2 for ; Wed, 19 Apr 2023 04:10:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20221208.gappssmtp.com; s=20221208; t=1681902626; x=1684494626; 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=1F7zU+i+fgt15KwVVGwxKhOm7NGAJEpboJ7iHtKcEtA=; b=aV4uFLLXRbU0iBRIE297Q6EuQGVnLdUjGgZomWyhtilxlo1Xq5JPOtPmXFKRcqinT0 ofpucAcyCK12hWD3OSGm2ZBa8cCd7SRz725V46cfkz9Mc3how+qc46mk/Pv1Iir4XwH3 I+W9X2ydKb5X5SejIFVpYeCGYnMLe84eo3oyFXWBojouGseR4qBtPkM36th81qqCXb6S xugkArjRhlFMZwiJYvBNhF+f6h98sog5nw474YuDtsxZCN2cq0gloi3bUk3KqowxoeZk zrdDTH+1ANXXhbvzhlyXrcyTllVHQhr4OuyPAT2dipwlDOYDrEYiFYl4VgX1JrWJnY+3 NgrQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681902626; x=1684494626; 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=1F7zU+i+fgt15KwVVGwxKhOm7NGAJEpboJ7iHtKcEtA=; b=PyzghGBNOe4w6Kc/J6hVTngTfAB7wYiMC/SRFPQZ5VW0rKAR34meIx7sjl5Y39fDLX 2cj9ilYP1/M+4QYuMrf8ChW5aa/9bpS6ZNMlwHuoTwgLkbTJ9U73Ij0lPvQQMYtgW6yu lJT1ogmpv+qcbqBwGsmKnuHn4BeoY8IU7pO4ty2kSKMKz9pXUt3HR/r1RGJGYca3QYQq M3EXxS3I7yYjdBPoH7i4r2cMGdNz3PnkH8dMLVyQx18B3f2JcImUIyVhuEo/jr8ojv7I Ob96JT84SM4B+ErjGaorvbG/qAB9jJ3eHYtEMfkqx4UFfw47I3/1N2YDMmC49UPaKN3A 0BvQ== X-Gm-Message-State: AAQBX9dppBYdi9AUJRSOYuHo7+bNSySgs+GCciDXZs2KGSaYX2Azuf7R aA/oH80HeBE8yLSxfteWg7L+qQ== X-Received: by 2002:a17:903:230b:b0:1a6:a6e7:8846 with SMTP id d11-20020a170903230b00b001a6a6e78846mr6108159plh.40.1681902626375; Wed, 19 Apr 2023 04:10:26 -0700 (PDT) Received: from x1.hsd1.or.comcast.net ([2601:1c2:1800:f680:eaf2:1d7a:7338:16cb]) by smtp.gmail.com with ESMTPSA id g12-20020a1709026b4c00b001a24cded097sm11180774plt.236.2023.04.19.04.10.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Apr 2023 04:10:25 -0700 (PDT) From: Drew Fustini To: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Palmer Dabbelt , Paul Walmsley , Conor Dooley , Ved Shanbhogue , =?utf-8?q?Kornel_Dul=C4=99ba?= , Adrien Ricciardi , Nicolas Pitre , Fenghua Yu , Reinette Chatre , Babu Moger , Peter Newman , x86@kernel.org, Rob Herring , James Morse Cc: Drew Fustini Subject: [RFC PATCH 11/21] RISC-V: QoS: add to build when CONFIG_RISCV_ISA_SSQOSID set Date: Wed, 19 Apr 2023 04:11:01 -0700 Message-Id: <20230419111111.477118-12-dfustini@baylibre.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230419111111.477118-1-dfustini@baylibre.com> References: <20230419111111.477118-1-dfustini@baylibre.com> MIME-Version: 1.0 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1763603166893110474?= X-GMAIL-MSGID: =?utf-8?q?1763603166893110474?= Add the sqoscfg CSR handling and the resctrl interface to the build when CONFIG_RISCV_ISA_SSQOSID is set. Co-developed-by: Adrien Ricciardi Signed-off-by: Adrien Ricciardi Signed-off-by: Drew Fustini --- arch/riscv/kernel/Makefile | 2 ++ arch/riscv/kernel/qos/Makefile | 2 ++ 2 files changed, 4 insertions(+) create mode 100644 arch/riscv/kernel/qos/Makefile diff --git a/arch/riscv/kernel/Makefile b/arch/riscv/kernel/Makefile index 4cf303a779ab..57d57e430fb9 100644 --- a/arch/riscv/kernel/Makefile +++ b/arch/riscv/kernel/Makefile @@ -89,3 +89,5 @@ obj-$(CONFIG_EFI) += efi.o obj-$(CONFIG_COMPAT) += compat_syscall_table.o obj-$(CONFIG_COMPAT) += compat_signal.o obj-$(CONFIG_COMPAT) += compat_vdso/ + +obj-$(CONFIG_RISCV_ISA_SSQOSID) += qos/ diff --git a/arch/riscv/kernel/qos/Makefile b/arch/riscv/kernel/qos/Makefile new file mode 100644 index 000000000000..9ed0c13a854d --- /dev/null +++ b/arch/riscv/kernel/qos/Makefile @@ -0,0 +1,2 @@ +# SPDX-License-Identifier: GPL-2.0 +obj-$(CONFIG_RISCV_ISA_SSQOSID) += qos.o qos_resctrl.o From patchwork Wed Apr 19 11:11:02 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Drew Fustini X-Patchwork-Id: 85331 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp304956vqo; Wed, 19 Apr 2023 04:20:15 -0700 (PDT) X-Google-Smtp-Source: AKy350bxRBknR/1cRyojlcxQyHlrgXAxy0Blf/DBjWNoIqqJP+h+nkTHW/CA2DFg0FBKcjUjtAMz X-Received: by 2002:a05:6a00:1141:b0:63d:43bd:8444 with SMTP id b1-20020a056a00114100b0063d43bd8444mr3926192pfm.33.1681903215254; Wed, 19 Apr 2023 04:20:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681903215; cv=none; d=google.com; s=arc-20160816; b=DiARkOVu+Pqd0BzMs/G4oKKi2O9+4GaTIw4pKXvJtGCVp8w9cPtSWdU8LCsFyxJkH1 kTtBR+lX5+wvDTI1sE+QjZ42lAqv3K44zKu1Q8Qaa84FTZZKB03rh6JDz5qhiEkjrg6Y vQPj40g9uoEfo6AO1uxBxR59wYAUNI2cnCiAK9exOVGYP9u3VQClcKYGSbGcIJyMWf+E LOu11oXsyxDXBUKNbRIWZ0xcXIKnyW6EocZZYgIxmi7yZRZ4rD3dwQgZ831jMXjRxRf+ eWiusl/+D32x2Gh2YAykFddQ14EvaLRAAlTP9+87CnoVkB5oLqrpuxasamEPAU27ZXfH wR/A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=IeP1c5FHkO2iYuai0o4JGoTDumRIxR3IsfyyPznXUZQ=; b=d/RWTBH7QpSI/rr+Kd1YePQRlVqUZz/h49hGzuDUAj+ebSrsNYsduX1XcXQS0QD3wY +58uQfpaIFcPYQ6ZxpCTdjDEFu16sBdpe5uEe9LgN8Djc/6TwGZR3qJhaU7f1S5Gjpc7 GvBkvACwZs+g2IXc0EUNNNLvlLavk8WuLiNkb3QFHyaGWjIR3sI3cIA4hlrS9dyujina Vvg+wah5VyEHBhoJMMN7xiiwW1K2fOKYu97MG9RwYC0PO4ygVdO8O/V37NZsMiFaJHFF ewiXSLenNyoHgj3Zd/4ndURWgkQxeosnUE59V/ulYK4nqxdgFOf/QVi23ggu04LVN9T9 +LUw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b="koEw/uiE"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id p63-20020a622942000000b0063b6cccb40fsi12799667pfp.188.2023.04.19.04.20.03; Wed, 19 Apr 2023 04:20:15 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b="koEw/uiE"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233010AbjDSLLm (ORCPT + 99 others); Wed, 19 Apr 2023 07:11:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38642 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232917AbjDSLLT (ORCPT ); Wed, 19 Apr 2023 07:11:19 -0400 Received: from mail-pl1-x62f.google.com (mail-pl1-x62f.google.com [IPv6:2607:f8b0:4864:20::62f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B539D13C23 for ; Wed, 19 Apr 2023 04:10:37 -0700 (PDT) Received: by mail-pl1-x62f.google.com with SMTP id d9443c01a7336-1a526aa3dd5so36470825ad.3 for ; Wed, 19 Apr 2023 04:10:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20221208.gappssmtp.com; s=20221208; t=1681902627; x=1684494627; 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=IeP1c5FHkO2iYuai0o4JGoTDumRIxR3IsfyyPznXUZQ=; b=koEw/uiEXJ4P6r+2zoaiHPM5ok/d28q5pyhF5LbHc6I1XBnEv7ikHPdbKOO5lffn/K pKDES30EiXACKywfHsDUvjjt0cOPKfvLpyg9IeEb5NLAba+5aa/Q/MLSvGSDEPWntDpi abS8us22/q+V5R+SCMXTfaaDbuG1buySAT/syibcEKpDziulkNwfG1g/R2vwvlaUG+P7 fl09D+ZXUj4CtB6cdojZ/MWvx8OjwgAgpdsksCYdzZrmbJqBWSzxhAdKGStPebuYbxLb xjGTza0fpYTfOqnhex0mFm1BxYCeEx7xKzQ1po6NxzdlGYosdnG647RnUtd+HmnyvEj7 uvrA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681902627; x=1684494627; 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=IeP1c5FHkO2iYuai0o4JGoTDumRIxR3IsfyyPznXUZQ=; b=lftrJp8u2BSGvcuIbEoM/G/a+5IproN+BNi2Vile958YREEK3QWcxqW5nkGTbH2/ds mxxQWfdeaQNAKYJvjt4MXm29UQHkr48cZXYyhCijG5IpQuEPUpEx1mMSVD+zjZVplJZp JC/4FOL67gV4n/qdNVoSx7MuJBIBzd/r3BRj1dIzkqbczkBDd7Z+7E7acAtqK35l5D3/ 6V5/QHA2ZxZBG3c8nCbV0oSsFxPKAP79mOE2GpYd9Ao300IMn5GX972cWlC/g1gEtx4B wUPcLDR2IM6xv+vB71t11tS0fwzwvaf75YNZqUZdPKQnAeA5p+rsDIem56TZSXr2fYTy Qawg== X-Gm-Message-State: AAQBX9eeUUP8fvlmxg0HloDePV7c5y75ND2xsYk7J38u46L0azULsZqn CXsidOAjT6y7jQ1M42WuZ95VwQ== X-Received: by 2002:a17:903:11cf:b0:1a6:81bd:c4d9 with SMTP id q15-20020a17090311cf00b001a681bdc4d9mr5507947plh.39.1681902627683; Wed, 19 Apr 2023 04:10:27 -0700 (PDT) Received: from x1.hsd1.or.comcast.net ([2601:1c2:1800:f680:eaf2:1d7a:7338:16cb]) by smtp.gmail.com with ESMTPSA id g12-20020a1709026b4c00b001a24cded097sm11180774plt.236.2023.04.19.04.10.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Apr 2023 04:10:27 -0700 (PDT) From: Drew Fustini To: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Palmer Dabbelt , Paul Walmsley , Conor Dooley , Ved Shanbhogue , =?utf-8?q?Kornel_Dul=C4=99ba?= , Adrien Ricciardi , Nicolas Pitre , Fenghua Yu , Reinette Chatre , Babu Moger , Peter Newman , x86@kernel.org, Rob Herring , James Morse Cc: Drew Fustini Subject: [RFC PATCH 12/21] dt-bindings: riscv: add riscv,cbqri bindings Date: Wed, 19 Apr 2023 04:11:02 -0700 Message-Id: <20230419111111.477118-13-dfustini@baylibre.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230419111111.477118-1-dfustini@baylibre.com> References: <20230419111111.477118-1-dfustini@baylibre.com> MIME-Version: 1.0 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1763603345878030767?= X-GMAIL-MSGID: =?utf-8?q?1763603345878030767?= Document properties that can be used in the bindings for controllers that implement the RISC-V CBQRI specification. Co-developed-by: Adrien Ricciardi Signed-off-by: Adrien Ricciardi Signed-off-by: Drew Fustini --- .../bindings/riscv/riscv,cbqri.yaml | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 Documentation/devicetree/bindings/riscv/riscv,cbqri.yaml diff --git a/Documentation/devicetree/bindings/riscv/riscv,cbqri.yaml b/Documentation/devicetree/bindings/riscv/riscv,cbqri.yaml new file mode 100644 index 000000000000..3f017c6b1fb1 --- /dev/null +++ b/Documentation/devicetree/bindings/riscv/riscv,cbqri.yaml @@ -0,0 +1,28 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/riscv/riscv,cbqri.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: RISC-V Capacity and Bandwidth Register Interface (CBQRI) properties + +description: | + Common properties for cache and memory controllers that implement the + RISC-V CBQRI specification: + https://github.com/riscv-non-isa/riscv-cbqri/blob/main/riscv-cbqri.pdf + +maintainers: + - Drew Fustini + +properties: + riscv,cbqri-rcid: + $ref: /schemas/types.yaml#/definitions/uint32 + description: The maximum number of RCIDs the controller supports + + riscv,cbqri-mcid: + $ref: /schemas/types.yaml#/definitions/uint32 + description: The maximum number of MCIDs the controller supports + +additionalProperties: true + +... From patchwork Wed Apr 19 11:11:03 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Drew Fustini X-Patchwork-Id: 85334 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp305054vqo; Wed, 19 Apr 2023 04:20:23 -0700 (PDT) X-Google-Smtp-Source: AKy350bSxF59smxlQaCJ1f05Yi2qd8gI1Lxv59YYoBD2s0fJmljxDpcAsCmNFp3wlX8YVG7x9ZHV X-Received: by 2002:a05:6a00:1a8a:b0:627:ef8d:117a with SMTP id e10-20020a056a001a8a00b00627ef8d117amr3457629pfv.15.1681903223383; Wed, 19 Apr 2023 04:20:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681903223; cv=none; d=google.com; s=arc-20160816; b=0zmbLDi3qABgYgsVcUZ01WhTeF0W6rtV72BVxDT4mxM8YuhaVz+IbaVOoBx3AsuxyY I1Z6HeVqpsAOl67zd/pgCdNtyNo8g0MwM+yxHdjBYzYEtSN22LjREjwxfU/islfiHjvL jz/DNeDDhNckMwu3DWblbt3qapmYNS7mf3rvY78pbRSdv6UT40ZXqi76GGOgLj3dL7KN ZL1/oZXrgOH9mszl9n3BYSC4qYrcZ3ocY1fOgLBerptfXDyPOfdumNuZF98mrLzocM27 AhfT/NQQgvqsw1d+4dzqJnYLZiUEpGIjNtw5PbjWZlf80ePUBnfWCTzIrcmJhS6RiQw2 mr1g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=HCr/XD0oj4/oPWH13NzthrUuXXX/7UUm/KiUydqd3Cw=; b=JZIFFNxKOF/mASeOEU2FWYbLNl3cZIrfFHNHlzt9Z6gpur9tKC/v+jQeY2V6aifyhQ lxefTQ8gYEfLoFjexEB3/eoxf5qfTvE/eA4cPCcqqJ7+CjSJ2pf1A3hT3pnfjUJzZka7 UmG6ZSKUCYCxGL8nIQ6tkHLo7ofAE26+htX9BCIDK8JJo6uXtauf1bgJ1BsAwl0JUmfl qr9w4/3HMxyNCaIdamqNUfonSxxVTVYqbz9ILbArlM94drKV0myq7RYbqYCNZg4Ux6Kp jywd7sgjz13xBGADJU4aufNhGy1BpMbCahASo9B3UCFRnZ9rHalExz/tp1UiNBCfwcp3 4naw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b=aAPwq8SL; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 6-20020a631946000000b0051f547efbf6si3524456pgz.647.2023.04.19.04.20.09; Wed, 19 Apr 2023 04:20:23 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b=aAPwq8SL; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232990AbjDSLLs (ORCPT + 99 others); Wed, 19 Apr 2023 07:11:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38512 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232948AbjDSLLU (ORCPT ); Wed, 19 Apr 2023 07:11:20 -0400 Received: from mail-pl1-x631.google.com (mail-pl1-x631.google.com [IPv6:2607:f8b0:4864:20::631]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1C7F513F8D for ; Wed, 19 Apr 2023 04:10:38 -0700 (PDT) Received: by mail-pl1-x631.google.com with SMTP id d9443c01a7336-1a5197f00e9so30403785ad.1 for ; Wed, 19 Apr 2023 04:10:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20221208.gappssmtp.com; s=20221208; t=1681902629; x=1684494629; 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=HCr/XD0oj4/oPWH13NzthrUuXXX/7UUm/KiUydqd3Cw=; b=aAPwq8SLoEojqf4NHO3Fq0Ic/0+QaSA4EA9zAFf3kHDUX2voaRramQ8jdGtKzVoPbx hLWXAYGn/it0j+rhFp9uZZ8mKg2OcYP8EQFbNmn4OdAxK5bYiLFwjMg5GpBppnG96Z/4 pNSb46QlwFQuO/D8WH9DGcEuODlqBKQPMlFseu2hz+salHNUZ8p1Wy5D60h3JSb5edS1 VFmN/9xzQeyAcRFhvLLY5YCg0Y4bhZYIQjTCfrdFsQC27BhhP5IURYfb9Jf+MTOY59ZN vfNaXPcls+Qfcukd38Dfzi82cAxdVPVUshQpCQMfJPVDkJzVDZZOyiOrDa0CxTekRJC/ XS/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681902629; x=1684494629; 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=HCr/XD0oj4/oPWH13NzthrUuXXX/7UUm/KiUydqd3Cw=; b=GpH84uQvT+fH4rucGfJDxEc0QYbMSY5oqpWuXbsXWBxoXVj/VflwrSZS+A8qeUUDMO /FWGe3aWP2NaswdlsQUyi233xU3x+m0nxMkhJsqbFPdYsQmHGvHiFPGxDe3uWEAbFZq6 fRITxvP6IldTtexKUdSFHcNjbGY2qHTgo1u7b5rRAYtgnn7d0U0b47kG/t15Lzg4+m+L kipeLufmk4dXoUZThbD8vBCvnmF0/OAkVhPPcEvIdaWSvpWjbL9+iTgeUd/NE8qpYLWC pppNQAmB3m/f+5St1rPlrswJjhMHtDGqTlw//I3RKlLyx3aovFD/zGPCwlodCGNphfpd tw2w== X-Gm-Message-State: AAQBX9eKtspw2E+VLdWz+KTmSEEVMAUA+N/j0cx4pAT+6decVdiNU+5J 3eWoq4JOlP5j9ZMCJHv0GMQazg== X-Received: by 2002:a17:903:1c5:b0:19e:ecaf:c4b4 with SMTP id e5-20020a17090301c500b0019eecafc4b4mr6514342plh.4.1681902629140; Wed, 19 Apr 2023 04:10:29 -0700 (PDT) Received: from x1.hsd1.or.comcast.net ([2601:1c2:1800:f680:eaf2:1d7a:7338:16cb]) by smtp.gmail.com with ESMTPSA id g12-20020a1709026b4c00b001a24cded097sm11180774plt.236.2023.04.19.04.10.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Apr 2023 04:10:28 -0700 (PDT) From: Drew Fustini To: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Palmer Dabbelt , Paul Walmsley , Conor Dooley , Ved Shanbhogue , =?utf-8?q?Kornel_Dul=C4=99ba?= , Adrien Ricciardi , Nicolas Pitre , Fenghua Yu , Reinette Chatre , Babu Moger , Peter Newman , x86@kernel.org, Rob Herring , James Morse Cc: Drew Fustini Subject: [RFC PATCH 13/21] DO_NOT_MERGE dt-bindings: add foobar vendor-prefix Date: Wed, 19 Apr 2023 04:11:03 -0700 Message-Id: <20230419111111.477118-14-dfustini@baylibre.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230419111111.477118-1-dfustini@baylibre.com> References: <20230419111111.477118-1-dfustini@baylibre.com> MIME-Version: 1.0 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1763603354399466283?= X-GMAIL-MSGID: =?utf-8?q?1763603354399466283?= Add prefix for an example SoC vendor whose designs include controllers that implement CBQRI. Co-developed-by: Adrien Ricciardi Signed-off-by: Adrien Ricciardi Signed-off-by: Drew Fustini --- Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml index ed64e06ecca4..426f4eef06eb 100644 --- a/Documentation/devicetree/bindings/vendor-prefixes.yaml +++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml @@ -470,6 +470,8 @@ patternProperties: description: Shenzhen Fly Young Technology Co.,LTD. "^fii,.*": description: Foxconn Industrial Internet + "^foobar,.*": + description: Foobar Systems "^firefly,.*": description: Firefly "^focaltech,.*": From patchwork Wed Apr 19 11:11:04 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Drew Fustini X-Patchwork-Id: 85328 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp304685vqo; Wed, 19 Apr 2023 04:19:47 -0700 (PDT) X-Google-Smtp-Source: AKy350aU8eXa9FT3o75vLDsW3anR91Yr2rJxxeHKCXHaTqSRGPzJExbpHFiiiGwLCwktiPsfUQQT X-Received: by 2002:a17:90a:ba83:b0:247:4fe5:f09c with SMTP id t3-20020a17090aba8300b002474fe5f09cmr2363010pjr.15.1681903187582; Wed, 19 Apr 2023 04:19:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681903187; cv=none; d=google.com; s=arc-20160816; b=BZmhSXjrGVsEDvdbi3X4U8UniUNYQTUhs1MGnVkn142qunQFzWKgIU1WC1cGETM9ml oIXL2sYciyPIV466xMQcF1ZzrLX/nTeBFf54onmjsPeDli1I+l39NUIW9rDarVLMKDP4 lSTbsFxO7cCo2bmUlxi7X8xF2q8YgDB6Gc4wz0/UsmVEb9R5bp8IaKmfBo4qu2T6agTn NKbzSuRnerb6inB1UVBGtDXbZcfwoG8X7WuGaZYyYtwrNC/vRqCxpHGkZFOl9RcfN2K2 ViTo3xQQdMqFG0wvjbA0J8t8VpGafQxnMnZaAW1V6Ck1XzXhPQj0CqQCpJZarwNmQk72 br0w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=z6zQom7c9ZPxaL0AlvEMhKoZ47HVwA0KXR3RYZHyFgk=; b=qtIi1Ll06IsZEY2O3ujhY/N8IL9MCOH83l14E7TgwlI+2c1i9XtvTfTy/cgjtTK0d8 lXAGY8YdluxG5v914ZwNsYBDgpGfVpXt4idmg6+KceF1sw1mt5F/z1UjenmRVQpI6C20 ERszC4pDmXUcdi160pk6WmKN0HQNwJ6ZibBZEkwOkMTSBSGIXGrH5PhMdKhcSLOqfYZm mJg5xg001MroT2bpcr5ihCC4gIK1kTOxUTluwpYs2M0a3Au6wDwyfhrhd8JIxM8rd1k4 +xWDSU7cix8LLNUp2dtUrcganBGXuTvWNteNPAE1rRxNiDVRGopVPFnLzbEKUQ/KUyDh MqJA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b=way4ScdI; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id b7-20020a17090ae38700b00247498bcea7si1597954pjz.107.2023.04.19.04.19.34; Wed, 19 Apr 2023 04:19:47 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b=way4ScdI; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233060AbjDSLLy (ORCPT + 99 others); Wed, 19 Apr 2023 07:11:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38672 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232949AbjDSLLU (ORCPT ); Wed, 19 Apr 2023 07:11:20 -0400 Received: from mail-pf1-x42d.google.com (mail-pf1-x42d.google.com [IPv6:2607:f8b0:4864:20::42d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6193B13F9F for ; Wed, 19 Apr 2023 04:10:38 -0700 (PDT) Received: by mail-pf1-x42d.google.com with SMTP id d2e1a72fcca58-63b73203e0aso15253989b3a.1 for ; Wed, 19 Apr 2023 04:10:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20221208.gappssmtp.com; s=20221208; t=1681902630; x=1684494630; 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=z6zQom7c9ZPxaL0AlvEMhKoZ47HVwA0KXR3RYZHyFgk=; b=way4ScdIS96YRKdHcgBpyse+tOSSXOie7JmzQ3ruykWd+bvImdobFO37hhT77+L3/U kaqojTkCN3wGLtbhwA90MgVOAgFVGf4Dedela1TNzHBvJRZjXQSXWFwPwduhVj6TPdzX GIc+Nuk7F+h6MKBmdyl2qvDlk02/j2I47Ppo5mo1ZpuQIvpD572EFN7U+sOSUY8XSxOw WOi4FCrreEQEdHwpWijIg+JK2+Lnl3ALjpm7l3mTxtaHBsOCVR7Bn5fo01aFxF/GJUow MnGtG2IiDAagEyhqLKjTxyj+uGdYLVG4BA2My74jN6jA7ZYKA/Gg5Wy1kJphb7t+NVe8 GiJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681902630; x=1684494630; 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=z6zQom7c9ZPxaL0AlvEMhKoZ47HVwA0KXR3RYZHyFgk=; b=Fw6yQt10IeI7NtFy+ZHFZSQ3V6hWjQpRbrL/3ftJRYBKF0BGxeZzGpbx9L3l1zKc5a r79WBkjbVPppV0tCtcRQm/qGiPS35/8TmPqlPT8efRJMYGvtL+6NZM2pNh1IaY1EEQSP a1UrNUD52AnH/gw7m6s107Tl+WBRc+sz8sXS6/b6iwmgR2EEBXRTMaJINUCp0cgSiv9U 7N638RPC/l+kbgQRHi97hCuLfP9AcLR+FAZR7UeEW1b8hHGwDuMh2+a/0cHMaiJ6Epd4 EnsGm+rGLle0UrcRlDSK6VjUnXCVvHz1RwtW0KlLNwn+MpfpIHVcZlr8E0Qv//4vLuX3 hcSQ== X-Gm-Message-State: AAQBX9frQqR6Y8662fCT5ZaCPk1aXUm7yW3pet4rBFhn8GAeU8dwGKYF j2qtgUERXCGaipORU5yy9IGmlQ== X-Received: by 2002:a17:902:dad0:b0:1a2:a904:c42e with SMTP id q16-20020a170902dad000b001a2a904c42emr1574829plx.24.1681902630432; Wed, 19 Apr 2023 04:10:30 -0700 (PDT) Received: from x1.hsd1.or.comcast.net ([2601:1c2:1800:f680:eaf2:1d7a:7338:16cb]) by smtp.gmail.com with ESMTPSA id g12-20020a1709026b4c00b001a24cded097sm11180774plt.236.2023.04.19.04.10.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Apr 2023 04:10:29 -0700 (PDT) From: Drew Fustini To: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Palmer Dabbelt , Paul Walmsley , Conor Dooley , Ved Shanbhogue , =?utf-8?q?Kornel_Dul=C4=99ba?= , Adrien Ricciardi , Nicolas Pitre , Fenghua Yu , Reinette Chatre , Babu Moger , Peter Newman , x86@kernel.org, Rob Herring , James Morse Cc: Drew Fustini Subject: [RFC PATCH 14/21] DO_NOT_MERGE dt-bindings: soc: add Foobar SoC cache controller Date: Wed, 19 Apr 2023 04:11:04 -0700 Message-Id: <20230419111111.477118-15-dfustini@baylibre.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230419111111.477118-1-dfustini@baylibre.com> References: <20230419111111.477118-1-dfustini@baylibre.com> MIME-Version: 1.0 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1763603316851968577?= X-GMAIL-MSGID: =?utf-8?q?1763603316851968577?= Add bindings for an example SoC cache controller that implements CBQRI. Co-developed-by: Adrien Ricciardi Signed-off-by: Adrien Ricciardi Signed-off-by: Drew Fustini --- .../soc/foobar/foobar,cache-controller.yaml | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 Documentation/devicetree/bindings/soc/foobar/foobar,cache-controller.yaml diff --git a/Documentation/devicetree/bindings/soc/foobar/foobar,cache-controller.yaml b/Documentation/devicetree/bindings/soc/foobar/foobar,cache-controller.yaml new file mode 100644 index 000000000000..6348483bbe09 --- /dev/null +++ b/Documentation/devicetree/bindings/soc/foobar/foobar,cache-controller.yaml @@ -0,0 +1,51 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/soc/foobar/foobar,cache-controller.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Foobar SoC Cache Controller + +maintainers: + - Drew Fustini + +description: + Foobar SoC cache controller implements the RISC-V CBQRI interface for + capacity allocaiton and usage monitoring. + +allOf: + - $ref: /schemas/cache-controller.yaml# + - $ref: /schemas/riscv/riscv,cbqri.yaml# + +properties: + compatible: + items: + - const: foobar,cache-controller + reg: + maxItems: 1 + description: A memory region containing registers as defined in CBQRI spec + + '#address-cells': + const: 1 + + '#size-cells': + const: 0 + +required: + - compatible + - reg + +additionalProperties: false + +examples: + - | + + cache-controller@fff12000 { + compatible = "foobar,cache-controller"; + reg = <0xfff12000 0x2000>; + cache-level = <2>; + riscv,cbqri-rcid = <64>; + riscv,cbqri-mcid = <256>; + }; + +... From patchwork Wed Apr 19 11:11:05 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Drew Fustini X-Patchwork-Id: 85322 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp303495vqo; Wed, 19 Apr 2023 04:17:35 -0700 (PDT) X-Google-Smtp-Source: AKy350aATBviOJPcXnzRuY1QEciqH+Lw8ZYMGq3OdSsh1wElASW6jgZZAvlEAIdGY6Mf0/3+/R/s X-Received: by 2002:a17:90a:a883:b0:247:9faa:92 with SMTP id h3-20020a17090aa88300b002479faa0092mr2590082pjq.42.1681903055658; Wed, 19 Apr 2023 04:17:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681903055; cv=none; d=google.com; s=arc-20160816; b=bmYCe75YheWLToG6/4nyFAODT8AZLeyEUIOTtXLeJwCshB1fSQQ+29WGM0jx/Pv3xn th06twtzm4pxyAJ/GH2EUDplK7aZ1WMp/wHlbD8qpswom0HSwuBUuXBSBfFV+5JFuoeF s7zo4REnzDhkWazCfcazkt6lL7zVUna42CR+o+FeeeP0vJyJLrBDj9gJ845aTW0SJcAM g1Q/6nPH7m47y+KpfvfpHyr6JCPUUR9VLqe2030jJCVklDw0fJCUGJhNC36pWKycXyF+ 4elFy6PxyK6ndl4V0pYvkePDySZbqX1Po0c/XP0USF0IFduSpaBf7zT46qXSEMFltX4t XOwg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=hTUdiTLb+sfXCVtetWlAgKKAKfkEOw5o717LduaEZcE=; b=aB+2t6iqG+89rPiVCmPc86Vpkc32f6CX4t59DuP9feAAoChskaGroVwEn7qaPNfVqW kp+LsJKQBxGVa5l67qPq+4iHKpZ0S8a+5szAGeiy29O9QEgIXlmFOLD7BkWx1tad3IW5 Z9lLTJ8f7JhRcfdz5SsXyyRmLmAwTQb1bNP2TJas0KWOAfCxr5nVz/PuiZSEITuh4+lZ YvInZQyKArCyOytWru+BOC0g0e8aCBqPHQuyq+arHYRfUFl4xSumrp5Ly5KGxVImKaHU aF4/9z4m1JG9Kf3/Xfc22awKYBK68G1a1atyLlRqG/OrbpUkO3qM9RdTN0B/ZNUiKJvv kWdA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b=xsELkwof; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id oo1-20020a17090b1c8100b002470264eb50si1653712pjb.169.2023.04.19.04.17.22; Wed, 19 Apr 2023 04:17:35 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b=xsELkwof; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233001AbjDSLMD (ORCPT + 99 others); Wed, 19 Apr 2023 07:12:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38712 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232953AbjDSLLV (ORCPT ); Wed, 19 Apr 2023 07:11:21 -0400 Received: from mail-pl1-x62a.google.com (mail-pl1-x62a.google.com [IPv6:2607:f8b0:4864:20::62a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 70E6E13FAD for ; Wed, 19 Apr 2023 04:10:40 -0700 (PDT) Received: by mail-pl1-x62a.google.com with SMTP id d9443c01a7336-1a52667955dso35501915ad.1 for ; Wed, 19 Apr 2023 04:10:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20221208.gappssmtp.com; s=20221208; t=1681902632; x=1684494632; 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=hTUdiTLb+sfXCVtetWlAgKKAKfkEOw5o717LduaEZcE=; b=xsELkwofXkO/cQsRhRzGSc4LNBA8d5ZwB4JnQLYCH4ZaGVuBP+nbM8feALhCz/sIMz MyuAV7iJQoGOCditkX7ry8YYdS0Nawh0XkuVc25RdlnISTlsepB5DEmsSviF6P1Gq8W4 sluFvFa7S6qFMHylgIRnoWU+6wHZRBJBUaeX7Sg9yxxQWXO1Q99it5uMYgycZZad/mrL L8gpu72e7D0hEFnYS3yPVgIo9Q/KR5HvUJJ8GoySwWCZyTXYyPT6AAPNupIgcX6fR6M5 jjYX2ppBNUoKa7qiG/Pd8D5X9175xTqsx/8xUD1d+dBmEDXhg71wkyYYTOIWDsckkHdb 50sA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681902632; x=1684494632; 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=hTUdiTLb+sfXCVtetWlAgKKAKfkEOw5o717LduaEZcE=; b=k6ZKBUWBof64kBxTSyCMk/O3cG4vjLI0OU3i/zOKExiIgQQW3TRGX3sNTJJ7rylBN2 GbsOfqGNpyKvlb7syq9j9eh+KlNB8bf34SndEjNeEQLrPH+uxA+H7bg2zD9fOUVtTkcY yD/7u9RVWM0MDi70lOfK7fZXsShz+ZzFvSCzLwCZZ6ll3zLx1rG5v0BVLVdvGYuvrS4J BShHm70AcY+yeoHFvsOilZC8hzpMU0MEtudrQKe0F08WvUCWYU1xRfLpxvuamZ8KlocV YPFGgTSt7dJks43X4p1qw8zKTNBTDf1Cawk//h2ftwZyf92kkuXboesGvfjBwAorOau5 +iOQ== X-Gm-Message-State: AAQBX9cMxrkE4c6TnSlgdOFhcSkaUm0uvAqEa90P/U0k1rk2GH/DXyaB qEtXrEXDFkrgBdNILyKOB+H98YHQZWrn7z9iEQM= X-Received: by 2002:a17:902:b60a:b0:1a5:5e7:a1cc with SMTP id b10-20020a170902b60a00b001a505e7a1ccmr4412371pls.58.1681902631792; Wed, 19 Apr 2023 04:10:31 -0700 (PDT) Received: from x1.hsd1.or.comcast.net ([2601:1c2:1800:f680:eaf2:1d7a:7338:16cb]) by smtp.gmail.com with ESMTPSA id g12-20020a1709026b4c00b001a24cded097sm11180774plt.236.2023.04.19.04.10.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Apr 2023 04:10:31 -0700 (PDT) From: Drew Fustini To: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Palmer Dabbelt , Paul Walmsley , Conor Dooley , Ved Shanbhogue , =?utf-8?q?Kornel_Dul=C4=99ba?= , Adrien Ricciardi , Nicolas Pitre , Fenghua Yu , Reinette Chatre , Babu Moger , Peter Newman , x86@kernel.org, Rob Herring , James Morse Cc: Drew Fustini Subject: [RFC PATCH 15/21] DO_NOT_MERGE dt-bindings: soc: add Foobar SoC memory controller Date: Wed, 19 Apr 2023 04:11:05 -0700 Message-Id: <20230419111111.477118-16-dfustini@baylibre.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230419111111.477118-1-dfustini@baylibre.com> References: <20230419111111.477118-1-dfustini@baylibre.com> MIME-Version: 1.0 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1763603178386391869?= X-GMAIL-MSGID: =?utf-8?q?1763603178386391869?= Add bindings for an example SoC memory controller that implements CBQRI. Co-developed-by: Adrien Ricciardi Signed-off-by: Adrien Ricciardi Signed-off-by: Drew Fustini --- .../soc/foobar/foobar,memory-controller.yaml | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 Documentation/devicetree/bindings/soc/foobar/foobar,memory-controller.yaml diff --git a/Documentation/devicetree/bindings/soc/foobar/foobar,memory-controller.yaml b/Documentation/devicetree/bindings/soc/foobar/foobar,memory-controller.yaml new file mode 100644 index 000000000000..859ee52680d5 --- /dev/null +++ b/Documentation/devicetree/bindings/soc/foobar/foobar,memory-controller.yaml @@ -0,0 +1,49 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/soc/foobar/foobar,memory-controller.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Foobar SoC Memory Controller + +maintainers: + - Drew Fustini + +description: + Foobar SoC memory controller implements the RISC-V CBQRI interface for + capacity allocaiton and usage monitoring. + +allOf: + - $ref: /schemas/riscv/riscv,cbqri.yaml# + +properties: + compatible: + items: + - const: foobar,memory-controller + reg: + maxItems: 1 + description: A memory region containing registers as defined in CBQRI spec + + '#address-cells': + const: 1 + + '#size-cells': + const: 0 + +required: + - compatible + - reg + +additionalProperties: false + +examples: + - | + + memory-controller@fff12000 { + compatible = "foobar,memory-controller"; + reg = <0xfff12000 0x2000>; + riscv,cbqri-rcid = <64>; + riscv,cbqri-mcid = <256>; + }; + +... From patchwork Wed Apr 19 11:11:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Drew Fustini X-Patchwork-Id: 85327 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp304653vqo; Wed, 19 Apr 2023 04:19:44 -0700 (PDT) X-Google-Smtp-Source: AKy350YF481QgxQyJtRVeVlgwz4qbgtz9N+jmEN4oSPpUuSCCBqGZbkCQaVRx8hN/SgA1PklMOaM X-Received: by 2002:a17:90a:6fe1:b0:23d:29c7:916f with SMTP id e88-20020a17090a6fe100b0023d29c7916fmr2497223pjk.32.1681903184328; Wed, 19 Apr 2023 04:19:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681903184; cv=none; d=google.com; s=arc-20160816; b=eJF+XtCe4gwg4WsGBHaT7ESWUMBdS9Tg7fSyNE8lYEuTyy9uHLtdWHsRMTHHiFxwQc WtTvjixIi93u6rUalML0lIm/91IKtXsFWgNfWdp7NNDSsmiet9rnPUUQO5LusKXE8yZ2 RJtdWQ8IoztQJm05k8FPOlBuDoBaXBOgxr8PbIsmperkyKqNq2lwNYvy36QYD8fq6/50 WhlhJpnCrkoFRkwVBi31S4ReKAeCB1voa26cgXVQBJs3KcUN2OxD505WHY2Qv2Aw46Nc bi/nupTpKHklALhbjghGk+9NYWtPb4XhGbFH1GIzrdawrNBFXLc2wAeCFyfQG+RStEwh 1s1A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=4KIa9LYf0ODhdzKLybQD/gUKKX1O1GxO+uhQNo6blW0=; b=aTREhQ7R6Z3aDOpKUmBwmp7pgMlK7F0zuWjXtRKYRKXIu+Xh49ovZbK3bD7ekLnDL/ aZzsDTaNqiA3wKqusXg8c7ML6bFaxU1Gj1xCyJJUx18xihXmQ+jJWv64zAtX5a9lzKP/ Lp7TN1cs0WSR/dCretFVIztqbiuqssyGYDY72GxfXLfrwohMidFIhxG+6XvPA5hdn896 MTA+MDHD5Oa8XUSr4sF3SuTBCYGXs6RoRDyevEq7ghxzIO0yWBXIYK4WLhYstW+zKQFy ajwLEoa002rSxL6gKf+GW8IJrOhWwuE4B2h1WQADVlNPZMiksHg7jYkZ21ASprlFZxGn Kjig== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b=pUSEDOCW; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id mh6-20020a17090b4ac600b00226e01736f8si1752576pjb.109.2023.04.19.04.19.09; Wed, 19 Apr 2023 04:19:44 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b=pUSEDOCW; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233067AbjDSLL6 (ORCPT + 99 others); Wed, 19 Apr 2023 07:11:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38608 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232950AbjDSLLV (ORCPT ); Wed, 19 Apr 2023 07:11:21 -0400 Received: from mail-pl1-x62b.google.com (mail-pl1-x62b.google.com [IPv6:2607:f8b0:4864:20::62b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7103913FAE for ; Wed, 19 Apr 2023 04:10:40 -0700 (PDT) Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-1a667067275so25322215ad.1 for ; Wed, 19 Apr 2023 04:10:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20221208.gappssmtp.com; s=20221208; t=1681902633; x=1684494633; 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=4KIa9LYf0ODhdzKLybQD/gUKKX1O1GxO+uhQNo6blW0=; b=pUSEDOCWgGuTM6CKmcMbLe7K+VOkG5kdfv7sgvZJDVGFEauQg8GskJ5TTq2rw1I6ez a4gXs8myGV03gRZXVVqsyS/7/8DH7w0epDUQ3fvNC7tevtjQjX0gSYw70qXumUZaaFa6 DH6lCMZCnrzOYMP0MppSRHS0q2PYutLF7G3iwmA9AWub3Qok28lGtTEQVcvehX88Kxzj U+7U70eWTaa3h+dXWUwmrKUrXXA+R4glloG/L9M30GuYrk6RwK0JTFwq/4BqBd86WiG4 uowQOItfzun2u7UVpigFCvFhsY+Q4pjh4qafYnaUIgZfcaXOcwVTIOfBSzvLVMchFfCU MtXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681902633; x=1684494633; 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=4KIa9LYf0ODhdzKLybQD/gUKKX1O1GxO+uhQNo6blW0=; b=EbzmIGwVOeHMzWt8AddyLAli9L2irxT9VLZLvtGUtJBKrFQp3H0Fg5UKCXrz3DSY/n cAxJJVnMM8h711vfwUYVavvDCvBTxHalvcY6lqaVhO3tKXU3O62SiMn0kdYZg+K3s3F7 ZtSmiudIJn0erSNf8OcqiuA4IyFGpZyTVru7wZIA9aUlCN9+bMkA1QcWXeTlQYCUDm0K 4n26z0raHzlKf1QME03Ef1KaVR8qC/zt062UjReik1NlR3c/tFrYSP+af0KJY+xrT7z3 PjgmC90wQkKKUDVOCOeIufhFUXK61+PJUXjHRAav1j0sb0J2WvZ1wqp+xptRsT10ckog XlXw== X-Gm-Message-State: AAQBX9cvC5GprTW++emY12qb0478d1GHttw8QapZLDMP+iSdp0pxXTh6 0odigTKCePdFUwbGGrkxL8wGrw== X-Received: by 2002:a17:902:d4c6:b0:1a6:523c:8583 with SMTP id o6-20020a170902d4c600b001a6523c8583mr5718626plg.68.1681902633050; Wed, 19 Apr 2023 04:10:33 -0700 (PDT) Received: from x1.hsd1.or.comcast.net ([2601:1c2:1800:f680:eaf2:1d7a:7338:16cb]) by smtp.gmail.com with ESMTPSA id g12-20020a1709026b4c00b001a24cded097sm11180774plt.236.2023.04.19.04.10.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Apr 2023 04:10:32 -0700 (PDT) From: Drew Fustini To: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Palmer Dabbelt , Paul Walmsley , Conor Dooley , Ved Shanbhogue , =?utf-8?q?Kornel_Dul=C4=99ba?= , Adrien Ricciardi , Nicolas Pitre , Fenghua Yu , Reinette Chatre , Babu Moger , Peter Newman , x86@kernel.org, Rob Herring , James Morse Cc: Drew Fustini Subject: [RFC PATCH 16/21] DO_NOT_MERGE soc: add Foobar SoC cache controller driver Date: Wed, 19 Apr 2023 04:11:06 -0700 Message-Id: <20230419111111.477118-17-dfustini@baylibre.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230419111111.477118-1-dfustini@baylibre.com> References: <20230419111111.477118-1-dfustini@baylibre.com> MIME-Version: 1.0 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1763603313392141403?= X-GMAIL-MSGID: =?utf-8?q?1763603313392141403?= Add example driver for a cache controller that implements CBQRI. Co-developed-by: Adrien Ricciardi Signed-off-by: Adrien Ricciardi Signed-off-by: Drew Fustini --- drivers/soc/foobar/foobar_cbqri_cache.c | 110 ++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 drivers/soc/foobar/foobar_cbqri_cache.c diff --git a/drivers/soc/foobar/foobar_cbqri_cache.c b/drivers/soc/foobar/foobar_cbqri_cache.c new file mode 100644 index 000000000000..e880488243d8 --- /dev/null +++ b/drivers/soc/foobar/foobar_cbqri_cache.c @@ -0,0 +1,110 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Foobar Systems CBQRI cache controller + */ + +#define pr_fmt(fmt) "foobar-cache: " fmt + +#include +#include +#include + +static const struct of_device_id foobar_cbqri_cache_ids[] = { + { .compatible = "foobar,cache-controller" }, + { } +}; + +static int __init foobar_cbqri_cache_init(void) +{ + struct device_node *np; + int err; + u32 value; + struct cbqri_controller_info *ctrl_info; + + for_each_matching_node(np, foobar_cbqri_cache_ids) { + if (!of_device_is_available(np)) { + of_node_put(np); + continue; + } + + ctrl_info = kzalloc(sizeof(*ctrl_info), GFP_KERNEL); + if (!ctrl_info) + goto err_node_put; + ctrl_info->type = CBQRI_CONTROLLER_TYPE_CAPACITY; + + err = of_property_read_u32_index(np, "reg", 1, &value); + if (err) { + pr_err("Failed to read reg base address (%d)", err); + goto err_kfree_ctrl_info; + } + ctrl_info->addr = value; + + err = of_property_read_u32_index(np, "reg", 3, &value); + if (err) { + pr_err("Failed to read reg size (%d)", err); + goto err_kfree_ctrl_info; + } + ctrl_info->size = value; + + err = of_property_read_u32(np, "cache-level", &value); + if (err) { + pr_err("Failed to read cache level (%d)", err); + goto err_kfree_ctrl_info; + } + ctrl_info->cache.cache_level = value; + + err = of_property_read_u32(np, "cache-size", &value); + if (err) { + pr_err("Failed to read cache size (%d)", err); + goto err_kfree_ctrl_info; + } + ctrl_info->cache.cache_size = value; + + err = of_property_read_u32(np, "riscv,cbqri-rcid", &value); + if (err) { + pr_err("Failed to read RCID count (%d)", err); + goto err_kfree_ctrl_info; + } + ctrl_info->rcid_count = value; + + err = of_property_read_u32(np, "riscv,cbqri-mcid", &value); + if (err) { + pr_err("Failed to read MCID count (%d)", err); + goto err_kfree_ctrl_info; + } + ctrl_info->mcid_count = value; + + /* + * For CBQRI, any cpu (technically a hart in RISC-V terms) + * can access the memory-mapped registers of any CBQRI + * controller in the system. Therefore, set the CPU mask + * to 'FF' to allow all 8 cores in the example Foobar SoC + */ + err = cpumask_parse("FF", &ctrl_info->cache.cpu_mask); + if (err) { + pr_err("Failed to convert cores mask string to cpumask (%d)", err); + goto err_kfree_ctrl_info; + } + + of_node_put(np); + + pr_debug("addr=0x%lx max-rcid=%u max-mcid=%u level=%d size=%u", + ctrl_info->addr, ctrl_info->rcid_count, ctrl_info->mcid_count, + ctrl_info->cache.cache_level, ctrl_info->cache.cache_size); + + /* Fill the list shared with RISC-V QoS resctrl */ + INIT_LIST_HEAD(&ctrl_info->list); + list_add_tail(&ctrl_info->list, &cbqri_controllers); + } + + return 0; + +err_kfree_ctrl_info: + kfree(ctrl_info); + +err_node_put: + of_node_put(np); + + return err; +} +device_initcall(foobar_cbqri_cache_init); From patchwork Wed Apr 19 11:11:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Drew Fustini X-Patchwork-Id: 85344 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp312044vqo; Wed, 19 Apr 2023 04:32:08 -0700 (PDT) X-Google-Smtp-Source: AKy350YP5kHnbHImdQlp14iUWSxgw6DlJuU8Xi20x7kAvTv0KysPeowSMf3xS9iExzSxgdsIIDaI X-Received: by 2002:a05:6a21:339a:b0:ec:e221:be4b with SMTP id yy26-20020a056a21339a00b000ece221be4bmr3403439pzb.21.1681903928019; Wed, 19 Apr 2023 04:32:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681903928; cv=none; d=google.com; s=arc-20160816; b=T1jlXgeJ+fGqQtohV9/e+MJlH5dApnH9i0unXMMwEbgaG6IWs79L8c3nSqSgvd1nro OU9TyeXgUs08LchmK/MTg0zzRzN9QNCClEwoNZFBthqgMyz9aSotmvLKu+bbPNCZZMsu 0nwoC2pOViwaqtVWzAJYz5PuBtK6T1n1JhS0G+3TiI96845hy76E67UAS7ccIrgOpqZ6 AHY4khHBwiIpEQ5T7nz1Uh4k20tc0zwQF6HQMU7R/wOCy8E2Kg/AJT/ZutIL0lBFprrl TrLG3QKfwuGn+HyLvCQGEDtv47Pl2ovszmlOKGsoEiNPDYpSL6sINAxjRmYq5cTQvz4H auVA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=8VRpPNkDuAyz+Ft5imrcs9KDU5p5mtKUYR9cIj3QRd4=; b=o+Iu9ba5dw1ixNcrMZ3zlVmP0OOQqXnKcRrfynRuUXnBW8x9aSZY9mLn+epQfAcFW0 qIho38F1wnmT2nOs9gcn23ssr/3zZib2ybIzA/DaHJ47CatiNBA6yg5eGp4s8bwEdqSO NIM+aVIDRpDejiz/YMF3oKbIeAYrEQyQweGR2cPqyEanvBDMwwwbgpU+BEfBBhOsuTH5 1WK2AVXf7wQPnj/L5lIjkBA/zn8bxTpAMRFoPb96gShDvMHC4UNuumV3GWgu929VSpmk eojYNWOiv6QS9ct9runNhc4FV3DL22PFMY/Ys357JHCjd0Zi+tQup+wtCvnbxWT8u5tW xsxA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b="x/8pGfsL"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id a21-20020a63e855000000b004fb33a76e2csi16863000pgk.834.2023.04.19.04.31.52; Wed, 19 Apr 2023 04:32:07 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b="x/8pGfsL"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233094AbjDSLMH (ORCPT + 99 others); Wed, 19 Apr 2023 07:12:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38616 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232954AbjDSLLV (ORCPT ); Wed, 19 Apr 2023 07:11:21 -0400 Received: from mail-pl1-x62f.google.com (mail-pl1-x62f.google.com [IPv6:2607:f8b0:4864:20::62f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D090DA256 for ; Wed, 19 Apr 2023 04:10:40 -0700 (PDT) Received: by mail-pl1-x62f.google.com with SMTP id d9443c01a7336-1a6ebc66ca4so14849545ad.3 for ; Wed, 19 Apr 2023 04:10:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20221208.gappssmtp.com; s=20221208; t=1681902634; x=1684494634; 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=8VRpPNkDuAyz+Ft5imrcs9KDU5p5mtKUYR9cIj3QRd4=; b=x/8pGfsLNTo4M60IL76aQ5x040uI2InLj1/EScIFp6VYlhbjP5l3eNVgN+y4avjRTt H5fzYWvVhJT2Rq7bzjd2zo6SGa9b70+iPd7q+BYZOfnbxUKSB2gBI+v9EID/w220Xv6A ogg1jlEVmqJYIyFKd2qTHBIQq91+m87zuaTfEpDGjS4JjD5plCp7XDP57KjGuKZ+kOiN SVYdRu2DZSdcypVQLwcCpNb8l4lKH0jilJ++oP1hk4KiAaDnMtqJcq8eN39x6hZzCeaP j6FiQUn7+p1qacItyHJxcwZOT4dU4m7qvkAF3FVlQoqYsjD4V5HP3V7p3ikdeOowNAkl 8kWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681902634; x=1684494634; 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=8VRpPNkDuAyz+Ft5imrcs9KDU5p5mtKUYR9cIj3QRd4=; b=UJDqwXHbQyurQINW5R0/7MTORD3H4DlttpBM9b8kk3HMN08fDkwfW1dKsBRbCH2dDB cqSStq8HzBDUqttLGn/Z+PI7g3k6a3nW91u98ZPUbRrTynjZeyT1Hc2PKMZGlJKgkEN1 /RsN7xpD0PQygAO5i2a6RUwyDdk4K6IObXHAodeyst7dqLZYXYH87CZ5WdUiMvISIWpl yTg1Z4KoVLhU9K+2FDQ6I5TX5XcCAhGjAjx2JecsrNhF94bhnEA9WYktL/EFU97tu+im +16kDREF7nmRToPb+ZOy8MpMokdjhaUCwANuzujdjLZBGKZ+IwRvleXddqEHfvJrP0We 3gWg== X-Gm-Message-State: AAQBX9fImShDoODop+gI/LxVGChbBsmjewnvwMPCpq1HA1w2rwSEYKKO sNSVLvuJ6XXFbbFGElAV6evUFQ== X-Received: by 2002:a17:902:db0f:b0:1a1:a9a4:ba26 with SMTP id m15-20020a170902db0f00b001a1a9a4ba26mr5908976plx.8.1681902634412; Wed, 19 Apr 2023 04:10:34 -0700 (PDT) Received: from x1.hsd1.or.comcast.net ([2601:1c2:1800:f680:eaf2:1d7a:7338:16cb]) by smtp.gmail.com with ESMTPSA id g12-20020a1709026b4c00b001a24cded097sm11180774plt.236.2023.04.19.04.10.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Apr 2023 04:10:33 -0700 (PDT) From: Drew Fustini To: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Palmer Dabbelt , Paul Walmsley , Conor Dooley , Ved Shanbhogue , =?utf-8?q?Kornel_Dul=C4=99ba?= , Adrien Ricciardi , Nicolas Pitre , Fenghua Yu , Reinette Chatre , Babu Moger , Peter Newman , x86@kernel.org, Rob Herring , James Morse Cc: Drew Fustini Subject: [RFC PATCH 17/21] DO_NOT_MERGE soc: add Foobar SoC memory controller driver Date: Wed, 19 Apr 2023 04:11:07 -0700 Message-Id: <20230419111111.477118-18-dfustini@baylibre.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230419111111.477118-1-dfustini@baylibre.com> References: <20230419111111.477118-1-dfustini@baylibre.com> MIME-Version: 1.0 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1763604093452732920?= X-GMAIL-MSGID: =?utf-8?q?1763604093452732920?= Add example driver for a SoC memory controller that implements CBQRI. Co-developed-by: Adrien Ricciardi Signed-off-by: Adrien Ricciardi Signed-off-by: Drew Fustini --- drivers/soc/foobar/foobar_cbqri_memory.c | 83 ++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 drivers/soc/foobar/foobar_cbqri_memory.c diff --git a/drivers/soc/foobar/foobar_cbqri_memory.c b/drivers/soc/foobar/foobar_cbqri_memory.c new file mode 100644 index 000000000000..0a0c542a25e1 --- /dev/null +++ b/drivers/soc/foobar/foobar_cbqri_memory.c @@ -0,0 +1,83 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Foobar Systems CBQRI memory controller + */ + +#define pr_fmt(fmt) "foobar-mem: " fmt + +#include +#include +#include + +static const struct of_device_id foobar_cbqri_memory_ids[] = { + { .compatible = "foobar,memory-controller" }, + { } +}; + +static int __init foobar_cbqri_memory_init(void) +{ + struct device_node *np; + int err; + u32 value; + struct cbqri_controller_info *ctrl_info; + + for_each_matching_node(np, foobar_cbqri_memory_ids) { + if (!of_device_is_available(np)) { + of_node_put(np); + continue; + } + + ctrl_info = kzalloc(sizeof(*ctrl_info), GFP_KERNEL); + if (!ctrl_info) + goto err_node_put; + ctrl_info->type = CBQRI_CONTROLLER_TYPE_BANDWIDTH; + + err = of_property_read_u32_index(np, "reg", 1, &value); + if (err) { + pr_err("Failed to read reg base address (%d)", err); + goto err_kfree_ctrl_info; + } + ctrl_info->addr = value; + + err = of_property_read_u32_index(np, "reg", 3, &value); + if (err) { + pr_err("Failed to read reg size (%d)", err); + goto err_kfree_ctrl_info; + } + ctrl_info->size = value; + + err = of_property_read_u32(np, "riscv,cbqri-rcid", &value); + if (err) { + pr_err("Failed to read RCID count (%d)", err); + goto err_kfree_ctrl_info; + } + ctrl_info->rcid_count = value; + + err = of_property_read_u32(np, "riscv,cbqri-mcid", &value); + if (err) { + pr_err("Failed to read MCID count (%d)", err); + goto err_kfree_ctrl_info; + } + ctrl_info->mcid_count = value; + + of_node_put(np); + + pr_debug("addr=0x%lx max-rcid=%u max-mcid=%u", ctrl_info->addr, + ctrl_info->rcid_count, ctrl_info->mcid_count); + + /* Fill the list shared with RISC-V QoS resctrl */ + INIT_LIST_HEAD(&ctrl_info->list); + list_add_tail(&ctrl_info->list, &cbqri_controllers); + } + + return 0; + +err_kfree_ctrl_info: + kfree(ctrl_info); + +err_node_put: + of_node_put(np); + + return err; +} +device_initcall(foobar_cbqri_memory_init); From patchwork Wed Apr 19 11:11:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Drew Fustini X-Patchwork-Id: 85326 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp304647vqo; Wed, 19 Apr 2023 04:19:43 -0700 (PDT) X-Google-Smtp-Source: AKy350b1/FGHfaRQFTzkyDkqJ5srSRpUUtRxfL2kJU5VbvFEi4BEwPFEQjl5fE9Q8VMQYDFS5MfJ X-Received: by 2002:a05:6a20:3d93:b0:d9:6660:8746 with SMTP id s19-20020a056a203d9300b000d966608746mr2679437pzi.18.1681903183589; Wed, 19 Apr 2023 04:19:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681903183; cv=none; d=google.com; s=arc-20160816; b=NYBtGHn4pfTdmZtFtdlZMt1OWKnRMBVEt3h5+uZNsrYbvAsq+me3Yv+RGZn0NjUuNA lb6D7/KaMn3srKdz/qo6mpbzoBRu/UNmcRXhn4TN9QX1TZDKPjbOoCORogIlAhQ6V9Sh L/T2FQVZIfWxoSnHFWbYH4wLMhgJaSxLv6ytneZ77ZPvCSxigoJ6DjX2CmOtMrM94Uyd ox4064z4sFrdKThRzfmuM8hiSaDthQfXe31a8WU2xW9blXhqxTXg1jR4wl4S7+bbNP6Z kpaYJyc4tsCDBJ2i7yg20axphKi68BtyAUykFGWYE1CDV1sFArDT2wc1QJQ0CIFtrJOZ 9OZQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=QMTmZYX45TS17GLlk7oZqME3pRStBNddDLQwkiv9SHY=; b=E7o8wYf87rGuZKpVAwjy9KkFYXNIJMdpoJi7FKXVz/kMle2QbKZiRLiV6RLO+Sun3p gaOMTcPO60PbHAeSqnXkd0qKMn/GWmfxuvrelEWq7w1PRrVEVXrnVlOFVQd1rcD/LML/ RKLv5RvqJd4yld5QTylToTtDk1R4zXsEUNfGCj+hB/c2c3rTiwc3Hatq7PtrPT8uPCfb rixEvyZWZppRY/1GY7aOmNDDK6npN4otS+G0SnM0nPzWIutgZYkRMoHh0P7OpQ8+pktM kiAfijqAge94BsodoMmEwLBYEUbqNjU1+0l3QUbSssyOW0WRqWmmv7k43SwojQgGruK5 2ZYQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b=46+5TNw+; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id t185-20020a6381c2000000b005030006a2desi3334489pgd.182.2023.04.19.04.19.19; Wed, 19 Apr 2023 04:19:43 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b=46+5TNw+; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233105AbjDSLMN (ORCPT + 99 others); Wed, 19 Apr 2023 07:12:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38718 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232890AbjDSLLV (ORCPT ); Wed, 19 Apr 2023 07:11:21 -0400 Received: from mail-pf1-x436.google.com (mail-pf1-x436.google.com [IPv6:2607:f8b0:4864:20::436]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7982713FB9 for ; Wed, 19 Apr 2023 04:10:41 -0700 (PDT) Received: by mail-pf1-x436.google.com with SMTP id d2e1a72fcca58-63d4595d60fso6108536b3a.0 for ; Wed, 19 Apr 2023 04:10:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20221208.gappssmtp.com; s=20221208; t=1681902635; x=1684494635; 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=QMTmZYX45TS17GLlk7oZqME3pRStBNddDLQwkiv9SHY=; b=46+5TNw+d2+58D3lEwkZD1Q8Gjos23n16w76kwCbjIECo1omLOWdsqJ46O7WHdtCVf D6qRVkiwMOMRAxvlv69gS5768jAdvZ3q7SLH2mCNoo7pA6DoTBc59/I15a15pUslSRDK /sazIdZh4izVkCBDGPfmF4UdHbNV47UlD3fcXsGPM4eRj25LcXDU0OhV/GDD0igGJuqH ml6QdIY3yH15VCschcFTjCoiOk0b8wP3ZHQkAxu3r7qM6fXIOAtfEp8TawssQfzZ+3jQ Pz4fkHwI1vBeH+6KTWIqpWvkeSeuRVl81TzDA/3EEnLNJgOPMIAgi3B1w0h0VX43lGZj JPxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681902635; x=1684494635; 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=QMTmZYX45TS17GLlk7oZqME3pRStBNddDLQwkiv9SHY=; b=c0KrounSb1pb/aU+QyqXHgtiv5yA/YBCj0mcXv4FbIxoUkgU90khQJyQ6lxZj0ib/5 bKEmirmnS2TmFHdQJDi+LMDCingrgg72OYQ6YOlRkcbcMCK86a/iZQgj90Fc2xRhQB/F CMdh3BCpcG4T8jp9TV8EutCgNLH8rGxW9E2NcCJk4qwJqnejMCWCWOrnjYl5Jmm37Mju 3TfjmMHDGZDQjHwDaIlBsiWibbeHU5wmpeSVLVo9ePRCwVzE73wZdgrxySRoBhmhWzW3 3q/X0KSu0vTMW6vy/iA3enDxgR74W92oGGrzfwW3525KsBDdq24/Jrq1xOcRpP/VyeAK uOGA== X-Gm-Message-State: AAQBX9e18TGrX5y2vmSJcHwP6NRdbJPYgMBv6ryNvOkSbX1W3EYlbVZp xaf3kZ4m0/YoGKfLZb/8XM1XpQ== X-Received: by 2002:a17:902:fb06:b0:1a2:89eb:3d1a with SMTP id le6-20020a170902fb0600b001a289eb3d1amr2109505plb.6.1681902635547; Wed, 19 Apr 2023 04:10:35 -0700 (PDT) Received: from x1.hsd1.or.comcast.net ([2601:1c2:1800:f680:eaf2:1d7a:7338:16cb]) by smtp.gmail.com with ESMTPSA id g12-20020a1709026b4c00b001a24cded097sm11180774plt.236.2023.04.19.04.10.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Apr 2023 04:10:35 -0700 (PDT) From: Drew Fustini To: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Palmer Dabbelt , Paul Walmsley , Conor Dooley , Ved Shanbhogue , =?utf-8?q?Kornel_Dul=C4=99ba?= , Adrien Ricciardi , Nicolas Pitre , Fenghua Yu , Reinette Chatre , Babu Moger , Peter Newman , x86@kernel.org, Rob Herring , James Morse Cc: Drew Fustini Subject: [RFC PATCH 18/21] DO_NOT_MERGE soc: build Foobar SoC drivers Date: Wed, 19 Apr 2023 04:11:08 -0700 Message-Id: <20230419111111.477118-19-dfustini@baylibre.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230419111111.477118-1-dfustini@baylibre.com> References: <20230419111111.477118-1-dfustini@baylibre.com> MIME-Version: 1.0 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1763603312553967430?= X-GMAIL-MSGID: =?utf-8?q?1763603312553967430?= Add Foobar SoC cache and memory controller drivers to the build. The hypothetical Foobar SoC serves as an example of an SoC with controllers that implement the RISC-V Capacity and Bandwidth QoS Register Interface (CBQRI) specification. Link: https://github.com/riscv-non-isa/riscv-cbqri/blob/main/riscv-cbqri.pdf Co-developed-by: Adrien Ricciardi Signed-off-by: Adrien Ricciardi Signed-off-by: Drew Fustini --- drivers/soc/Kconfig | 1 + drivers/soc/Makefile | 1 + drivers/soc/foobar/Kconfig | 21 +++++++++++++++++++++ drivers/soc/foobar/Makefile | 4 ++++ 4 files changed, 27 insertions(+) create mode 100644 drivers/soc/foobar/Kconfig create mode 100644 drivers/soc/foobar/Makefile diff --git a/drivers/soc/Kconfig b/drivers/soc/Kconfig index 4e176280113a..8578f8c607ff 100644 --- a/drivers/soc/Kconfig +++ b/drivers/soc/Kconfig @@ -8,6 +8,7 @@ source "drivers/soc/aspeed/Kconfig" source "drivers/soc/atmel/Kconfig" source "drivers/soc/bcm/Kconfig" source "drivers/soc/canaan/Kconfig" +source "drivers/soc/foobar/Kconfig" source "drivers/soc/fsl/Kconfig" source "drivers/soc/fujitsu/Kconfig" source "drivers/soc/imx/Kconfig" diff --git a/drivers/soc/Makefile b/drivers/soc/Makefile index 3b0f9fb3b5c8..37a77c2dab94 100644 --- a/drivers/soc/Makefile +++ b/drivers/soc/Makefile @@ -11,6 +11,7 @@ obj-y += bcm/ obj-$(CONFIG_SOC_CANAAN) += canaan/ obj-$(CONFIG_ARCH_DOVE) += dove/ obj-$(CONFIG_MACH_DOVE) += dove/ +obj-y += foobar/ obj-y += fsl/ obj-y += fujitsu/ obj-$(CONFIG_ARCH_GEMINI) += gemini/ diff --git a/drivers/soc/foobar/Kconfig b/drivers/soc/foobar/Kconfig new file mode 100644 index 000000000000..4548e822357e --- /dev/null +++ b/drivers/soc/foobar/Kconfig @@ -0,0 +1,21 @@ +# SPDX-License-Identifier: GPL-2.0 + +config FOOBAR_CBQRI_CACHE + bool "Foobar cache controller for RISC-V CBQRI testing" + default y + help + Support the cache controller in a hypothetical "Foobar" SoC that + implements the RISC-V Capacity and Bandwidth QoS Register Interface + (CBQRI) specification. + + If you do not care about testing RISC-V CBQRI, then choose 'N'. + +config FOOBAR_CBQRI_MEMORY + bool "Foobar memory controller for RISC-V CBQRI testing" + default y + help + Support the memory controller in a hypothetical "Foobar" SoC that + implements the RISC-V Capacity and Bandwidth QoS Register Interface + (CBQRI) specification. + + If you do not care about testing RISC-V CBQRI, then choose 'N'. diff --git a/drivers/soc/foobar/Makefile b/drivers/soc/foobar/Makefile new file mode 100644 index 000000000000..e4f34058e39e --- /dev/null +++ b/drivers/soc/foobar/Makefile @@ -0,0 +1,4 @@ +# SPDX-License-Identifier: GPL-2.0 + +obj-$(CONFIG_FOOBAR_CBQRI_CACHE) += foobar_cbqri_cache.o +obj-$(CONFIG_FOOBAR_CBQRI_MEMORY) += foobar_cbqri_memory.o From patchwork Wed Apr 19 11:11:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Drew Fustini X-Patchwork-Id: 85345 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp315408vqo; Wed, 19 Apr 2023 04:37:45 -0700 (PDT) X-Google-Smtp-Source: AKy350aHw5G9pvyMThZd51xusOI5QppzYt+LiiJVE84Z3Iv6OL9fElOQ2XodTDn5uRg/PoMbTUA8 X-Received: by 2002:a05:6a20:9144:b0:ef:d2c1:62a with SMTP id x4-20020a056a20914400b000efd2c1062amr3897823pzc.19.1681904265146; Wed, 19 Apr 2023 04:37:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681904265; cv=none; d=google.com; s=arc-20160816; b=DVJT8rXmrJAEYaA8gcQdOfSdvW25kYv2yrEepJJ6CY3WT4IllLMUtGjimE8KAmsv20 I98ki8leQEw5dQ3elVsHEK3ywi/Mt9WZ348idvS5aAZNEwVJH7pbtcYRlSCzLa8pwbu4 p58+3otkiV9KMWacZqMA1iz3CIVtlieiYyjP9K3S774wAvuM+njE2i+Sg6wvYq9fH8Jz Z0FTPpaxTlhvf5KHxuLOBL22V+HD8IkoDxw22luC60jfsQvxNX5UDoWSc6zbVoAfbx9n kcS1w0fQ3UFa8boWSk/kosMxeWGzbH0BajFMvVYgpdUvSBpVbH90JOyjdLnNxLml2hAo lcug== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=c7Svk0AxAB3qoYix/qOEG4Vz2rPPucsqQxdMzpYchZI=; b=wvPU3IsN9OTP/erqOjt6eVpqwIvt8QiX7e+bBeRLZrMwU3WDiaUYzn6GZM7/HlMSqJ xJw+Pwe4veK0RYTJaBmc/AwnmMrn6DHYDDj+e1eovDD4A/wyBZyeHueeBkUx0g8EUOQE 3l6mwHAX1a7nsCEc4cTbl5R4VdgrB4avNdHRZtFPQ/3rBUO2GsmsstySQAgKGjoOvX/Y Wb1kfASDqae75tDrqdpQwVW74y+IvoQk6kf4T9kr+aAgoK9SLp6004ReIPbbJBHbWfcn cUx/zcufZ4svnJ7QsnSjNOGTwkHmNeY7xwDqI6D/8XBKSX2liHnweu6f9f4139UkN/Ix IZ6Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b=XmTXt7Zq; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id l71-20020a63884a000000b0051b4f835d4dsi16028461pgd.515.2023.04.19.04.37.16; Wed, 19 Apr 2023 04:37:45 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b=XmTXt7Zq; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233111AbjDSLMS (ORCPT + 99 others); Wed, 19 Apr 2023 07:12:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38622 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232957AbjDSLLW (ORCPT ); Wed, 19 Apr 2023 07:11:22 -0400 Received: from mail-pf1-x42d.google.com (mail-pf1-x42d.google.com [IPv6:2607:f8b0:4864:20::42d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6D94813FBE for ; Wed, 19 Apr 2023 04:10:42 -0700 (PDT) Received: by mail-pf1-x42d.google.com with SMTP id d2e1a72fcca58-63b5c48ea09so2658986b3a.1 for ; Wed, 19 Apr 2023 04:10:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20221208.gappssmtp.com; s=20221208; t=1681902637; x=1684494637; 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=c7Svk0AxAB3qoYix/qOEG4Vz2rPPucsqQxdMzpYchZI=; b=XmTXt7ZqxWddAV0JDjC4c6Eovx0mOpcDKBV+L7pg9kHRvcw0NrF6W5p8otcbboa+62 0Yk50tsyKQO7E16Y/ShbQGi0tV2oXZlaNnHeVE6My6EBSsLfSGdR1+H6hWc/4acwEQ7I sWiwrUzhpp1UOdQZv3Ffz/odeJ0xUcVsv6OZr4R81gtBHSsPz8N3GNMSFdOKlQ1aHAs8 /spzVKy5R+TMO/mlwy+UzyNZCIWi2iWBDIZpNtT4Ax7/9NE7gFAnx/7iTw594j+hUdmv 76inOtM+g2caKo9rqPK7MQtjifRFGMhyGybonQmyu8ffgr+glE+3PiwJvmG3YUL2vKP6 mFvw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681902637; x=1684494637; 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=c7Svk0AxAB3qoYix/qOEG4Vz2rPPucsqQxdMzpYchZI=; b=Gr/LWDzMwrXAjSBUxbsEjQOM+ofwXJykELlF1L53RtBM2DcZM8K3LXpuUIjbkf/ToR PaDGVCnj9e4raCSGHKVYYqXpPt50UJevyMg1Uuha/KLLH+GEoKQ5l6DHDHjvJhR7Nr6q iANPQh+Tk5s+eZpYGG/59B8sX2VeZU5ykriap3JCHNQl1MXeGgCihlcA/xSIh/UDLs2w l+uNpNDwEwuxeSFcClANRixp/0JsFIxOiXC0yAFK8isUHl9u3KgfkHXC5YS+DlSftO86 z2IhiwGnuVfYJ50bz+AuxKvcQXqMZygk7pieKCoS49GpeGWz9Jb2ohchnnGGcLJGKhoB Rchg== X-Gm-Message-State: AAQBX9c07xgKk4N4bv8s4/lodpDzbL/iMg2fObclfNmivyg+CNX9SZwF AJy+/nZTCEVTrBtOiGLnrWxEPg== X-Received: by 2002:a17:903:294c:b0:1a6:ebc1:c54d with SMTP id li12-20020a170903294c00b001a6ebc1c54dmr4710186plb.30.1681902636996; Wed, 19 Apr 2023 04:10:36 -0700 (PDT) Received: from x1.hsd1.or.comcast.net ([2601:1c2:1800:f680:eaf2:1d7a:7338:16cb]) by smtp.gmail.com with ESMTPSA id g12-20020a1709026b4c00b001a24cded097sm11180774plt.236.2023.04.19.04.10.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Apr 2023 04:10:36 -0700 (PDT) From: Drew Fustini To: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Palmer Dabbelt , Paul Walmsley , Conor Dooley , Ved Shanbhogue , =?utf-8?q?Kornel_Dul=C4=99ba?= , Adrien Ricciardi , Nicolas Pitre , Fenghua Yu , Reinette Chatre , Babu Moger , Peter Newman , x86@kernel.org, Rob Herring , James Morse Cc: Drew Fustini Subject: [RFC PATCH 19/21] DO_NOT_MERGE riscv: dts: qemu: add dump from riscv-cbqri-rfc Date: Wed, 19 Apr 2023 04:11:09 -0700 Message-Id: <20230419111111.477118-20-dfustini@baylibre.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230419111111.477118-1-dfustini@baylibre.com> References: <20230419111111.477118-1-dfustini@baylibre.com> MIME-Version: 1.0 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1763604446616290017?= X-GMAIL-MSGID: =?utf-8?q?1763604446616290017?= Dumped dtb from qemu branch riscv-cbqri-rfc which is on top of qemu master (tag: v8.0.0-rc4) with qemu/VERSION of 7.2.94 invoked with: qemu-system-riscv64 \ -M virt \ -nographic \ -smp 8 \ -bios output/images/fw_jump.elf \ -kernel $HOME/kernel/cbqri-linux/arch/riscv/boot/Image \ -append "root=/dev/vda ro" \ -drive file=output/images/rootfs.ext2,format=raw,id=hd0 \ -device virtio-blk-device,drive=hd0 \ -machine dumpdtb=qemu.dtb Link: https://gitlab.baylibre.com/baylibre/qemu/-/tree/riscv-cbqri-rfc Co-developed-by: Adrien Ricciardi Signed-off-by: Adrien Ricciardi Signed-off-by: Drew Fustini --- Note: this is necessary as Qemu branch riscv-cbqri-rfc does not yet support generating a dtb with the nodes and properties needed for CBQRI controllers. Thus, those lines must be added in the next patch and an external dtb (qemu-virt-cbqri.dtb) built by Linux is used when invoking qemu-system-riscv64 arch/riscv/boot/dts/qemu/qemu-virt-cbqri.dts | 371 +++++++++++++++++++ 1 file changed, 371 insertions(+) create mode 100644 arch/riscv/boot/dts/qemu/qemu-virt-cbqri.dts diff --git a/arch/riscv/boot/dts/qemu/qemu-virt-cbqri.dts b/arch/riscv/boot/dts/qemu/qemu-virt-cbqri.dts new file mode 100644 index 000000000000..400ed48a06af --- /dev/null +++ b/arch/riscv/boot/dts/qemu/qemu-virt-cbqri.dts @@ -0,0 +1,371 @@ +// SPDX-License-Identifier: GPL-2.0 OR MIT +/dts-v1/; + +/ { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "riscv-virtio"; + model = "riscv-virtio,qemu"; + + fw-cfg@10100000 { + dma-coherent; + reg = <0x00 0x10100000 0x00 0x18>; + compatible = "qemu,fw-cfg-mmio"; + }; + + flash@20000000 { + bank-width = <0x04>; + reg = <0x00 0x20000000 0x00 0x2000000 0x00 0x22000000 0x00 0x2000000>; + compatible = "cfi-flash"; + }; + + chosen { + bootargs = "root=/dev/vda ro ftrace=function_graph ftrace_filter=\"*resctrl*,*qos*\""; + rng-seed = <0xb87c09c5 0xc8f0c713 0x9c217b2a 0xa6f44e14 0xb6e99df6 0x205d482b 0x6d4c34f4 0x6466fc08>; + stdout-path = "/soc/serial@10000000"; + }; + + poweroff { + value = <0x5555>; + offset = <0x00>; + regmap = <0x12>; + compatible = "syscon-poweroff"; + }; + + reboot { + value = <0x7777>; + offset = <0x00>; + regmap = <0x12>; + compatible = "syscon-reboot"; + }; + + platform-bus@4000000 { + interrupt-parent = <0x11>; + ranges = <0x00 0x00 0x4000000 0x2000000>; + #address-cells = <0x01>; + #size-cells = <0x01>; + compatible = "qemu,platform\0simple-bus"; + }; + + memory@80000000 { + device_type = "memory"; + reg = <0x00 0x80000000 0x00 0x8000000>; + }; + + cpus { + #address-cells = <0x01>; + #size-cells = <0x00>; + timebase-frequency = <0x989680>; + + cpu@0 { + phandle = <0x0f>; + device_type = "cpu"; + reg = <0x00>; + status = "okay"; + compatible = "riscv"; + riscv,cboz-block-size = <0x40>; + riscv,cbom-block-size = <0x40>; + riscv,isa = "rv64imafdch_zicbom_zicboz_zicsr_zifencei_zihintpause_zawrs_zba_zbb_zbc_zbs_ssqosid_sstc_svadu"; + mmu-type = "riscv,sv57"; + + interrupt-controller { + #interrupt-cells = <0x01>; + interrupt-controller; + compatible = "riscv,cpu-intc"; + phandle = <0x10>; + }; + }; + + cpu@1 { + phandle = <0x0d>; + device_type = "cpu"; + reg = <0x01>; + status = "okay"; + compatible = "riscv"; + riscv,cboz-block-size = <0x40>; + riscv,cbom-block-size = <0x40>; + riscv,isa = "rv64imafdch_zicbom_zicboz_zicsr_zifencei_zihintpause_zawrs_zba_zbb_zbc_zbs_ssqosid_sstc_svadu"; + mmu-type = "riscv,sv57"; + + interrupt-controller { + #interrupt-cells = <0x01>; + interrupt-controller; + compatible = "riscv,cpu-intc"; + phandle = <0x0e>; + }; + }; + + cpu@2 { + phandle = <0x0b>; + device_type = "cpu"; + reg = <0x02>; + status = "okay"; + compatible = "riscv"; + riscv,cboz-block-size = <0x40>; + riscv,cbom-block-size = <0x40>; + riscv,isa = "rv64imafdch_zicbom_zicboz_zicsr_zifencei_zihintpause_zawrs_zba_zbb_zbc_zbs_ssqosid_sstc_svadu"; + mmu-type = "riscv,sv57"; + + interrupt-controller { + #interrupt-cells = <0x01>; + interrupt-controller; + compatible = "riscv,cpu-intc"; + phandle = <0x0c>; + }; + }; + + cpu@3 { + phandle = <0x09>; + device_type = "cpu"; + reg = <0x03>; + status = "okay"; + compatible = "riscv"; + riscv,cboz-block-size = <0x40>; + riscv,cbom-block-size = <0x40>; + riscv,isa = "rv64imafdch_zicbom_zicboz_zicsr_zifencei_zihintpause_zawrs_zba_zbb_zbc_zbs_ssqosid_sstc_svadu"; + mmu-type = "riscv,sv57"; + + interrupt-controller { + #interrupt-cells = <0x01>; + interrupt-controller; + compatible = "riscv,cpu-intc"; + phandle = <0x0a>; + }; + }; + + cpu@4 { + phandle = <0x07>; + device_type = "cpu"; + reg = <0x04>; + status = "okay"; + compatible = "riscv"; + riscv,cboz-block-size = <0x40>; + riscv,cbom-block-size = <0x40>; + riscv,isa = "rv64imafdch_zicbom_zicboz_zicsr_zifencei_zihintpause_zawrs_zba_zbb_zbc_zbs_ssqosid_sstc_svadu"; + mmu-type = "riscv,sv57"; + + interrupt-controller { + #interrupt-cells = <0x01>; + interrupt-controller; + compatible = "riscv,cpu-intc"; + phandle = <0x08>; + }; + }; + + cpu@5 { + phandle = <0x05>; + device_type = "cpu"; + reg = <0x05>; + status = "okay"; + compatible = "riscv"; + riscv,cboz-block-size = <0x40>; + riscv,cbom-block-size = <0x40>; + riscv,isa = "rv64imafdch_zicbom_zicboz_zicsr_zifencei_zihintpause_zawrs_zba_zbb_zbc_zbs_ssqosid_sstc_svadu"; + mmu-type = "riscv,sv57"; + + interrupt-controller { + #interrupt-cells = <0x01>; + interrupt-controller; + compatible = "riscv,cpu-intc"; + phandle = <0x06>; + }; + }; + + cpu@6 { + phandle = <0x03>; + device_type = "cpu"; + reg = <0x06>; + status = "okay"; + compatible = "riscv"; + riscv,cboz-block-size = <0x40>; + riscv,cbom-block-size = <0x40>; + riscv,isa = "rv64imafdch_zicbom_zicboz_zicsr_zifencei_zihintpause_zawrs_zba_zbb_zbc_zbs_ssqosid_sstc_svadu"; + mmu-type = "riscv,sv57"; + + interrupt-controller { + #interrupt-cells = <0x01>; + interrupt-controller; + compatible = "riscv,cpu-intc"; + phandle = <0x04>; + }; + }; + + cpu@7 { + phandle = <0x01>; + device_type = "cpu"; + reg = <0x07>; + status = "okay"; + compatible = "riscv"; + riscv,cboz-block-size = <0x40>; + riscv,cbom-block-size = <0x40>; + riscv,isa = "rv64imafdch_zicbom_zicboz_zicsr_zifencei_zihintpause_zawrs_zba_zbb_zbc_zbs_ssqosid_sstc_svadu"; + mmu-type = "riscv,sv57"; + + interrupt-controller { + #interrupt-cells = <0x01>; + interrupt-controller; + compatible = "riscv,cpu-intc"; + phandle = <0x02>; + }; + }; + + cpu-map { + + cluster0 { + + core0 { + cpu = <0x0f>; + }; + + core1 { + cpu = <0x0d>; + }; + + core2 { + cpu = <0x0b>; + }; + + core3 { + cpu = <0x09>; + }; + + core4 { + cpu = <0x07>; + }; + + core5 { + cpu = <0x05>; + }; + + core6 { + cpu = <0x03>; + }; + + core7 { + cpu = <0x01>; + }; + }; + }; + }; + + soc { + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "simple-bus"; + ranges; + + pmu { + riscv,event-to-mhpmcounters = <0x01 0x01 0x7fff9 0x02 0x02 0x7fffc 0x10019 0x10019 0x7fff8 0x1001b 0x1001b 0x7fff8 0x10021 0x10021 0x7fff8 0x00 0x00 0x00 0x00 0x00>; + compatible = "riscv,pmu"; + }; + + rtc@101000 { + interrupts = <0x0b>; + interrupt-parent = <0x11>; + reg = <0x00 0x101000 0x00 0x1000>; + compatible = "google,goldfish-rtc"; + }; + + serial@10000000 { + interrupts = <0x0a>; + interrupt-parent = <0x11>; + clock-frequency = "\08@"; + reg = <0x00 0x10000000 0x00 0x100>; + compatible = "ns16550a"; + }; + + test@100000 { + phandle = <0x12>; + reg = <0x00 0x100000 0x00 0x1000>; + compatible = "sifive,test1\0sifive,test0\0syscon"; + }; + + pci@30000000 { + interrupt-map-mask = <0x1800 0x00 0x00 0x07>; + interrupt-map = <0x00 0x00 0x00 0x01 0x11 0x20 0x00 0x00 0x00 0x02 0x11 0x21 0x00 0x00 0x00 0x03 0x11 0x22 0x00 0x00 0x00 0x04 0x11 0x23 0x800 0x00 0x00 0x01 0x11 0x21 0x800 0x00 0x00 0x02 0x11 0x22 0x800 0x00 0x00 0x03 0x11 0x23 0x800 0x00 0x00 0x04 0x11 0x20 0x1000 0x00 0x00 0x01 0x11 0x22 0x1000 0x00 0x00 0x02 0x11 0x23 0x1000 0x00 0x00 0x03 0x11 0x20 0x1000 0x00 0x00 0x04 0x11 0x21 0x1800 0x00 0x00 0x01 0x11 0x23 0x1800 0x00 0x00 0x02 0x11 0x20 0x1800 0x00 0x00 0x03 0x11 0x21 0x1800 0x00 0x00 0x04 0x11 0x22>; + ranges = <0x1000000 0x00 0x00 0x00 0x3000000 0x00 0x10000 0x2000000 0x00 0x40000000 0x00 0x40000000 0x00 0x40000000 0x3000000 0x04 0x00 0x04 0x00 0x04 0x00>; + reg = <0x00 0x30000000 0x00 0x10000000>; + dma-coherent; + bus-range = <0x00 0xff>; + linux,pci-domain = <0x00>; + device_type = "pci"; + compatible = "pci-host-ecam-generic"; + #size-cells = <0x02>; + #interrupt-cells = <0x01>; + #address-cells = <0x03>; + }; + + virtio_mmio@10008000 { + interrupts = <0x08>; + interrupt-parent = <0x11>; + reg = <0x00 0x10008000 0x00 0x1000>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@10007000 { + interrupts = <0x07>; + interrupt-parent = <0x11>; + reg = <0x00 0x10007000 0x00 0x1000>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@10006000 { + interrupts = <0x06>; + interrupt-parent = <0x11>; + reg = <0x00 0x10006000 0x00 0x1000>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@10005000 { + interrupts = <0x05>; + interrupt-parent = <0x11>; + reg = <0x00 0x10005000 0x00 0x1000>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@10004000 { + interrupts = <0x04>; + interrupt-parent = <0x11>; + reg = <0x00 0x10004000 0x00 0x1000>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@10003000 { + interrupts = <0x03>; + interrupt-parent = <0x11>; + reg = <0x00 0x10003000 0x00 0x1000>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@10002000 { + interrupts = <0x02>; + interrupt-parent = <0x11>; + reg = <0x00 0x10002000 0x00 0x1000>; + compatible = "virtio,mmio"; + }; + + virtio_mmio@10001000 { + interrupts = <0x01>; + interrupt-parent = <0x11>; + reg = <0x00 0x10001000 0x00 0x1000>; + compatible = "virtio,mmio"; + }; + + plic@c000000 { + phandle = <0x11>; + riscv,ndev = <0x5f>; + reg = <0x00 0xc000000 0x00 0x600000>; + interrupts-extended = <0x10 0x0b 0x10 0x09 0x0e 0x0b 0x0e 0x09 0x0c 0x0b 0x0c 0x09 0x0a 0x0b 0x0a 0x09 0x08 0x0b 0x08 0x09 0x06 0x0b 0x06 0x09 0x04 0x0b 0x04 0x09 0x02 0x0b 0x02 0x09>; + interrupt-controller; + compatible = "sifive,plic-1.0.0\0riscv,plic0"; + #address-cells = <0x00>; + #interrupt-cells = <0x01>; + }; + + clint@2000000 { + interrupts-extended = <0x10 0x03 0x10 0x07 0x0e 0x03 0x0e 0x07 0x0c 0x03 0x0c 0x07 0x0a 0x03 0x0a 0x07 0x08 0x03 0x08 0x07 0x06 0x03 0x06 0x07 0x04 0x03 0x04 0x07 0x02 0x03 0x02 0x07>; + reg = <0x00 0x2000000 0x00 0x10000>; + compatible = "sifive,clint0\0riscv,clint0"; + }; + }; +}; From patchwork Wed Apr 19 11:11:10 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Drew Fustini X-Patchwork-Id: 85349 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp318305vqo; Wed, 19 Apr 2023 04:42:44 -0700 (PDT) X-Google-Smtp-Source: AKy350YOvlWsd008CF+XMWp+6p+KGgOZAGq4abA9l1CUmJexn+A8Eo0b25Gge1idirWPhmxw2Ubz X-Received: by 2002:a17:903:2115:b0:1a6:87ae:542d with SMTP id o21-20020a170903211500b001a687ae542dmr4355066ple.48.1681904563988; Wed, 19 Apr 2023 04:42:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681904563; cv=none; d=google.com; s=arc-20160816; b=rugFWsT75rWfVqq8XQWc/kc3cW9u8ER5itYscnWEi/OYIqT1xRPLe8Ib+flJnm6giO WLxRbhM9s90GzONZMrMKAeKYmZ0hm/iPqHxw0aqjEuirXq09iLOO+5f0gO8jdZu/ouwN pZpqRHWO0GFyOlW4I1MlQpfdUvWtjhLPFJY1IApXF4qval3voTUeZp+PmvPSgQW9YjZ6 sbe9u5iNKjAc9MjnrZ3+0mbtRhjlCLxAlyGNo/6CBgw9sQR2qXKqFTHtChz/zKiIf2KB b4mshUHocFyodg+QXLeOZBcmP3+ybkbvm+67ri0mlS8XPrgZOzVhwGR3T8OjFO4d+ZcV Mv3A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=B4LpILR7uuc84V0nBeCkFyyltCgxgJA346GsW698exo=; b=sAiH1coGvs3X/UwSb0eXbCuVSdL03wu4AQokN7MiUZ09BnL+MnGtbMdqIE3JS458vJ fPJeXRSt3cJcWnxjJfT+Imc0OhmOwBefG8YFpr7O0HqLHNQAIy5tGYmhIpudta+CLDsq /FdJzp3ucRJxNNWPJyBA/ZhkSuO2UI9Z+vpztSHdmIu/UuFzXULfnu+hu3IHCDyybLCA iNJ9h8gGh19dnAU4ahfgbivJZCnOaPEittH/qzh7V7eoKhB59JNbwgcJdgHKhPhgTqrh JFlWHR8IieQYwrqMNv+d07b9HxrjyNoVzVQYm3jD+j1U4lQ4XZ1jRiqNNPllG374FqNF HVsw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b=t7Dv+2N+; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id b18-20020a170902d89200b001a67d992d80si15998571plz.563.2023.04.19.04.42.28; Wed, 19 Apr 2023 04:42:43 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b=t7Dv+2N+; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233097AbjDSLMK (ORCPT + 99 others); Wed, 19 Apr 2023 07:12:10 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38618 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232958AbjDSLLW (ORCPT ); Wed, 19 Apr 2023 07:11:22 -0400 Received: from mail-pl1-x633.google.com (mail-pl1-x633.google.com [IPv6:2607:f8b0:4864:20::633]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B26D113FBF for ; Wed, 19 Apr 2023 04:10:42 -0700 (PDT) Received: by mail-pl1-x633.google.com with SMTP id d9443c01a7336-1a682eee3baso19075985ad.0 for ; Wed, 19 Apr 2023 04:10:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20221208.gappssmtp.com; s=20221208; t=1681902638; x=1684494638; 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=B4LpILR7uuc84V0nBeCkFyyltCgxgJA346GsW698exo=; b=t7Dv+2N+QyIlF3rBqJ4Yw+dboRf/N5xEHL2v5J6yE8SzdkFIHKT+ft3xzMqnOvvWtG c73fE87KpwIAcE94sAtSve8nl4GaovkVh6Fn6Jc1trDM09dLWJtNDjrtNeeuNW43fLDq 4m51S9CKnzl0sMFYrEj7vzX2NwMCb50ZlvH26tOiItQ+Tcn2IJHg07eABhYBUNS/y0nj CJmXX3IjPKbMDGd+Wzd00nqNjBqs5zER84mmVHtQtveHb2wbk2U7Bs6lorj4N4OtdvXE izAooKlxyqE6K+IQdYgVU6POxvNISn+BRm1HTHKsOPAbta521PPxg8Ucog3XZMuI/yrr cOpQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681902638; x=1684494638; 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=B4LpILR7uuc84V0nBeCkFyyltCgxgJA346GsW698exo=; b=PilCoUAfUR/h1pmrF9O0JLLGFJRR3Z7SVV9B4adpDxJOnsnm7qeFSzVacEsBWd+lEq dvW5bWxa24zfav35vAWg4j4FpbiHbGow4gojZskyZYZmKClD0gYG8MQPlJ3zW4jCjQL4 TPf2gEl/IRn4llU3yns8aP/vvDreHUeUtt2vhhqFG9E/22x4mGMtFYlAgFTJfFapW8El hbIoKHJJciL2ECSQIXKsmfbWiYRTjqN+16LBSsQPHuGzTtPz5mCIt8vvQU1vw1eH4yag 5oEJIhm+x6nX4L0m377YuAHn1AiM6KSj4IhkNbbHBUu/fLPUuid/tAQ5nFa1HF21PqlX zrGg== X-Gm-Message-State: AAQBX9fOGqKtznrBfyLx92fDS8acBLHWlfQVXARghTgIfVyoNvNcecNF vb0jW5XFJoLwB9+IVwFi2Vt0uw== X-Received: by 2002:a17:902:f70f:b0:1a1:aa68:7e61 with SMTP id h15-20020a170902f70f00b001a1aa687e61mr5676956plo.33.1681902638229; Wed, 19 Apr 2023 04:10:38 -0700 (PDT) Received: from x1.hsd1.or.comcast.net ([2601:1c2:1800:f680:eaf2:1d7a:7338:16cb]) by smtp.gmail.com with ESMTPSA id g12-20020a1709026b4c00b001a24cded097sm11180774plt.236.2023.04.19.04.10.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Apr 2023 04:10:37 -0700 (PDT) From: Drew Fustini To: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Palmer Dabbelt , Paul Walmsley , Conor Dooley , Ved Shanbhogue , =?utf-8?q?Kornel_Dul=C4=99ba?= , Adrien Ricciardi , Nicolas Pitre , Fenghua Yu , Reinette Chatre , Babu Moger , Peter Newman , x86@kernel.org, Rob Herring , James Morse Cc: Drew Fustini Subject: [RFC PATCH 20/21] DO_NOT_MERGE riscv: dts: qemu: add cbqri-capable controllers Date: Wed, 19 Apr 2023 04:11:10 -0700 Message-Id: <20230419111111.477118-21-dfustini@baylibre.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230419111111.477118-1-dfustini@baylibre.com> References: <20230419111111.477118-1-dfustini@baylibre.com> MIME-Version: 1.0 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1763604759821775774?= X-GMAIL-MSGID: =?utf-8?q?1763604759821775774?= Add nodes to for CBQRI-capable cache and memory controllers. This is necessary as the qemu branch riscv-cbqri-rfc (based on v8.0.0-rc4) does not yet support generating a dtb with the nodes and properties needed for CBQRI controllers. Thus, an external dtb (qemu-virt-cbqri.dtb) built by Linux is used when invoking qemu-system-riscv64: qemu-system-riscv64 \ -M virt \ -nographic \ -smp 8 \ -bios output/images/fw_jump.elf \ -kernel ${LINUX}/arch/riscv/boot/Image \ -dtb ${LINUX}/arch/riscv/boot/dts/qemu/qemu-virt-cbqri.dtb \ -append "root=/dev/vda ro" \ -drive file=output/images/rootfs.ext2,format=raw,id=hd0 \ -device virtio-blk-device,drive=hd0 \ Link: https://gitlab.baylibre.com/baylibre/qemu/-/tree/riscv-cbqri-rfc Co-developed-by: Adrien Ricciardi Signed-off-by: Adrien Ricciardi Signed-off-by: Drew Fustini --- arch/riscv/boot/dts/qemu/qemu-virt-cbqri.dts | 59 ++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/arch/riscv/boot/dts/qemu/qemu-virt-cbqri.dts b/arch/riscv/boot/dts/qemu/qemu-virt-cbqri.dts index 400ed48a06af..2c4ddc4271cc 100644 --- a/arch/riscv/boot/dts/qemu/qemu-virt-cbqri.dts +++ b/arch/riscv/boot/dts/qemu/qemu-virt-cbqri.dts @@ -367,5 +367,64 @@ clint@2000000 { reg = <0x00 0x2000000 0x00 0x10000>; compatible = "sifive,clint0\0riscv,clint0"; }; + + cluster0_l2: controller@4820000 { + compatible = "foobar,cache-controller"; + reg = <0x0 0x4820000 0x0 0x1000>; /* 4KB at 0x04820000 */ + cache-unified; + cache-line-size = <64>; + cache-level = <2>; + cache-sets = <1000>; + cache-size = <768000>; /* 750 KiB */ + next-level-cache = <&shared_llc>; + riscv,cbqri-rcid = <64>; + riscv,cbqri-mcid = <256>; + }; + + cluster1_l2: controller@4821000 { + compatible = "foobar,cache-controller"; + reg = <0x0 0x4821000 0x0 0x1000>; /* 4KB at 0x04821000 */ + cache-unified; + cache-line-size = <64>; + cache-level = <2>; + cache-sets = <1000>; + cache-size = <768000>; /* 750 KiB */ + next-level-cache = <&shared_llc>; + riscv,cbqri-rcid = <64>; + riscv,cbqri-mcid = <256>; + }; + + shared_llc: controller@482b000 { + compatible = "foobar,cache-controller"; + reg = <0x0 0x482b000 0x0 0x1000>; /* 4KB at 0x0482B000 */ + cache-unified; + cache-line-size = <64>; + cache-level = <3>; + cache-sets = <4096>; + cache-size = <3145728>; /* 3 MiB */ + riscv,cbqri-rcid = <64>; + riscv,cbqri-mcid = <256>; + }; + + mem0: controller@4828000 { + compatible = "foobar,memory-controller"; + reg = <0x0 0x4828000 0x0 0x1000>; /* 4KB at 0x04828000 */ + riscv,cbqri-rcid = <64>; + riscv,cbqri-mcid = <256>; + }; + + mem1: controller@4829000 { + compatible = "foobar,memory-controller"; + reg = <0x0 0x4829000 0x0 0x1000>; /* 4KB at 0x04829000 */ + riscv,cbqri-rcid = <64>; + riscv,cbqri-mcid = <256>; + }; + + mem2: controller@482a000 { + compatible = "foobar,memory-controller"; + reg = <0x0 0x482a000 0x0 0x1000>; /* 4KB at 0x0482A000 */ + riscv,cbqri-rcid = <64>; + riscv,cbqri-mcid = <256>; + }; }; }; From patchwork Wed Apr 19 11:11:11 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Drew Fustini X-Patchwork-Id: 85339 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp305975vqo; Wed, 19 Apr 2023 04:21:55 -0700 (PDT) X-Google-Smtp-Source: AKy350bLewCf0ZtS7Q45okrYv5o1dGmlowCKC4r+8tscTrHPOHMUvZ8WsWymcd2sSsAkChN38NbA X-Received: by 2002:a17:90a:5312:b0:246:9374:febb with SMTP id x18-20020a17090a531200b002469374febbmr2843489pjh.19.1681903315256; Wed, 19 Apr 2023 04:21:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681903315; cv=none; d=google.com; s=arc-20160816; b=K1/TJFxQIFpIAM6FTPssOs9HSosUB3pHztba4cC31caQG9v5cGXdvqvhB30X0pgshr p7OHeUPsEil/FhoLP4UFWEu9qUOWX8J+Y+xWKRWVZEKdwOnNh+7kn2JUafGdIVeHmJEi tqtjjVe8A8JXdHX7EZW/xMR/zmB6A1+yI3jt3bh8S+YOILAn8GxaXtxvF0AzckOpEA5q cSqHzggyTtfkzK3lY/fbpj4XFNnIk4oQGkeinXYDE9JXPivGWD2lmvTopoEOqLBxjbwD ydoq7maa6Dn2jDam9cavsOltQ6mulkEJb5rP9cppQXm51Yuxp+g//R7fXzFswf+N+CnY Zq+g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=H7zDmqn6U8Eyb17uAoVJJPhK0/Ifl27eJMXTrX2OOHM=; b=Z8B6NfIbu9n/9HLULaVX+N+MmkIXhbcOB1Hc+sBrEhSW76nYooma9Q/7yNgt1p2cVD aPdEFP/ldEs1YbaZnFYkdtH/tkOXQhkdNEd6FTmvA0FTu4AIx4xTJf6UVTBwTFFukmaM g4X6lOo8ijFh6DWlRPJa9mGcs8R/T/gDl02VY6571AK6WUcDem13MSWk8pGxlusQX6/4 A1KQg+pyYetEJM++8YJ6MVaO7c19uBmqDRODf/hsp8+VtLQJeJkcsFSaq4Ikzd4DynEh owNQXTifTqngRtaLRT1h+U2R4dOaBhbkP1B/U7LxaCUksRA/x4ZRqXKdbFDD2V7MQYvh hrJw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b=rzuEY2qO; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id y36-20020a631824000000b0051b603fe4f9si13692860pgl.876.2023.04.19.04.21.42; Wed, 19 Apr 2023 04:21:55 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20221208.gappssmtp.com header.s=20221208 header.b=rzuEY2qO; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232992AbjDSLLv (ORCPT + 99 others); Wed, 19 Apr 2023 07:11:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38662 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232897AbjDSLLU (ORCPT ); Wed, 19 Apr 2023 07:11:20 -0400 Received: from mail-pl1-x630.google.com (mail-pl1-x630.google.com [IPv6:2607:f8b0:4864:20::630]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E402913FA1 for ; Wed, 19 Apr 2023 04:10:39 -0700 (PDT) Received: by mail-pl1-x630.google.com with SMTP id d9443c01a7336-1a6c5acf6ccso14882075ad.3 for ; Wed, 19 Apr 2023 04:10:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20221208.gappssmtp.com; s=20221208; t=1681902639; x=1684494639; 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=H7zDmqn6U8Eyb17uAoVJJPhK0/Ifl27eJMXTrX2OOHM=; b=rzuEY2qOeKpq90xSbNAhUvw+t3I72kxsPlvEC7slbJx9oZ6mmu89DjDgnsFLhq7KuO Wt57Eklvz6MGerBhZn+zO7UFpZ15XNmpuuwUhsEG37gK93liaWtJlKCwrt2a/FnzUTe+ z5HCg6VZUjUOIo9F8rfd8VaOHjPNwVA+1x+kc2wTDwm7qonkWTsRz8jC1Itvm7NSNSAY a5X1WkIgUhDoNCGAK2F6F/Mxe4xIl1aVgypMSHghWGGh6VIPhepcxxkeK6szAoLR/YUN CS3WZYDAECq7UnQZ5nHRW9sRRpHAl9XVfxsKrrcgn0szOs0qnXHXC7l5tQ1KG31eQtEE cRUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681902639; x=1684494639; 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=H7zDmqn6U8Eyb17uAoVJJPhK0/Ifl27eJMXTrX2OOHM=; b=IYGolZtpepndoYCdzGQ0FfifDuCl66G3IqzMbb4DCb+3xM5ibH6il8YyQ5VGSJ5l8c qQa5mWtgo7P/V0MbJZbBLM7rHHRRqxaKuzUSH4GgLWfIO1FEW5hqXvhlxotrTSi231X4 PioGD09jdGcb/e+0qnq0a6iRyEMgxgPOh5Mo3fVluERdClm/+Uqo7aGtp4b9ZJxOHh1I ETwm6unDO/5Faaqy6s+GGQy0dPFSJLRKsgdgdumioJOw/EXhNUPS3RWzFOrNm2D6dvKz ME+CpwMjLPCaCcm1rZlvUYy3dMZ/siLNalOUrcMAsieUm1ralISRITl69/b8rS9ie7ao 0m+w== X-Gm-Message-State: AAQBX9fNIukuARz63p/fe99G5B2WxYESyn+xbaiIQm8dn2ovCa/P4d8T fvPW9UtyWhDJA5DqZdphS6uAzA== X-Received: by 2002:a17:902:daca:b0:1a2:19c1:a974 with SMTP id q10-20020a170902daca00b001a219c1a974mr5715862plx.68.1681902639573; Wed, 19 Apr 2023 04:10:39 -0700 (PDT) Received: from x1.hsd1.or.comcast.net ([2601:1c2:1800:f680:eaf2:1d7a:7338:16cb]) by smtp.gmail.com with ESMTPSA id g12-20020a1709026b4c00b001a24cded097sm11180774plt.236.2023.04.19.04.10.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Apr 2023 04:10:38 -0700 (PDT) From: Drew Fustini To: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Palmer Dabbelt , Paul Walmsley , Conor Dooley , Ved Shanbhogue , =?utf-8?q?Kornel_Dul=C4=99ba?= , Adrien Ricciardi , Nicolas Pitre , Fenghua Yu , Reinette Chatre , Babu Moger , Peter Newman , x86@kernel.org, Rob Herring , James Morse Cc: Drew Fustini Subject: [RFC PATCH 21/21] DO_NOT_MERGE riscv: dts: build qemu virt device tree Date: Wed, 19 Apr 2023 04:11:11 -0700 Message-Id: <20230419111111.477118-22-dfustini@baylibre.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230419111111.477118-1-dfustini@baylibre.com> References: <20230419111111.477118-1-dfustini@baylibre.com> MIME-Version: 1.0 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1763603450610183710?= X-GMAIL-MSGID: =?utf-8?q?1763603450610183710?= Add the device tree for the qemu virt machine to the build. The resulting dtb will be consumed by qemu-system-riscv64. Co-developed-by: Adrien Ricciardi Signed-off-by: Adrien Ricciardi Signed-off-by: Drew Fustini --- arch/riscv/boot/dts/Makefile | 1 + arch/riscv/boot/dts/qemu/Makefile | 3 +++ 2 files changed, 4 insertions(+) create mode 100644 arch/riscv/boot/dts/qemu/Makefile diff --git a/arch/riscv/boot/dts/Makefile b/arch/riscv/boot/dts/Makefile index f0d9f89054f8..74d99d28522f 100644 --- a/arch/riscv/boot/dts/Makefile +++ b/arch/riscv/boot/dts/Makefile @@ -5,5 +5,6 @@ subdir-y += starfive subdir-y += canaan subdir-y += microchip subdir-y += renesas +subdir-y += qemu obj-$(CONFIG_BUILTIN_DTB) := $(addsuffix /, $(subdir-y)) diff --git a/arch/riscv/boot/dts/qemu/Makefile b/arch/riscv/boot/dts/qemu/Makefile new file mode 100644 index 000000000000..07252b4ff455 --- /dev/null +++ b/arch/riscv/boot/dts/qemu/Makefile @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: GPL-2.0 +dtb-$(CONFIG_SOC_VIRT) += qemu-virt-cbqri.dtb +obj-$(CONFIG_BUILTIN_DTB) += $(addsuffix .o, $(dtb-y))