[PATCH 2/5] dt-bindings: arm: ti: Add compatible for AM625-based TQMa62xx SOM family and carrier board

Matthias Schiffer posted 5 patches 2 weeks, 6 days ago
[PATCH 2/5] dt-bindings: arm: ti: Add compatible for AM625-based TQMa62xx SOM family and carrier board
Posted by Matthias Schiffer 2 weeks, 6 days ago
The TQMa62xx is a SoM family with a pluggable connector. The MBa62xx is
the matching reference/starterkit carrier board.

Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
---
 Documentation/devicetree/bindings/arm/ti/k3.yaml | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/Documentation/devicetree/bindings/arm/ti/k3.yaml b/Documentation/devicetree/bindings/arm/ti/k3.yaml
index b0be02f9d1253..d8b52b95fba7b 100644
--- a/Documentation/devicetree/bindings/arm/ti/k3.yaml
+++ b/Documentation/devicetree/bindings/arm/ti/k3.yaml
@@ -73,6 +73,13 @@ properties:
           - const: toradex,verdin-am62          # Verdin AM62 Module
           - const: ti,am625
 
+      - description: K3 AM625 SoC on TQ-Systems TQMa62xx SoM
+        items:
+          - enum:
+              - tq,am625-tqma6254-mba62xx # MBa62xx base board
+          - const: tq,am625-tqma6254
+          - const: ti,am625
+
       - description: K3 AM642 SoC
         items:
           - enum:
-- 
TQ-Systems GmbH | Mühlstraße 2, Gut Delling | 82229 Seefeld, Germany
Amtsgericht München, HRB 105018
Geschäftsführer: Detlef Schneider, Rüdiger Stahl, Stefan Schneider
https://www.tq-group.com/

Re: [PATCH 2/5] dt-bindings: arm: ti: Add compatible for AM625-based TQMa62xx SOM family and carrier board
Posted by Rob Herring (Arm) 1 week, 5 days ago
On Mon, 04 Nov 2024 10:47:25 +0100, Matthias Schiffer wrote:
> The TQMa62xx is a SoM family with a pluggable connector. The MBa62xx is
> the matching reference/starterkit carrier board.
> 
> Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
> ---
>  Documentation/devicetree/bindings/arm/ti/k3.yaml | 7 +++++++
>  1 file changed, 7 insertions(+)
> 

Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Re: [PATCH 2/5] dt-bindings: arm: ti: Add compatible for AM625-based TQMa62xx SOM family and carrier board
Posted by Conor Dooley 2 weeks, 5 days ago
On Mon, Nov 04, 2024 at 10:47:25AM +0100, Matthias Schiffer wrote:
> The TQMa62xx is a SoM family with a pluggable connector. The MBa62xx is
> the matching reference/starterkit carrier board.

Why all the wildcards? Why isn't there a compatible per device in the
family?

> 
> Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
> ---
>  Documentation/devicetree/bindings/arm/ti/k3.yaml | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/arm/ti/k3.yaml b/Documentation/devicetree/bindings/arm/ti/k3.yaml
> index b0be02f9d1253..d8b52b95fba7b 100644
> --- a/Documentation/devicetree/bindings/arm/ti/k3.yaml
> +++ b/Documentation/devicetree/bindings/arm/ti/k3.yaml
> @@ -73,6 +73,13 @@ properties:
>            - const: toradex,verdin-am62          # Verdin AM62 Module
>            - const: ti,am625
>  
> +      - description: K3 AM625 SoC on TQ-Systems TQMa62xx SoM
> +        items:
> +          - enum:
> +              - tq,am625-tqma6254-mba62xx # MBa62xx base board
> +          - const: tq,am625-tqma6254
> +          - const: ti,am625
> +
>        - description: K3 AM642 SoC
>          items:
>            - enum:
> -- 
> TQ-Systems GmbH | Mühlstraße 2, Gut Delling | 82229 Seefeld, Germany
> Amtsgericht München, HRB 105018
> Geschäftsführer: Detlef Schneider, Rüdiger Stahl, Stefan Schneider
> https://www.tq-group.com/
> 
Re: [PATCH 2/5] dt-bindings: arm: ti: Add compatible for AM625-based TQMa62xx SOM family and carrier board
Posted by Matthias Schiffer 2 weeks, 5 days ago
On Mon, 2024-11-04 at 18:47 +0000, Conor Dooley wrote:
> On Mon, Nov 04, 2024 at 10:47:25AM +0100, Matthias Schiffer wrote:
> > The TQMa62xx is a SoM family with a pluggable connector. The MBa62xx is
> > the matching reference/starterkit carrier board.
> 
> Why all the wildcards? Why isn't there a compatible per device in the
> family?

