All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marco Felsch <m.felsch@pengutronix.de>
To: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Ahmad Fatoum <a.fatoum@pengutronix.de>,
	devicetree@vger.kernel.org, Robert Jones <rjones@gateworks.com>,
	Stefan Riedmueller <s.riedmueller@phytec.de>,
	Anson Huang <Anson.Huang@nxp.com>,
	Shawn Guo <shawnguo@kernel.org>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	linux-kernel@vger.kernel.org, Li Yang <leoyang.li@nxp.com>,
	Rob Herring <robh+dt@kernel.org>,
	NXP Linux Team <linux-imx@nxp.com>,
	Pengutronix Kernel Team <kernel@pengutronix.de>,
	Andreas Kemnade <andreas@kemnade.info>,
	Fabio Estevam <festevam@gmail.com>,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v2 08/12] ARM: dts: imx6dl-pico: fix board compatibles
Date: Fri, 2 Oct 2020 10:41:19 +0200	[thread overview]
Message-ID: <20201002084119.buc6z7hpesoahmg2@pengutronix.de> (raw)
In-Reply-To: <20201002082012.GA6605@pi3>

Hi,

sorry for jumping in.

On 20-10-02 10:20, Krzysztof Kozlowski wrote:
> On Fri, Oct 02, 2020 at 09:41:28AM +0200, Ahmad Fatoum wrote:
> > Hello,
> > 
> > On 10/1/20 12:37 PM, Krzysztof Kozlowski wrote:
> > >> The existing binding doesn't cover these boards then and needs to be
> > >> extended, no? How about following patch?
> > > 
> > > What do you mean it doesn't cover? It was added exactly to handle them:
> > > +              - technexion,imx6q-pico-dwarf   # TechNexion i.MX6Q Pico-Dwarf
> > > +              - technexion,imx6q-pico-hobbit  # TechNexion i.MX6Q Pico-Hobbit
> > > +              - technexion,imx6q-pico-nymph   # TechNexion i.MX6Q Pico-Nymph
> > > +              - technexion,imx6q-pico-pi      # TechNexion i.MX6Q Pico-Pi
> > > 
> > 
> > Still they are unused. So I'd think these boards should be handled like boards
> > that predated bindings: a binding is written that doesn't break existing users.
> 
> OK, let's assume the binding is not correct and DTSes are good.
> 
> > 
> > >> [I guess we need to keep the two-compatible list they were originally
> > >>  in for compatibility even if it's unused among upstream device trees?]
> > > 
> > > You want to change both the binding (thus breaking the ABI) and update
> > > the DTS to reflect new ABI. Then why having a binding at all?
> > 
> > If we leave the old two-compatible enumeration intact, there is no ABI broken.
> 
> Just to clarify, because I don't get here the "no ABI broken" part:
> ABI is the binding, not the DTS. We can change intree DTS as we like,
> replace compatibles, add nodes, remove nodes. There is no stability
> requirement for DTS contents.
> 
> If we leave two-compatible binding intact, it is a broken binding since
> beginning. Removing non-working, fake ABI is not breaking it because it
> could never work.

The problem here is that it wasn't covered by the review and now we have
the mess. I see the DTB and the Bootloader as Firmware. Now imagine if
the bootloader for these boards had some dt-fixup logic which won't
apply anymore or if the bootloader board init won't get called anymore
since the bootloader folks used the compatible found in the DTS. This
can cause a regression if the old Bootloader tries to boot the new
Kernel+DTS.

> > > I would assume that either binding is correct or DTS. You propose that
> > > both are wrong and both need changes... in such case this is clearly
> > > broken.
> > 
> > IMO the DTS is the correct one. If you want to honor the author's intention
> > that each base board has a different compatible, it should be an extra
> > compatible and not replace the existing one that may be already in use.

Question is what was the author's intention? @Fabio do you have any
comments here?

> OK, we can go with DTS approach. I fixed few of such cases as well,
> assuming that DTS was intended and binding was incorrect. In such case
> all boards will be documented under one compatible technexion,imx6q-pico
> and DTS will not be changed.

Or keep the exisiting bindings and adding the new one. Therefore the
yaml needs to handle two cases for each imx6[qdl]:
  compatible = "technexion,imx6dl-pico-dwarf", "technexion,imx6dl-pico", "fsl,imx6dl";
and
  compatible = "technexion,imx6dl-pico", "fsl,imx6dl";

Regards,
  Marco

WARNING: multiple messages have this Message-ID
From: Marco Felsch <m.felsch@pengutronix.de>
To: Krzysztof Kozlowski <krzk@kernel.org>
Cc: devicetree@vger.kernel.org, Robert Jones <rjones@gateworks.com>,
	Ahmad Fatoum <a.fatoum@pengutronix.de>,
	Stefan Riedmueller <s.riedmueller@phytec.de>,
	Anson Huang <Anson.Huang@nxp.com>,
	Fabio Estevam <festevam@gmail.com>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	linux-kernel@vger.kernel.org, Li Yang <leoyang.li@nxp.com>,
	Rob Herring <robh+dt@kernel.org>,
	NXP Linux Team <linux-imx@nxp.com>,
	Pengutronix Kernel Team <kernel@pengutronix.de>,
	Andreas Kemnade <andreas@kemnade.info>,
	Shawn Guo <shawnguo@kernel.org>,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v2 08/12] ARM: dts: imx6dl-pico: fix board compatibles
