From: Stephen Boyd <sboyd@kernel.org>
To: "Pali Rohár" <pali@kernel.org>
Cc: "Marek Behún" <kabel@kernel.org>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Michael Turquette" <mturquette@baylibre.com>,
"Rob Herring" <robh+dt@kernel.org>,
"Andrew Lunn" <andrew@lunn.ch>,
"Gregory Clement" <gregory.clement@bootlin.com>,
"Sebastian Hesselbarth" <sebastian.hesselbarth@gmail.com>,
"Vladimir Vid" <vladimir.vid@sartura.hr>,
linux-clk@vger.kernel.org, linux-serial@vger.kernel.org,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org
Subject: Re: [PATCH v7 3/6] dt-bindings: mvebu-uart: document DT bindings for marvell,armada-3700-uart-clock
Date: Tue, 25 Jan 2022 12:40:04 -0800 [thread overview]
Message-ID: <20220125204006.A6D09C340E0@smtp.kernel.org> (raw)
In-Reply-To: <20220120092641.o4ffzeyakhuuf3c7@pali>
Quoting Pali Rohár (2022-01-20 01:26:41)
> On Wednesday 19 January 2022 22:01:47 Stephen Boyd wrote:
> > >
> > > Ok, now I see what you mean.
> > >
> > > But problem is that this is not backward compatible change. And would
> > > not work per existing DT bindings definitions, which defines how
> > > bootloader should set configured clocks.
> > >
> > > As I wrote in emails 3 months ago, this new "proposed" DTS definition is
> > > something which I would have chosen if I had designed this driver and
> > > bindings in past. But that did not happen and different approach is
> > > already widely in used.
> > >
> > > To support existing DTS definitions and bootloaders, it is really
> > > required to have current structure backward compatible like it is
> > > defined in current DT bindings document. And my changes in this patch
> > > series are backward compatible.
> >
> > I'm lost. Is the bootloader the one that's expecting some particular
> > serial node format and updating something? What is the bootloader doing?
>
> If bootloader uses or configures UART to different clock it needs to
> update "clocks" property in DT. Otherwise UART would be unusable and
> there would be no dmesg output.
Got it! I didn't see that part mentioned anywhere in the commit text
though. To the uninformed reviewer like me it is hard to know about this
bootloader design unless the commit text explains that there's no other
way to do this.
>
> A3720 heavily depends that bootloader patches at boot time DTB file to
> the layout of the current hardware.
>
> > >
> > > To change DTS structure, it would be needed to provide uart nodes in DTS
> > > files two times: once in old style (the current one) and second time in
> > > this new style.
> >
> > That's not a good idea. Why do we need to support both at the same time?
>
> Because old bootloaders do not and will never support this new style. It
> is not only linux kernel project who provides DTB files. Also bootloader
> itself has own DTB files and use it for booting (e.g kernel). For some
> boards is in-kernel-tree DTS file only as a reference. So it is
> important that kernel can use and support DTS files from old version and
> also from the new patched version. Gregory (A3720 DTS files maintainer)
> always ask me what happens if I try to boot new patched kernel drivers
> with old unmodified DTS files and wants to know if nothing is broken by
> introduced changed.
>
> > >
> > > But such thing would even more complicate updating driver and it needs
> > > to be implemented.
> > >
> > > Plus this would open a question how to define default stdout-path if
> > > there would be 4 serial nodes, where one pair would describe old style
> > > and second pair new style; meaning that 2 cross nodes would describe
> > > same define.
> >
> > Huh? We shouldn't have both bindings present in the DTB.
>
> Ideally yes, I would like to see to prevent it. But for backward
> compatibility we really need old bindings still present (as explained
> above).
>
> So really I see two options here: Make changes in patches backward
> compatible (old nodes stay in DT and also kernel would be able to use
> old DT). Or let old bindings untouched in DT and new backward
> incompatible definitions would have to be in separate nodes.
Ok I understand now. We have to keep both the serial nodes because the
bootloader is patching them. To make matters worse, one or the other
node may be disabled so we can't even add the new bits to the uart1
node. Can you update the commit text to record this sad state of affairs
and indicate that the only way to support this is to make a new node in
DT that the bootloader doesn't know about?
WARNING: multiple messages have this Message-ID (diff)
From: Stephen Boyd <sboyd@kernel.org>
To: "Pali Rohár" <pali@kernel.org>
Cc: "Marek Behún" <kabel@kernel.org>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Michael Turquette" <mturquette@baylibre.com>,
"Rob Herring" <robh+dt@kernel.org>,
"Andrew Lunn" <andrew@lunn.ch>,
"Gregory Clement" <gregory.clement@bootlin.com>,
"Sebastian Hesselbarth" <sebastian.hesselbarth@gmail.com>,
"Vladimir Vid" <vladimir.vid@sartura.hr>,
linux-clk@vger.kernel.org, linux-serial@vger.kernel.org,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org
Subject: Re: [PATCH v7 3/6] dt-bindings: mvebu-uart: document DT bindings for marvell, armada-3700-uart-clock
Date: Tue, 25 Jan 2022 12:40:04 -0800 [thread overview]
Message-ID: <20220125204006.A6D09C340E0@smtp.kernel.org> (raw)
In-Reply-To: <20220120092641.o4ffzeyakhuuf3c7@pali>
Quoting Pali Rohár (2022-01-20 01:26:41)
> On Wednesday 19 January 2022 22:01:47 Stephen Boyd wrote:
> > >
> > > Ok, now I see what you mean.
> > >
> > > But problem is that this is not backward compatible change. And would
> > > not work per existing DT bindings definitions, which defines how
> > > bootloader should set configured clocks.
> > >
> > > As I wrote in emails 3 months ago, this new "proposed" DTS definition is
> > > something which I would have chosen if I had designed this driver and
> > > bindings in past. But that did not happen and different approach is
> > > already widely in used.
> > >
> > > To support existing DTS definitions and bootloaders, it is really
> > > required to have current structure backward compatible like it is
> > > defined in current DT bindings document. And my changes in this patch
> > > series are backward compatible.
> >
> > I'm lost. Is the bootloader the one that's expecting some particular
> > serial node format and updating something? What is the bootloader doing?
>
> If bootloader uses or configures UART to different clock it needs to
> update "clocks" property in DT. Otherwise UART would be unusable and
> there would be no dmesg output.
Got it! I didn't see that part mentioned anywhere in the commit text
though. To the uninformed reviewer like me it is hard to know about this
bootloader design unless the commit text explains that there's no other
way to do this.
>
> A3720 heavily depends that bootloader patches at boot time DTB file to
> the layout of the current hardware.
>
> > >
> > > To change DTS structure, it would be needed to provide uart nodes in DTS
> > > files two times: once in old style (the current one) and second time in
> > > this new style.
> >
> > That's not a good idea. Why do we need to support both at the same time?
>
> Because old bootloaders do not and will never support this new style. It
> is not only linux kernel project who provides DTB files. Also bootloader
> itself has own DTB files and use it for booting (e.g kernel). For some
> boards is in-kernel-tree DTS file only as a reference. So it is
> important that kernel can use and support DTS files from old version and
> also from the new patched version. Gregory (A3720 DTS files maintainer)
> always ask me what happens if I try to boot new patched kernel drivers
> with old unmodified DTS files and wants to know if nothing is broken by
> introduced changed.
>
> > >
> > > But such thing would even more complicate updating driver and it needs
> > > to be implemented.
> > >
> > > Plus this would open a question how to define default stdout-path if
> > > there would be 4 serial nodes, where one pair would describe old style
> > > and second pair new style; meaning that 2 cross nodes would describe
> > > same define.
> >
> > Huh? We shouldn't have both bindings present in the DTB.
>
> Ideally yes, I would like to see to prevent it. But for backward
> compatibility we really need old bindings still present (as explained
> above).
>
> So really I see two options here: Make changes in patches backward
> compatible (old nodes stay in DT and also kernel would be able to use
> old DT). Or let old bindings untouched in DT and new backward
> incompatible definitions would have to be in separate nodes.
Ok I understand now. We have to keep both the serial nodes because the
bootloader is patching them. To make matters worse, one or the other
node may be disabled so we can't even add the new bits to the uart1
node. Can you update the commit text to record this sad state of affairs
and indicate that the only way to support this is to make a new node in
DT that the bootloader doesn't know about?
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2022-01-25 20:40 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-30 9:58 [PATCH v7 0/6] serial: mvebu-uart: Support for higher baudrates Pali Rohár
2021-09-30 9:58 ` Pali Rohár
2021-09-30 9:58 ` [PATCH v7 1/6] math64: New DIV_U64_ROUND_CLOSEST helper Pali Rohár
2021-09-30 9:58 ` Pali Rohár
2021-09-30 9:58 ` [PATCH v7 2/6] serial: mvebu-uart: implement UART clock driver for configuring UART base clock Pali Rohár
2021-09-30 9:58 ` Pali Rohár
2021-10-13 14:16 ` Gregory CLEMENT
2021-10-13 14:16 ` Gregory CLEMENT
2021-10-13 14:21 ` Pali Rohár
2021-10-13 14:21 ` Pali Rohár
2021-09-30 9:58 ` [PATCH v7 3/6] dt-bindings: mvebu-uart: document DT bindings for marvell,armada-3700-uart-clock Pali Rohár
2021-09-30 9:58 ` [PATCH v7 3/6] dt-bindings: mvebu-uart: document DT bindings for marvell, armada-3700-uart-clock Pali Rohár
2021-10-06 21:07 ` [PATCH v7 3/6] dt-bindings: mvebu-uart: document DT bindings for marvell,armada-3700-uart-clock Rob Herring
2021-10-06 21:07 ` Rob Herring
2021-10-15 0:13 ` Stephen Boyd
2021-10-15 0:13 ` [PATCH v7 3/6] dt-bindings: mvebu-uart: document DT bindings for marvell, armada-3700-uart-clock Stephen Boyd
2021-10-15 9:09 ` [PATCH v7 3/6] dt-bindings: mvebu-uart: document DT bindings for marvell,armada-3700-uart-clock Pali Rohár
2021-10-15 9:09 ` Pali Rohár
2021-10-15 9:37 ` Pali Rohár
2021-10-15 9:37 ` Pali Rohár
2021-10-15 21:55 ` Stephen Boyd
2021-10-15 21:55 ` [PATCH v7 3/6] dt-bindings: mvebu-uart: document DT bindings for marvell, armada-3700-uart-clock Stephen Boyd
2021-10-15 22:08 ` Mark Kettenis
2021-10-15 22:08 ` Mark Kettenis
2021-10-16 6:42 ` [PATCH v7 3/6] dt-bindings: mvebu-uart: document DT bindings for marvell,armada-3700-uart-clock Pali Rohár
2021-10-16 6:42 ` Pali Rohár
2022-01-15 8:02 ` Stephen Boyd
2022-01-15 8:02 ` [PATCH v7 3/6] dt-bindings: mvebu-uart: document DT bindings for marvell, armada-3700-uart-clock Stephen Boyd
2022-01-15 11:50 ` [PATCH v7 3/6] dt-bindings: mvebu-uart: document DT bindings for marvell,armada-3700-uart-clock Pali Rohár
2022-01-15 11:50 ` Pali Rohár
2022-01-15 12:05 ` Marek Behún
2022-01-15 12:05 ` Marek Behún
2022-01-15 12:26 ` Pali Rohár
2022-01-15 12:26 ` Pali Rohár
2022-01-19 23:16 ` Stephen Boyd
2022-01-19 23:16 ` [PATCH v7 3/6] dt-bindings: mvebu-uart: document DT bindings for marvell, armada-3700-uart-clock Stephen Boyd
2022-01-20 0:06 ` [PATCH v7 3/6] dt-bindings: mvebu-uart: document DT bindings for marvell,armada-3700-uart-clock Pali Rohár
2022-01-20 0:06 ` Pali Rohár
2022-01-20 6:01 ` Stephen Boyd
2022-01-20 6:01 ` [PATCH v7 3/6] dt-bindings: mvebu-uart: document DT bindings for marvell, armada-3700-uart-clock Stephen Boyd
2022-01-20 9:26 ` [PATCH v7 3/6] dt-bindings: mvebu-uart: document DT bindings for marvell,armada-3700-uart-clock Pali Rohár
2022-01-20 9:26 ` Pali Rohár
2022-01-25 20:40 ` Stephen Boyd [this message]
2022-01-25 20:40 ` [PATCH v7 3/6] dt-bindings: mvebu-uart: document DT bindings for marvell, armada-3700-uart-clock Stephen Boyd
2021-09-30 9:58 ` [PATCH v7 4/6] dt-bindings: mvebu-uart: update information about UART clock Pali Rohár
2021-09-30 9:58 ` Pali Rohár
2021-10-06 21:11 ` Rob Herring
2021-10-06 21:11 ` Rob Herring
2021-09-30 9:58 ` [PATCH v7 5/6] arm64: dts: marvell: armada-37xx: add device node for UART clock and use it Pali Rohár
2021-09-30 9:58 ` Pali Rohár
2021-10-13 14:13 ` Gregory CLEMENT
2021-10-13 14:13 ` Gregory CLEMENT
2021-10-13 14:19 ` Pali Rohár
2021-10-13 14:19 ` Pali Rohár
2021-09-30 9:58 ` [PATCH v7 6/6] serial: mvebu-uart: implement support for baudrates higher than 230400 Pali Rohár
2021-09-30 9:58 ` Pali Rohár
2021-10-01 12:11 ` [PATCH v7 0/6] serial: mvebu-uart: Support for higher baudrates Pali Rohár
2021-10-01 12:11 ` Pali Rohár
2021-11-03 21:42 ` Pali Rohár
2021-11-03 21:42 ` Pali Rohár
2021-12-17 17:23 ` Gregory CLEMENT
2021-12-17 17:23 ` Gregory CLEMENT
2022-01-14 10:51 ` Pali Rohár
2022-01-14 10:51 ` Pali Rohár
2022-01-14 22:56 ` Stephen Boyd
2022-01-14 22:56 ` Stephen Boyd
2022-01-14 23:05 ` Pali Rohár
2022-01-14 23:05 ` Pali Rohár
2022-01-14 23:16 ` Stephen Boyd
2022-01-14 23:16 ` Stephen Boyd
2022-01-14 23:20 ` Pali Rohár
2022-01-14 23:20 ` Pali Rohár
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=20220125204006.A6D09C340E0@smtp.kernel.org \
--to=sboyd@kernel.org \
--cc=andrew@lunn.ch \
--cc=devicetree@vger.kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=gregory.clement@bootlin.com \
--cc=kabel@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=mturquette@baylibre.com \
--cc=pali@kernel.org \
--cc=robh+dt@kernel.org \
--cc=sebastian.hesselbarth@gmail.com \
--cc=vladimir.vid@sartura.hr \
/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.