For the compatible string we've chosen the TQMa6254 as the representative for the TQMa62xx family.

MBa62xx is the proper name of the baseboard; this board can be combined with any TQMa62xx family
SOM.

Best,
Matthias



> 
> > 
> > Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
> > ---
> >  Documentation/devicetree/bindings/arm/ti/k3.yaml | 7 +++++++
> >  1 file changed, 7 insertions(+)
> > 
> > diff --git a/Documentation/devicetree/bindings/arm/ti/k3.yaml b/Documentation/devicetree/bindings/arm/ti/k3.yaml
> > index b0be02f9d1253..d8b52b95fba7b 100644
> > --- a/Documentation/devicetree/bindings/arm/ti/k3.yaml
> > +++ b/Documentation/devicetree/bindings/arm/ti/k3.yaml
> > @@ -73,6 +73,13 @@ properties:
> >            - const: toradex,verdin-am62          # Verdin AM62 Module
> >            - const: ti,am625
> >  
> > +      - description: K3 AM625 SoC on TQ-Systems TQMa62xx SoM
> > +        items:
> > +          - enum:
> > +              - tq,am625-tqma6254-mba62xx # MBa62xx base board
> > +          - const: tq,am625-tqma6254
> > +          - const: ti,am625
> > +
> >        - description: K3 AM642 SoC
> >          items:
> >            - enum:
> > -- 
> > TQ-Systems GmbH | Mühlstraße 2, Gut Delling | 82229 Seefeld, Germany
> > Amtsgericht München, HRB 105018
> > Geschäftsführer: Detlef Schneider, Rüdiger Stahl, Stefan Schneider
> > https://www.tq-group.com/
> > 
> Achtung externe E-Mail: Öffnen Sie Anhänge und Links nur, wenn Sie wissen, dass diese aus einer sicheren Quelle stammen und sicher sind. Leiten Sie die E-Mail im Zweifelsfall zur Prüfung an den IT-Helpdesk weiter.
>   Attention external email: Open attachments and links only if you know that they are from a secure source and are safe. In doubt forward the email to the IT-Helpdesk to check it.
> 
>  

-- 
TQ-Systems GmbH | Mühlstraße 2, Gut Delling | 82229 Seefeld, Germany
Amtsgericht München, HRB 105018
Geschäftsführer: Detlef Schneider, Rüdiger Stahl, Stefan Schneider
https://www.tq-group.com/
Re: [PATCH 2/5] dt-bindings: arm: ti: Add compatible for AM625-based TQMa62xx SOM family and carrier board
Posted by Conor Dooley 2 weeks, 4 days ago
On Tue, Nov 05, 2024 at 11:40:20AM +0100, Matthias Schiffer wrote:
> On Mon, 2024-11-04 at 18:47 +0000, Conor Dooley wrote:
> > On Mon, Nov 04, 2024 at 10:47:25AM +0100, Matthias Schiffer wrote:
> > > The TQMa62xx is a SoM family with a pluggable connector. The MBa62xx is
> > > the matching reference/starterkit carrier board.
> > 
> > Why all the wildcards? Why isn't there a compatible per device in the
> > family?
> 
> For the compatible string we've chosen the TQMa6254 as the representative for the TQMa62xx family.

And all the boards in the family are the exact same?

> 
> MBa62xx is the proper name of the baseboard; this board can be combined with any TQMa62xx family
> SOM.

Then that one is fine.

Re: [PATCH 2/5] dt-bindings: arm: ti: Add compatible for AM625-based TQMa62xx SOM family and carrier board
Posted by Matthias Schiffer 2 weeks, 4 days ago
On Tue, 2024-11-05 at 18:55 +0000, Conor Dooley wrote:
> On Tue, Nov 05, 2024 at 11:40:20AM +0100, Matthias Schiffer wrote:
> > On Mon, 2024-11-04 at 18:47 +0000, Conor Dooley wrote:
> > > On Mon, Nov 04, 2024 at 10:47:25AM +0100, Matthias Schiffer wrote:
> > > > The TQMa62xx is a SoM family with a pluggable connector. The MBa62xx is
> > > > the matching reference/starterkit carrier board.
> > > 
> > > Why all the wildcards? Why isn't there a compatible per device in the
> > > family?

Because all variants use the same Device Tree. There is also only one compatible and one (main) DTSI
for the AM62 SoC family, which our Device Trees are based on.

> > 
> > For the compatible string we've chosen the TQMa6254 as the representative for the TQMa62xx family.
> 
> And all the boards in the family are the exact same?

There is a single TQMa62xx PCB, which has some AM62 family SoC installed (AM6254 in the case of the
TQMa6254, but all AM62 are possible). TQMa62xx is also the name used for marketing when not talking
about a specific SoC variant:
https://www.tq-group.com/en/products/tq-embedded/arm-architecture/tqma62xx/