Date: Fri, 2 Oct 2020 10:41:19 +0200	[thread overview]
Message-ID: <20201002084119.buc6z7hpesoahmg2@pengutronix.de> (raw)
In-Reply-To: <20201002082012.GA6605@pi3>

Hi,

sorry for jumping in.

On 20-10-02 10:20, Krzysztof Kozlowski wrote:
> On Fri, Oct 02, 2020 at 09:41:28AM +0200, Ahmad Fatoum wrote:
> > Hello,
> > 
> > On 10/1/20 12:37 PM, Krzysztof Kozlowski wrote:
> > >> The existing binding doesn't cover these boards then and needs to be
> > >> extended, no? How about following patch?
> > > 
> > > What do you mean it doesn't cover? It was added exactly to handle them:
> > > +              - technexion,imx6q-pico-dwarf   # TechNexion i.MX6Q Pico-Dwarf
> > > +              - technexion,imx6q-pico-hobbit  # TechNexion i.MX6Q Pico-Hobbit
> > > +              - technexion,imx6q-pico-nymph   # TechNexion i.MX6Q Pico-Nymph
> > > +              - technexion,imx6q-pico-pi      # TechNexion i.MX6Q Pico-Pi
> > > 
> > 
> > Still they are unused. So I'd think these boards should be handled like boards
> > that predated bindings: a binding is written that doesn't break existing users.
> 
> OK, let's assume the binding is not correct and DTSes are good.
> 
> > 
> > >> [I guess we need to keep the two-compatible list they were originally
> > >>  in for compatibility even if it's unused among upstream device trees?]
> > > 
> > > You want to change both the binding (thus breaking the ABI) and update
> > > the DTS to reflect new ABI. Then why having a binding at all?
> > 
> > If we leave the old two-compatible enumeration intact, there is no ABI broken.
> 
> Just to clarify, because I don't get here the "no ABI broken" part:
> ABI is the binding, not the DTS. We can change intree DTS as we like,
> replace compatibles, add nodes, remove nodes. There is no stability
> requirement for DTS contents.
> 
> If we leave two-compatible binding intact, it is a broken binding since
> beginning. Removing non-working, fake ABI is not breaking it because it
> could never work.

The problem here is that it wasn't covered by the review and now we have
the mess. I see the DTB and the Bootloader as Firmware. Now imagine if
the bootloader for these boards had some dt-fixup logic which won't
apply anymore or if the bootloader board init won't get called anymore
since the bootloader folks used the compatible found in the DTS. This
can cause a regression if the old Bootloader tries to boot the new
Kernel+DTS.

> > > I would assume that either binding is correct or DTS. You propose that
> > > both are wrong and both need changes... in such case this is clearly
> > > broken.
> > 
> > IMO the DTS is the correct one. If you want to honor the author's intention
> > that each base board has a different compatible, it should be an extra
> > compatible and not replace the existing one that may be already in use.

Question is what was the author's intention? @Fabio do you have any
comments here?

> OK, we can go with DTS approach. I fixed few of such cases as well,
> assuming that DTS was intended and binding was incorrect. In such case
> all boards will be documented under one compatible technexion,imx6q-pico
> and DTS will not be changed.

Or keep the exisiting bindings and adding the new one. Therefore the
yaml needs to handle two cases for each imx6[qdl]:
  compatible = "technexion,imx6dl-pico-dwarf", "technexion,imx6dl-pico", "fsl,imx6dl";
and
  compatible = "technexion,imx6dl-pico", "fsl,imx6dl";

Regards,
  Marco

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2020-10-02  8:41 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-30 19:01 [PATCH v2 00/12] ARM: dts: imx: Board compatibles cleanup Krzysztof Kozlowski
2020-09-30 19:01 ` Krzysztof Kozlowski
2020-09-30 19:01 ` [PATCH v2 01/12] dt-bindings: vendor-prefixes: add MicroSys Krzysztof Kozlowski
2020-09-30 19:01   ` Krzysztof Kozlowski
2020-10-06 17:36   ` Rob Herring
2020-10-06 17:36     ` Rob Herring
2020-09-30 19:01 ` [PATCH v2 02/12] dt-bindings: vendor-prefixes: add Revotics Krzysztof Kozlowski
2020-09-30 19:01   ` Krzysztof Kozlowski
2020-10-06 17:36   ` Rob Herring
2020-10-06 17:36     ` Rob Herring
2020-09-30 19:01 ` [PATCH v2 03/12] dt-bindings: arm: fsl: document i.MX25 and i.MX27 boards Krzysztof Kozlowski
2020-09-30 19:01   ` Krzysztof Kozlowski
2020-09-30 19:01 ` [PATCH v2 04/12] dt-bindings: arm: fsl: document i.MX51 boards Krzysztof Kozlowski
2020-09-30 19:01   ` Krzysztof Kozlowski
2020-09-30 19:01 ` [PATCH v2 05/12] dt-bindings: arm: fsl: document i.MX53 boards Krzysztof Kozlowski
2020-09-30 19:01   ` Krzysztof Kozlowski
2020-09-30 19:01 ` [PATCH v2 06/12] dt-bindings: arm: fsl: document VF boards Krzysztof Kozlowski
2020-09-30 19:01   ` Krzysztof Kozlowski
2020-09-30 19:01 ` [PATCH v2 07/12] dt-bindings: arm: fsl: document i.MX6DL boards Krzysztof Kozlowski
2020-09-30 19:01   ` Krzysztof Kozlowski
2020-09-30 19:01 ` [PATCH v2 08/12] ARM: dts: imx6dl-pico: fix board compatibles Krzysztof Kozlowski
2020-09-30 19:01   ` Krzysztof Kozlowski
2020-10-01  7:22   ` Ahmad Fatoum
2020-10-01  7:22     ` Ahmad Fatoum
2020-10-01  7:32     ` Krzysztof Kozlowski
2020-10-01  7:32       ` Krzysztof Kozlowski
2020-10-01 10:19       ` Ahmad Fatoum
2020-10-01 10:19         ` Ahmad Fatoum
2020-10-01 10:37         ` Krzysztof Kozlowski
2020-10-01 10:37           ` Krzysztof Kozlowski
2020-10-02  7:41           ` Ahmad Fatoum
2020-10-02  7:41             ` Ahmad Fatoum
2020-10-02  8:20             ` Krzysztof Kozlowski
2020-10-02  8:20               ` Krzysztof Kozlowski
2020-10-02  8:34               ` Ahmad Fatoum
2020-10-02  8:34                 ` Ahmad Fatoum
2020-10-02  8:41               ` Marco Felsch [this message]
2020-10-02  8:41                 ` Marco Felsch
2020-10-02 10:36                 ` Krzysztof Kozlowski
2020-10-02 10:36                   ` Krzysztof Kozlowski
2020-10-05 11:39                 ` Fabio Estevam
2020-10-05 11:39                   ` Fabio Estevam
2020-09-30 19:01 ` [PATCH v2 09/12] dt-bindings: vendor-prefixes: add ABB Krzysztof Kozlowski
2020-09-30 19:01   ` Krzysztof Kozlowski
2020-10-01  3:49   ` Heiko Schocher
2020-10-01  3:49     ` Heiko Schocher
2020-10-06 17:38   ` Rob Herring
2020-10-06 17:38     ` Rob Herring
2020-09-30 19:01 ` [PATCH v2 10/12] dt-bindings: arm: fsl: document i.MX6DL Aristainetos boards Krzysztof Kozlowski
2020-09-30 19:01   ` Krzysztof Kozlowski
2020-10-01  3:50   ` Heiko Schocher
2020-10-01  3:50     ` Heiko Schocher
2020-10-06 17:38   ` Rob Herring
2020-10-06 17:38     ` Rob Herring
2020-09-30 19:01 ` [PATCH v2 11/12] ARM: dts: imx6dl: add compatibles for " Krzysztof Kozlowski
2020-09-30 19:01   ` Krzysztof Kozlowski
2020-10-01  3:51   ` Heiko Schocher
2020-10-01  3:51     ` Heiko Schocher
2020-09-30 19:01 ` [PATCH v2 12/12] dt-bindings: arm: fsl: document i.MX6Q boards Krzysztof Kozlowski
2020-09-30 19:01   ` Krzysztof Kozlowski
2020-09-30 19:04   ` Krzysztof Kozlowski
2020-09-30 19:04     ` Krzysztof Kozlowski
2020-10-30  6:51 ` [PATCH v2 00/12] ARM: dts: imx: Board compatibles cleanup Shawn Guo
2020-10-30  6:51   ` Shawn Guo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201002084119.buc6z7hpesoahmg2@pengutronix.de \
    --to=m.felsch@pengutronix.de \
    --cc=Anson.Huang@nxp.com \
    --cc=a.fatoum@pengutronix.de \
    --cc=andreas@kemnade.info \
    --cc=devicetree@vger.kernel.org \
    --cc=festevam@gmail.com \
    --cc=kernel@pengutronix.de \
    --cc=krzk@kernel.org \
    --cc=leoyang.li@nxp.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-imx@nxp.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rjones@gateworks.com \
    --cc=robh+dt@kernel.org \
    --cc=s.hauer@pengutronix.de \
    --cc=s.riedmueller@phytec.de \
    --cc=shawnguo@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.