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: <628a7302-1409-81f7-f72b-6b1645df9225@linaro.org>
Date:   Fri, 1 Jul 2022 08:57:22 +0200
From:   Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>
To:     Julius Werner <jwerner@...omium.org>
Cc:     Krzysztof Kozlowski <krzk+dt@...nel.org>,
        Dmitry Osipenko <digetx@...il.com>,
        Jian-Jia Su <jjsu@...gle.com>,
        Doug Anderson <dianders@...omium.org>,
        Rob Herring <robh+dt@...nel.org>,
        LKML <linux-kernel@...r.kernel.org>,
        "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" 
        <devicetree@...r.kernel.org>,
        Nikola Milosavljevic <mnidza@...look.com>
Subject: Re: [RFC] Correct memory layout reporting for "jedec,lpddr2" and
 related bindings

On 01/07/2022 02:52, Julius Werner wrote:
>> How the asymmetric SDRAMs report density? This is a field with
>> fixed/enum values, so does it mean two-rank-asymmetric module has two
>> registers, one per each rank and choice of register depends on chip select?
> 
> Yes, each rank has a completely separate set of mode registers.

Then I would assume that all lpddr properties can differ between ranks,
including the timings. But probably some SDRAM memory expert should
clarify that.

> 
>> Manufacturer ID is taken from compatible. LPDDR3 has it deprecated.
> 
> Oh! Oh no, I only just saw that. I wish you had CCed us on that patch. :/
> 
> That really doesn't work for our use case, we can't generate a
> specific compatible string for each part number. This may work when
> your board is only using a single memory part and you can hardcode
> that in the DTB blob bundled with the kernel, but we are trying to do
> runtime identification between dozens of different parts on our
> boards. The whole point of us wanting to add these bindings is that we
> want to have the firmware inject the raw values it can read from mode
> registers into the device tree (with just the compatible string
> "jedec,lpddr3"),

You cannot have jedec,lpddr3 alone. You need specific compatible.

> so that we can then delegate the task of matching
> those values to part numbers to a userspace process. 

Constructing a vendor from mode registers is like 10 lines of C code, so
this is not a problem. Trouble would be with device part of compatible.

> We don't want to
> hardcode long tables for ID-to-string matching that have to be updated
> all the time in our constrained firmware space.

I understand.

> Can we please revert that deprecation and at least keep the property
> around as optional?

Yes, we can. You still would need to generate the compatible according
to the current bindings. Whether we can change it I am not sure. I think
it depends how much customization is possible per vendor, according to
JEDEC spec. If we never ever have to identify specific part, because
JEDEC spec and registers tell us everything, then we could skip it,
similarly to lpddr2 and jedec,spi-nor.

Best regards,
Krzysztof

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