Some SoM variants with different RAM/eMMC/SPI-NOR/... do exist, but they don't have separate device
trees (firmware may patch some variant information into the DTB however, like the correct RAM size).

Choosing one representative for the family including the SoC variant number, but not distinguishing
minor variants matches the level of detail used for our other SOMs already supported by mainline
Linux (like the TQMa64xxL and various i.MX-based platforms).

Best,
Matthias



> 
> > 
> > MBa62xx is the proper name of the baseboard; this board can be combined with any TQMa62xx family
> > SOM.
> 
> Then that one is fine.
> 

-- 
TQ-Systems GmbH | Mühlstraße 2, Gut Delling | 82229 Seefeld, Germany
Amtsgericht München, HRB 105018
Geschäftsführer: Detlef Schneider, Rüdiger Stahl, Stefan Schneider
https://www.tq-group.com/
Re: [PATCH 2/5] dt-bindings: arm: ti: Add compatible for AM625-based TQMa62xx SOM family and carrier board
Posted by Conor Dooley 2 weeks, 3 days ago
On Wed, Nov 06, 2024 at 01:03:08PM +0100, Matthias Schiffer wrote:
> On Tue, 2024-11-05 at 18:55 +0000, Conor Dooley wrote:
> > On Tue, Nov 05, 2024 at 11:40:20AM +0100, Matthias Schiffer wrote:
> > > On Mon, 2024-11-04 at 18:47 +0000, Conor Dooley wrote:
> > > > On Mon, Nov 04, 2024 at 10:47:25AM +0100, Matthias Schiffer wrote:
> > > > > The TQMa62xx is a SoM family with a pluggable connector. The MBa62xx is
> > > > > the matching reference/starterkit carrier board.
> > > > 
> > > > Why all the wildcards? Why isn't there a compatible per device in the
> > > > family?
> 
> Because all variants use the same Device Tree. There is also only one compatible and one (main) DTSI
> for the AM62 SoC family, which our Device Trees are based on.

So what varies between the members of the family?

> > > For the compatible string we've chosen the TQMa6254 as the representative for the TQMa62xx family.
> > 
> > And all the boards in the family are the exact same?
> 
> There is a single TQMa62xx PCB, which has some AM62 family SoC installed (AM6254 in the case of the
> TQMa6254, but all AM62 are possible). TQMa62xx is also the name used for marketing when not talking
> about a specific SoC variant:
> https://www.tq-group.com/en/products/tq-embedded/arm-architecture/tqma62xx/
> 
> Some SoM variants with different RAM/eMMC/SPI-NOR/... do exist, but they don't have separate device
> trees (firmware may patch some variant information into the DTB however, like the correct RAM size).
> 
> Choosing one representative for the family including the SoC variant number, but not distinguishing
> minor variants matches the level of detail used for our other SOMs already supported by mainline
> Linux (like the TQMa64xxL and various i.MX-based platforms).

I don't like any of this wildcard stuff at all, who is to say that the
next soc you put on your SoM won't be an am62a7, which has a specific
compatible in the kernel? Your fallback then would be ti,am62a7 not
ti,am625. Probably someone will say "that's the am62a family not the
am62 family" - but that exact thing is why I hate all of this
wildcarding. It's barely any more effort to have a tqm6231 and a tqm6254
compatible than what you're doing with wildcard but it is unambiguous.
Re: [PATCH 2/5] dt-bindings: arm: ti: Add compatible for AM625-based TQMa62xx SOM family and carrier board
Posted by Matthias Schiffer 1 week, 6 days ago
On Wed, 2024-11-06 at 16:40 +0000, Conor Dooley wrote:
> On Wed, Nov 06, 2024 at 01:03:08PM +0100, Matthias Schiffer wrote:
> > On Tue, 2024-11-05 at 18:55 +0000, Conor Dooley wrote:
> > > On Tue, Nov 05, 2024 at 11:40:20AM +0100, Matthias Schiffer wrote:
> > > > On Mon, 2024-11-04 at 18:47 +0000, Conor Dooley wrote:
> > > > > On Mon, Nov 04, 2024 at 10:47:25AM +0100, Matthias Schiffer wrote:
> > > > > > The TQMa62xx is a SoM family with a pluggable connector. The MBa62xx is
> > > > > > the matching reference/starterkit carrier board.
> > > > > 
> > > > > Why all the wildcards? Why isn't there a compatible per device in the
> > > > > family?
> > 
> > Because all variants use the same Device Tree. There is also only one compatible and one (main) DTSI
> > for the AM62 SoC family, which our Device Trees are based on.
> 
> So what varies between the members of the family?

