lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CALHNRZ_WPUM8wKSLcyyZm4jc9onBYiP3oLd=39k4=hoqLzHhrA@mail.gmail.com>
Date: Thu, 8 May 2025 07:27:52 -0500
From: Aaron Kling <webgeek1234@...il.com>
To: Krzysztof Kozlowski <krzk@...nel.org>
Cc: Thierry Reding <thierry.reding@...il.com>, Jonathan Hunter <jonathanh@...dia.com>, 
	Rob Herring <robh@...nel.org>, Conor Dooley <conor+dt@...nel.org>, 
	Krzysztof Kozlowski <krzk+dt@...nel.org>, linux-kernel@...r.kernel.org, 
	linux-tegra@...r.kernel.org, devicetree@...r.kernel.org
Subject: Re: [PATCH v2 0/4] memory: tegra210-emc: Support Device Tree EMC Tables

On Thu, May 8, 2025 at 6:47 AM Krzysztof Kozlowski <krzk@...nel.org> wrote:
>
> On 08/05/2025 13:37, Aaron Kling wrote:
> > On Thu, May 8, 2025 at 2:41 AM Thierry Reding <thierry.reding@...il.com> wrote:
> >>
> >> On Thu, May 08, 2025 at 01:07:37AM -0500, Aaron Kling via B4 Relay wrote:
> >>> Signed-off-by: Aaron Kling <webgeek1234@...il.com>
> >>> ---
> >>> Changes in v2:
> >>> - Add patch to describe the emc table bindings
> >>> - Add patch to allow a fallback compatible on the tegra210 emc device to
> >>>   match firmware expectations
> >>> - Add a patch to include the baseline emc tables on p2180
> >>> - Link to v1: https://lore.kernel.org/r/20250430-tegra210-emc-dt-v1-1-99896fa69341@gmail.com
> >>>
> >>> ---
> >>> Aaron Kling (4):
> >>>       dt-bindings: memory-controllers: Describe Tegra210 EMC Tables
> >>>       dt-bindings: memory-controllers: tegra210: Allow fallback compatible
> >>>       arm64: tegra: Add EMC timings to P2180
> >>>       memory: tegra210-emc: Support Device Tree EMC Tables
> >>>
> >>>  .../nvidia,tegra21-emc-table.yaml                  |  1692 +
> >>>  .../memory-controllers/nvidia,tegra210-emc.yaml    |    44 +-
> >>>  arch/arm64/boot/dts/nvidia/tegra210-p2180-emc.dtsi | 49749 +++++++++++++++++++
> >>>  arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi     |     1 +
> >>>  drivers/memory/tegra/tegra210-emc-core.c           |   246 +-
> >>>  5 files changed, 51721 insertions(+), 11 deletions(-)
> >>
> >> We've had discussions about this in the past, and I don't think this is
> >> going to go anywhere. Device tree maintainers have repeatedly said that
> >> they won't accept this kind of binding, which is, admittedly, a bit non-
> >> sensical. 50,000 lines of DT for EMC tables is just crazy.
> >>
> >> The existing binary table bindings were created to avoid the need for
> >> this. I don't know how easy this is to achieve for all bootloaders, but
> >> the expectation was that these tables should be passed in their native
> >> format.
> >
> > Mmm, this would definitely be an issue with my long term end goal of
> > supporting the SHIELD t210 devices on mainline. The bootloader on
> > those devices cannot be replaced due to secure boot and that variant
> > of the bootloader only supports this dt table for emc. And support
> > without emc reclocking would be rather unusable as a consumer media
> > device. Unless the devices could get a bootloader update switching to
> > the reserved memory tables before they go eol, but I don't see that as
> > likely.
> >
> > So I guess the question goes to Krzysztof. I didn't have the bindings
>
> What is the question exactly?

If there's any way to get these bindings and the dt change accepted.
Or getting the code change accepted without them. If there isn't, then
there's no reason for me to put any more effort into this series and I
need to start looking at alternatives. Like forking a downstream copy
of this driver for my Android efforts. I'm trying very hard to avoid
this as much as I can, though. The more downstream variation I have,
the more maintenance work I have to do over time.

>
> > or a copy of the tables in v1 of this series, mostly due to a
> > misunderstanding, and was fairly asked to add them. That's this
> > revision. Would you consider accepting this after any fixes? Or is
> > this concept entirely dead in the water?
>
>
> The binding here is far away from what is in general acceptable DTS
> style, so in general this won't be easy to upstream. If we allow any
> crap to be sent post factum, what is the benefit for companies to
> actually took to community BEFORE they ship products? None, because that
> crap will be always sent after release with explanation "we cannot
> change now". Old platforms with Android bootloaders are in general
> encouraged to move to something decent, like U-boot.

I'm not even sure I can work around this by chainloading u-boot. With
some hoop jumping, I could read in the dt tables in u-boot, but I'm
not sure how simple it would be to write out a reserved memory table
to match what mainline currently expects. And I can't just replace the
entire boot stack due to secure boot.

The devices I'm talking about are not yet end of life, so it is
physically possible for them to get a bootloader update to conform to
the existing mainline model. But I'm just one guy trying to do 3rd
party support for these devices, I can't affect what Nvidia does with
the signed bootloader on these devices. I'd love to be able to swap
out an open source bootloader on these, but the secure boot setup
prevents that.

> 50 kB DTS is another point - I don't even understand why do you need it
> if you claim this is coming from bootloader.

Like mentioned in the commit message for the 50k lines of dt
additions, the existing bootloader will only write the trained values
to dt nodes that already exist. If it doesn't find the nodes, it'll
still do the training, but nothing will be written to the in-ram copy
of the kernel dtb.

Sincerely,
Aaron

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