Message ID | 20221223115638.20192-2-devarsht@ti.com |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:e747:0:0:0:0:0 with SMTP id c7csp277085wrn; Fri, 23 Dec 2022 03:57:29 -0800 (PST) X-Google-Smtp-Source: AMrXdXur/enIIm6Xpba63zVHa2iIofm8S7M8ADPfE6LZ8RITI0Py/nPCz48ZU4qFtkicqH4NRPg1 X-Received: by 2002:a17:902:fe82:b0:186:a43b:ac with SMTP id x2-20020a170902fe8200b00186a43b00acmr9280384plm.35.1671796648931; Fri, 23 Dec 2022 03:57:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671796648; cv=none; d=google.com; s=arc-20160816; b=EeLiyq5nuww9ZvGBxrik3womTh9QlAqrczK1QgKr+J5Ru7KU/G/2V6iCJr/8SIIg5k ecHAn4Lkxa0gMnWPgF7wgQ9pk4jrp+SDZ6+ikg40PpM+Ys0HwGKKzTuAf1STkCatjgE4 /0HqZTxqcHjVWlKkxSi2eMU+22dLnUaWaVNh5P18s08UtH+Ntx13/TGXn66PcO+y4nDX M2qqGDP08uEQcksWj1enpFH0LsgRc/sneoFfOdq8pWaPZqq6JIDmqcqx/E4G1DhMTmzp a8Rx4g3BiVHXmnwRG2q67CfbtKfRMxPGUf0o9dAsf3LE9t3GEuXf5eu07p+Kj+etsHkn nC/g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=9FLfUyBeHTKkjUtiRPpEx7qqv9j025D9xy4iL8U/B3w=; b=HCoQ+GuiDG1RPSKl4RsGAlaBlA2shOP8UV/g3i/qaVSXWxEhgXlvnYsLsvcT1T7cNR 4F7pld7VhvESjRTP55GMVEAPvFpdbBfIJoj/By6MQk3ZWi4rUeFf0FaIcA2napaBPJig hEno3+EupbqDlxDUqljtH0q1O2xj+ehiysYAHDzrPSvM/X/DqXUxqRA7UupBrb3WTOrj +VO1kgHziKM04mg7JFl1gLvvPShUAUM+rucrS9UC1hNEAOii31asXJHtnukuSvkeDXjb CK4nGs9dol6a7lV6vflSfxd6ibojSMlB8Nt6GFZ0vsF6uSaeFooz3KfkJTLm/F4+k4Yb GDtg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=ergnOXsZ; 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; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id e3-20020a170902ed8300b001782bd6c443si2962934plj.621.2022.12.23.03.57.16; Fri, 23 Dec 2022 03:57:28 -0800 (PST) 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=@ti.com header.s=ti-com-17Q1 header.b=ergnOXsZ; 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; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232343AbiLWL44 (ORCPT <rfc822;pacteraone@gmail.com> + 99 others); Fri, 23 Dec 2022 06:56:56 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54456 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229637AbiLWL4t (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Fri, 23 Dec 2022 06:56:49 -0500 Received: from lelv0143.ext.ti.com (lelv0143.ext.ti.com [198.47.23.248]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1BAC02A270; Fri, 23 Dec 2022 03:56:48 -0800 (PST) Received: from fllv0034.itg.ti.com ([10.64.40.246]) by lelv0143.ext.ti.com (8.15.2/8.15.2) with ESMTP id 2BNBufbQ095267; Fri, 23 Dec 2022 05:56:41 -0600 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1671796601; bh=9FLfUyBeHTKkjUtiRPpEx7qqv9j025D9xy4iL8U/B3w=; h=From:To:CC:Subject:Date:In-Reply-To:References; b=ergnOXsZs1GaSQgM6Zy1xetNyApRf5YsQQdciPtgvO6Fuzrtu0aa054gM8E3tljDb vJ1NfB12Pm8Wnjh5ZQvD0ZFInd7xQ6vHvrHjY/btNTQ34uenc30DxcQIKqhW7N6tSp ehKkUcbDqGuWinoxVXIvuqle9IFClWeXrQTtZpf0= Received: from DFLE113.ent.ti.com (dfle113.ent.ti.com [10.64.6.34]) by fllv0034.itg.ti.com (8.15.2/8.15.2) with ESMTPS id 2BNBufHx008347 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Fri, 23 Dec 2022 05:56:41 -0600 Received: from DFLE113.ent.ti.com (10.64.6.34) by DFLE113.ent.ti.com (10.64.6.34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.16; Fri, 23 Dec 2022 05:56:41 -0600 Received: from fllv0040.itg.ti.com (10.64.41.20) by DFLE113.ent.ti.com (10.64.6.34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.16 via Frontend Transport; Fri, 23 Dec 2022 05:56:41 -0600 Received: from localhost (ileaxei01-snat.itg.ti.com [10.180.69.5]) by fllv0040.itg.ti.com (8.15.2/8.15.2) with ESMTP id 2BNBueAs092535; Fri, 23 Dec 2022 05:56:41 -0600 From: Devarsh Thakkar <devarsht@ti.com> To: <andersson@kernel.org>, <devicetree@vger.kernel.org>, <mathieu.poirier@linaro.org>, <p.zabel@pengutronix.de>, <linux-remoteproc@vger.kernel.org>, <linux-kernel@vger.kernel.org>, <krzysztof.kozlowski@linaro.org>, <s-anna@ti.com> CC: <hnagalla@ti.com>, <praneeth@ti.com>, <nm@ti.com>, <vigneshr@ti.com>, <a-bhatia1@ti.com>, <j-luthra@ti.com>, <devarsht@ti.com> Subject: [PATCH v3 1/2] dt-bindings: remoteproc: ti: Add new compatible for AM62 SoC family Date: Fri, 23 Dec 2022 17:26:37 +0530 Message-ID: <20221223115638.20192-2-devarsht@ti.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20221223115638.20192-1-devarsht@ti.com> References: <20221223115638.20192-1-devarsht@ti.com> MIME-Version: 1.0 Content-Type: text/plain X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS 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: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1753005842693611532?= X-GMAIL-MSGID: =?utf-8?q?1753005842693611532?= |
Series |
Add single core R5F IPC for AM62 SoC family
|
|
Commit Message
Devarsh Thakkar
Dec. 23, 2022, 11:56 a.m. UTC
AM62 family of devices don't have a R5F cluster, instead
they have single core DM R5F.
Add new compatible string ti,am62-r5fss to support this scenario.
When this new compatible is used don't allow cluster-mode
property usage in device-tree as this implies that there
is no R5F cluster available and only single R5F core
is present.
Signed-off-by: Devarsh Thakkar <devarsht@ti.com>
---
V2: Avoid acronyms, use "Device Manager" instead of "DM"
V3:
- Use separate if block for each compatible for ti,cluster-mode property
- Rearrange compatibles as per alphabatical order
---
.../bindings/remoteproc/ti,k3-r5f-rproc.yaml | 68 +++++++++++++------
1 file changed, 47 insertions(+), 21 deletions(-)
Comments
On 23/12/2022 12:56, Devarsh Thakkar wrote: > AM62 family of devices don't have a R5F cluster, instead > they have single core DM R5F. > Add new compatible string ti,am62-r5fss to support this scenario. > > When this new compatible is used don't allow cluster-mode > property usage in device-tree as this implies that there > is no R5F cluster available and only single R5F core > is present. It's v3 but addresses are still not correct. Please use scripts/get_maintainers.pl to get a list of necessary people and lists to CC. It might happen, that command when run on an older kernel, gives you outdated entries. Therefore please be sure you base your patches on recent Linux kernel. Best regards, Krzysztof
On 23/12/2022 12:56, Devarsh Thakkar wrote: > AM62 family of devices don't have a R5F cluster, instead > they have single core DM R5F. > Add new compatible string ti,am62-r5fss to support this scenario. > > When this new compatible is used don't allow cluster-mode > property usage in device-tree as this implies that there > is no R5F cluster available and only single R5F core > is present. > > Signed-off-by: Devarsh Thakkar <devarsht@ti.com> > --- > V2: Avoid acronyms, use "Device Manager" instead of "DM" > V3: > - Use separate if block for each compatible for ti,cluster-mode property > - Rearrange compatibles as per alphabatical order > --- > .../bindings/remoteproc/ti,k3-r5f-rproc.yaml | 68 +++++++++++++------ > 1 file changed, 47 insertions(+), 21 deletions(-) > > diff --git a/Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml b/Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml > index fb9605f0655b..e8a861179bd9 100644 > --- a/Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml > +++ b/Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml > @@ -21,6 +21,9 @@ description: | > called "Single-CPU" mode, where only Core0 is used, but with ability to use > Core1's TCMs as well. > > + AM62 SoC family support a single R5F core only which runs Device Manager > + firmware and can also be used as a remote processor with IPC communication. > + > Each Dual-Core R5F sub-system is represented as a single DTS node > representing the cluster, with a pair of child DT nodes representing > the individual R5F cores. Each node has a number of required or optional > @@ -28,16 +31,20 @@ description: | > the device management of the remote processor and to communicate with the > remote processor. > > + Since AM62 SoC family only support a single core, there is no cluster-mode > + property setting required for it. > + > properties: > $nodename: > pattern: "^r5fss(@.*)?" > > compatible: > enum: > + - ti,am62-r5fss > + - ti,am64-r5fss > - ti,am654-r5fss > - - ti,j721e-r5fss > - ti,j7200-r5fss > - - ti,am64-r5fss > + - ti,j721e-r5fss > - ti,j721s2-r5fss > > power-domains: > @@ -80,7 +87,9 @@ patternProperties: > node representing a TI instantiation of the Arm Cortex R5F core. There > are some specific integration differences for the IP like the usage of > a Region Address Translator (RAT) for translating the larger SoC bus > - addresses into a 32-bit address space for the processor. > + addresses into a 32-bit address space for the processor. For AM62x, > + the R5F Sub-System device node should only define one R5F child node > + as it has only one core available. > > Each R5F core has an associated 64 KB of Tightly-Coupled Memory (TCM) > internal memories split between two banks - TCMA and TCMB (further > @@ -100,11 +109,12 @@ patternProperties: > properties: > compatible: > enum: > - - ti,am654-r5f > - - ti,j721e-r5f > - - ti,j7200-r5f > - - ti,am64-r5f > - - ti,j721s2-r5f > + - ti,am62-r5fss > + - ti,am64-r5fss > + - ti,am654-r5fss > + - ti,j7200-r5fss > + - ti,j721e-r5fss > + - ti,j721s2-r5fss > > reg: > items: > @@ -208,19 +218,35 @@ patternProperties: > > unevaluatedProperties: false > > -if: > - properties: > - compatible: > - enum: > - - ti,am64-r5fss > -then: > - properties: > - ti,cluster-mode: > - enum: [0, 2] > -else: > - properties: > - ti,cluster-mode: > - enum: [0, 1] > +allOf: > + - if: > + properties: > + compatible: > + enum: > + - ti,am64-r5fss > + then: > + properties: > + ti,cluster-mode: > + enum: [0, 2] > + > + - if: > + properties: > + compatible: > + enum: ["ti,am654-r5fss", "ti,j7200-r5fss", "ti,j721e-r5fss", "ti,j721s2-r5fss"] That's not how enums are spelled for such cases. Git grep for examples - this should be a enum with each item in new entry, no quotes. Best regards, Krzysztof
On 26/12/22 17:48, Krzysztof Kozlowski wrote: > On 23/12/2022 12:56, Devarsh Thakkar wrote: >> AM62 family of devices don't have a R5F cluster, instead >> they have single core DM R5F. >> Add new compatible string ti,am62-r5fss to support this scenario. >> >> When this new compatible is used don't allow cluster-mode >> property usage in device-tree as this implies that there >> is no R5F cluster available and only single R5F core >> is present. >> >> Signed-off-by: Devarsh Thakkar <devarsht@ti.com> >> --- >> V2: Avoid acronyms, use "Device Manager" instead of "DM" >> V3: >> - Use separate if block for each compatible for ti,cluster-mode property >> - Rearrange compatibles as per alphabatical order >> --- >> .../bindings/remoteproc/ti,k3-r5f-rproc.yaml | 68 +++++++++++++------ >> 1 file changed, 47 insertions(+), 21 deletions(-) >> >> diff --git a/Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml b/Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml >> index fb9605f0655b..e8a861179bd9 100644 >> --- a/Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml >> +++ b/Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml >> @@ -21,6 +21,9 @@ description: | >> called "Single-CPU" mode, where only Core0 is used, but with ability to use >> Core1's TCMs as well. >> >> + AM62 SoC family support a single R5F core only which runs Device Manager >> + firmware and can also be used as a remote processor with IPC communication. >> + >> Each Dual-Core R5F sub-system is represented as a single DTS node >> representing the cluster, with a pair of child DT nodes representing >> the individual R5F cores. Each node has a number of required or optional >> @@ -28,16 +31,20 @@ description: | >> the device management of the remote processor and to communicate with the >> remote processor. >> >> + Since AM62 SoC family only support a single core, there is no cluster-mode >> + property setting required for it. >> + >> properties: >> $nodename: >> pattern: "^r5fss(@.*)?" >> >> compatible: >> enum: >> + - ti,am62-r5fss >> + - ti,am64-r5fss >> - ti,am654-r5fss >> - - ti,j721e-r5fss >> - ti,j7200-r5fss >> - - ti,am64-r5fss >> + - ti,j721e-r5fss >> - ti,j721s2-r5fss >> >> power-domains: >> @@ -80,7 +87,9 @@ patternProperties: >> node representing a TI instantiation of the Arm Cortex R5F core. There >> are some specific integration differences for the IP like the usage of >> a Region Address Translator (RAT) for translating the larger SoC bus >> - addresses into a 32-bit address space for the processor. >> + addresses into a 32-bit address space for the processor. For AM62x, >> + the R5F Sub-System device node should only define one R5F child node >> + as it has only one core available. >> >> Each R5F core has an associated 64 KB of Tightly-Coupled Memory (TCM) >> internal memories split between two banks - TCMA and TCMB (further >> @@ -100,11 +109,12 @@ patternProperties: >> properties: >> compatible: >> enum: >> - - ti,am654-r5f >> - - ti,j721e-r5f >> - - ti,j7200-r5f >> - - ti,am64-r5f >> - - ti,j721s2-r5f >> + - ti,am62-r5fss >> + - ti,am64-r5fss >> + - ti,am654-r5fss >> + - ti,j7200-r5fss >> + - ti,j721e-r5fss >> + - ti,j721s2-r5fss >> There is a problem here, the compatibles still need to be "-r5f" I will correct it in V4. >> reg: >> items: >> @@ -208,19 +218,35 @@ patternProperties: >> >> unevaluatedProperties: false >> >> -if: >> - properties: >> - compatible: >> - enum: >> - - ti,am64-r5fss >> -then: >> - properties: >> - ti,cluster-mode: >> - enum: [0, 2] >> -else: >> - properties: >> - ti,cluster-mode: >> - enum: [0, 1] >> +allOf: >> + - if: >> + properties: >> + compatible: >> + enum: >> + - ti,am64-r5fss >> + then: >> + properties: >> + ti,cluster-mode: >> + enum: [0, 2] >> + >> + - if: >> + properties: >> + compatible: >> + enum: ["ti,am654-r5fss", "ti,j7200-r5fss", "ti,j721e-r5fss", "ti,j721s2-r5fss"] > > That's not how enums are spelled for such cases. Git grep for examples - > this should be a enum with each item in new entry, no quotes. Yeah, that was my initial thought but then I looked at section 4.9.3 of https://json-schema.org/understanding-json-schema/UnderstandingJSONSchema.pdf which had below example and based on that did this change thus avoiding separate entries for each enum. Example: { "enum": ["red", "amber", "green", null, 42] } To confirm whether the change works fine, I deliberately modified cluster-mode values for each of the SoC's beyond acceptable ranges as seen in https://gist.github.com/devarsht/1956063c8e39f1bdbad3574ea96b95a3 and then ran "make dtbs_check" and it was able to catch the inappropriate values of cluster-mode as seen in below logs : https://gist.github.com/devarsht/bc8cfb82c55b75d85649585d3fd536a0#file-gistfile1-txt-L392 https://gist.github.com/devarsht/bc8cfb82c55b75d85649585d3fd536a0#file-gistfile1-txt-L500 https://gist.github.com/devarsht/bc8cfb82c55b75d85649585d3fd536a0#file-gistfile1-txt-L712 https://gist.github.com/devarsht/bc8cfb82c55b75d85649585d3fd536a0#file-gistfile1-txt-L741 https://gist.github.com/devarsht/bc8cfb82c55b75d85649585d3fd536a0#file-gistfile1-txt-L750 https://gist.github.com/devarsht/bc8cfb82c55b75d85649585d3fd536a0#file-gistfile1-txt-L766 https://gist.github.com/devarsht/bc8cfb82c55b75d85649585d3fd536a0#file-gistfile1-txt-L773 Kindly let me know if you see some issues with this approach. Best Regards, Devarsh > > Best regards, > Krzysztof >
On 27/12/2022 10:38, Devarsh Thakkar wrote: > > > On 26/12/22 17:48, Krzysztof Kozlowski wrote: >> On 23/12/2022 12:56, Devarsh Thakkar wrote: >>> AM62 family of devices don't have a R5F cluster, instead >>> they have single core DM R5F. >>> Add new compatible string ti,am62-r5fss to support this scenario. >>> >>> When this new compatible is used don't allow cluster-mode >>> property usage in device-tree as this implies that there >>> is no R5F cluster available and only single R5F core >>> is present. >>> >>> Signed-off-by: Devarsh Thakkar <devarsht@ti.com> >>> --- >>> V2: Avoid acronyms, use "Device Manager" instead of "DM" >>> V3: >>> - Use separate if block for each compatible for ti,cluster-mode property >>> - Rearrange compatibles as per alphabatical order >>> --- >>> .../bindings/remoteproc/ti,k3-r5f-rproc.yaml | 68 +++++++++++++------ >>> 1 file changed, 47 insertions(+), 21 deletions(-) >>> >>> diff --git a/Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml b/Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml >>> index fb9605f0655b..e8a861179bd9 100644 >>> --- a/Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml >>> +++ b/Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml >>> @@ -21,6 +21,9 @@ description: | >>> called "Single-CPU" mode, where only Core0 is used, but with ability to use >>> Core1's TCMs as well. >>> >>> + AM62 SoC family support a single R5F core only which runs Device Manager >>> + firmware and can also be used as a remote processor with IPC communication. >>> + >>> Each Dual-Core R5F sub-system is represented as a single DTS node >>> representing the cluster, with a pair of child DT nodes representing >>> the individual R5F cores. Each node has a number of required or optional >>> @@ -28,16 +31,20 @@ description: | >>> the device management of the remote processor and to communicate with the >>> remote processor. >>> >>> + Since AM62 SoC family only support a single core, there is no cluster-mode >>> + property setting required for it. >>> + >>> properties: >>> $nodename: >>> pattern: "^r5fss(@.*)?" >>> >>> compatible: >>> enum: >>> + - ti,am62-r5fss >>> + - ti,am64-r5fss >>> - ti,am654-r5fss >>> - - ti,j721e-r5fss >>> - ti,j7200-r5fss >>> - - ti,am64-r5fss >>> + - ti,j721e-r5fss >>> - ti,j721s2-r5fss >>> >>> power-domains: >>> @@ -80,7 +87,9 @@ patternProperties: >>> node representing a TI instantiation of the Arm Cortex R5F core. There >>> are some specific integration differences for the IP like the usage of >>> a Region Address Translator (RAT) for translating the larger SoC bus >>> - addresses into a 32-bit address space for the processor. >>> + addresses into a 32-bit address space for the processor. For AM62x, >>> + the R5F Sub-System device node should only define one R5F child node >>> + as it has only one core available. >>> >>> Each R5F core has an associated 64 KB of Tightly-Coupled Memory (TCM) >>> internal memories split between two banks - TCMA and TCMB (further >>> @@ -100,11 +109,12 @@ patternProperties: >>> properties: >>> compatible: >>> enum: >>> - - ti,am654-r5f >>> - - ti,j721e-r5f >>> - - ti,j7200-r5f >>> - - ti,am64-r5f >>> - - ti,j721s2-r5f >>> + - ti,am62-r5fss >>> + - ti,am64-r5fss >>> + - ti,am654-r5fss >>> + - ti,j7200-r5fss >>> + - ti,j721e-r5fss >>> + - ti,j721s2-r5fss >>> > There is a problem here, the compatibles still need to be "-r5f" I will > correct it in V4. >>> reg: >>> items: >>> @@ -208,19 +218,35 @@ patternProperties: >>> >>> unevaluatedProperties: false >>> >>> -if: >>> - properties: >>> - compatible: >>> - enum: >>> - - ti,am64-r5fss >>> -then: >>> - properties: >>> - ti,cluster-mode: >>> - enum: [0, 2] >>> -else: >>> - properties: >>> - ti,cluster-mode: >>> - enum: [0, 1] >>> +allOf: >>> + - if: >>> + properties: >>> + compatible: >>> + enum: >>> + - ti,am64-r5fss >>> + then: >>> + properties: >>> + ti,cluster-mode: >>> + enum: [0, 2] >>> + >>> + - if: >>> + properties: >>> + compatible: >>> + enum: ["ti,am654-r5fss", "ti,j7200-r5fss", "ti,j721e-r5fss", "ti,j721s2-r5fss"] >> >> That's not how enums are spelled for such cases. Git grep for examples - >> this should be a enum with each item in new entry, no quotes. > Yeah, that was my initial thought but then I looked at section 4.9.3 of > https://json-schema.org/understanding-json-schema/UnderstandingJSONSchema.pdf > which had below example and based on that did this change thus avoiding > separate entries for each enum. > > Example: > { > "enum": ["red", "amber", "green", null, 42] > } > > To confirm whether the change works fine, I deliberately modified cluster-mode > values for each of the SoC's beyond acceptable ranges as seen in > https://gist.github.com/devarsht/1956063c8e39f1bdbad3574ea96b95a3 > and then ran "make dtbs_check" and it was able to catch the inappropriate > values of cluster-mode as seen in below logs : > > https://gist.github.com/devarsht/bc8cfb82c55b75d85649585d3fd536a0#file-gistfile1-txt-L392 > https://gist.github.com/devarsht/bc8cfb82c55b75d85649585d3fd536a0#file-gistfile1-txt-L500 > https://gist.github.com/devarsht/bc8cfb82c55b75d85649585d3fd536a0#file-gistfile1-txt-L712 > https://gist.github.com/devarsht/bc8cfb82c55b75d85649585d3fd536a0#file-gistfile1-txt-L741 > https://gist.github.com/devarsht/bc8cfb82c55b75d85649585d3fd536a0#file-gistfile1-txt-L750 > https://gist.github.com/devarsht/bc8cfb82c55b75d85649585d3fd536a0#file-gistfile1-txt-L766 > https://gist.github.com/devarsht/bc8cfb82c55b75d85649585d3fd536a0#file-gistfile1-txt-L773 > > Kindly let me know if you see some issues with this approach. Your syntax is correct just not matching the coding style. Use coding style matching existing bindings. It's the same in C. Just because you can write: void max() { ... } does not mean we accept such code. Best regards, Krzysztof
diff --git a/Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml b/Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml index fb9605f0655b..e8a861179bd9 100644 --- a/Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml +++ b/Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml @@ -21,6 +21,9 @@ description: | called "Single-CPU" mode, where only Core0 is used, but with ability to use Core1's TCMs as well. + AM62 SoC family support a single R5F core only which runs Device Manager + firmware and can also be used as a remote processor with IPC communication. + Each Dual-Core R5F sub-system is represented as a single DTS node representing the cluster, with a pair of child DT nodes representing the individual R5F cores. Each node has a number of required or optional @@ -28,16 +31,20 @@ description: | the device management of the remote processor and to communicate with the remote processor. + Since AM62 SoC family only support a single core, there is no cluster-mode + property setting required for it. + properties: $nodename: pattern: "^r5fss(@.*)?" compatible: enum: + - ti,am62-r5fss + - ti,am64-r5fss - ti,am654-r5fss - - ti,j721e-r5fss - ti,j7200-r5fss - - ti,am64-r5fss + - ti,j721e-r5fss - ti,j721s2-r5fss power-domains: @@ -80,7 +87,9 @@ patternProperties: node representing a TI instantiation of the Arm Cortex R5F core. There are some specific integration differences for the IP like the usage of a Region Address Translator (RAT) for translating the larger SoC bus - addresses into a 32-bit address space for the processor. + addresses into a 32-bit address space for the processor. For AM62x, + the R5F Sub-System device node should only define one R5F child node + as it has only one core available. Each R5F core has an associated 64 KB of Tightly-Coupled Memory (TCM) internal memories split between two banks - TCMA and TCMB (further @@ -100,11 +109,12 @@ patternProperties: properties: compatible: enum: - - ti,am654-r5f - - ti,j721e-r5f - - ti,j7200-r5f - - ti,am64-r5f - - ti,j721s2-r5f + - ti,am62-r5fss + - ti,am64-r5fss + - ti,am654-r5fss + - ti,j7200-r5fss + - ti,j721e-r5fss + - ti,j721s2-r5fss reg: items: @@ -208,19 +218,35 @@ patternProperties: unevaluatedProperties: false -if: - properties: - compatible: - enum: - - ti,am64-r5fss -then: - properties: - ti,cluster-mode: - enum: [0, 2] -else: - properties: - ti,cluster-mode: - enum: [0, 1] +allOf: + - if: + properties: + compatible: + enum: + - ti,am64-r5fss + then: + properties: + ti,cluster-mode: + enum: [0, 2] + + - if: + properties: + compatible: + enum: ["ti,am654-r5fss", "ti,j7200-r5fss", "ti,j721e-r5fss", "ti,j721s2-r5fss"] + then: + properties: + ti,cluster-mode: + enum: [0, 1] + + - if: + properties: + compatible: + enum: + - ti,am62-r5fss + then: + properties: + ti,cluster-mode: false + required: - compatible