There are currently 6 SoCs in the family:
- AM6254
- AM6252
- AM6251
- AM6234
- AM6232
- AM6231

They differ in:
- Existence of GPU (AM625 vs AM623)
- Number of Cortex-A53 cores (last digit)
 
All of these use ti,am625 as their SoC-level compatible. The differences are currently handled by U-
Boot, which checks various feature flags in the SoC registers and patches the OS DTB accordingly by
removing CPU nodes and disabling the GPU node if necessary.

> 
> > > > For the compatible string we've chosen the TQMa6254 as the representative for the TQMa62xx family.
> > > 
> > > And all the boards in the family are the exact same?
> > 
> > There is a single TQMa62xx PCB, which has some AM62 family SoC installed (AM6254 in the case of the
> > TQMa6254, but all AM62 are possible). TQMa62xx is also the name used for marketing when not talking
> > about a specific SoC variant:
> > https://www.tq-group.com/en/products/tq-embedded/arm-architecture/tqma62xx/
> > 
> > Some SoM variants with different RAM/eMMC/SPI-NOR/... do exist, but they don't have separate device
> > trees (firmware may patch some variant information into the DTB however, like the correct RAM size).
> > 
> > Choosing one representative for the family including the SoC variant number, but not distinguishing
> > minor variants matches the level of detail used for our other SOMs already supported by mainline
> > Linux (like the TQMa64xxL and various i.MX-based platforms).
> 
> I don't like any of this wildcard stuff at all, who is to say that the
> next soc you put on your SoM won't be an am62a7, which has a specific
> compatible in the kernel? Your fallback then would be ti,am62a7 not
> ti,am625. Probably someone will say "that's the am62a family not the
> am62 family" - but that exact thing is why I hate all of this
> wildcarding. It's barely any more effort to have a tqm6231 and a tqm6254
> compatible than what you're doing with wildcard but it is unambiguous.

Our intention here is to have one SOM compatible string for each SoC compatible string. As all SoC
variants use the same compatible ti,am625, we've chosen to do the same (using tq,am625-tqma6254 as
the representative.) A hypothetical SOM using a ti,am62a7 would obviously not use the
tq,am625-tqma6254 compatible string.

At no point we're including wildcards in our compatible strings - we're reusing a specific
compatible string for multiple compatible variants. Or is what you're taking issue with the wildcard
in the description string in the YAML? That one I don't have much of an opinion on.

Best,
Matthias


> 
> 
>  

-- 
TQ-Systems GmbH | Mühlstraße 2, Gut Delling | 82229 Seefeld, Germany
Amtsgericht München, HRB 105018
Geschäftsführer: Detlef Schneider, Rüdiger Stahl, Stefan Schneider
https://www.tq-group.com/
Re: [PATCH 2/5] dt-bindings: arm: ti: Add compatible for AM625-based TQMa62xx SOM family and carrier board
Posted by Rob Herring 1 week, 5 days ago
On Mon, Nov 11, 2024 at 10:58:57AM +0100, Matthias Schiffer wrote:
> On Wed, 2024-11-06 at 16:40 +0000, Conor Dooley wrote:
> > On Wed, Nov 06, 2024 at 01:03:08PM +0100, Matthias Schiffer wrote:
> > > On Tue, 2024-11-05 at 18:55 +0000, Conor Dooley wrote:
> > > > On Tue, Nov 05, 2024 at 11:40:20AM +0100, Matthias Schiffer wrote:
> > > > > On Mon, 2024-11-04 at 18:47 +0000, Conor Dooley wrote:
> > > > > > On Mon, Nov 04, 2024 at 10:47:25AM +0100, Matthias Schiffer wrote:
> > > > > > > The TQMa62xx is a SoM family with a pluggable connector. The MBa62xx is
> > > > > > > the matching reference/starterkit carrier board.
> > > > > > 
> > > > > > Why all the wildcards? Why isn't there a compatible per device in the
> > > > > > family?
> > > 
> > > Because all variants use the same Device Tree. There is also only one compatible and one (main) DTSI
> > > for the AM62 SoC family, which our Device Trees are based on.
> > 
> > So what varies between the members of the family?
> 
> There are currently 6 SoCs in the family:
> - AM6254
> - AM6252
> - AM6251
> - AM6234
> - AM6232
> - AM6231
> 
> They differ in:
> - Existence of GPU (AM625 vs AM623)
> - Number of Cortex-A53 cores (last digit)
>  
> All of these use ti,am625 as their SoC-level compatible. The differences are currently handled by U-
> Boot, which checks various feature flags in the SoC registers and patches the OS DTB accordingly by
> removing CPU nodes and disabling the GPU node if necessary.

That's how it should be. Most likely, those are all the same die. 
Different die are expensive and it takes a high volume to justify the 
cost.

Rob