devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Krzysztof Kozlowski <krzk@kernel.org>
To: Chen-Yu Tsai <wenst@chromium.org>
Cc: Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	devicetree@vger.kernel.org, chrome-platform@lists.linux.dev,
	Julius Werner <jwerner@chromium.org>,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] dt-bindings: firmware: coreboot: Document optional device specific properties
Date: Wed, 19 Nov 2025 11:11:14 +0100	[thread overview]
Message-ID: <c1e46e07-c4b6-45c7-8a03-3ac972b1018f@kernel.org> (raw)
In-Reply-To: <CAGXv+5FwrudX5JwbSTkRMNjOUPmbjzP+qJ7FMrgX0Jj52HvrQw@mail.gmail.com>

On 19/11/2025 10:36, Chen-Yu Tsai wrote:
> On Wed, Nov 19, 2025 at 5:26 PM Krzysztof Kozlowski <krzk@kernel.org> wrote:
>>
>> On 19/11/2025 09:54, Chen-Yu Tsai wrote:
>>> On Wed, Nov 19, 2025 at 4:13 PM Krzysztof Kozlowski <krzk@kernel.org> wrote:
>>>>
>>>> On 19/11/2025 08:32, Chen-Yu Tsai wrote:
>>>>> On Wed, Nov 19, 2025 at 3:13 PM Krzysztof Kozlowski <krzk@kernel.org> wrote:
>>>>>>
>>>>>> On 19/11/2025 08:11, Chen-Yu Tsai wrote:
>>>>>>> Coreboot, or the ChromeOS second stage bootloader, depthcharge, will
>>>>>>> insert device specific properties into the coreboot firmware node when
>>>>>>> there are valid values.
>>>>>>>
>>>>>>> Document these properties in the binding.
>>>>>>>
>>>>>>> Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
>>>>>>> ---
>>>>>>>  Documentation/devicetree/bindings/firmware/coreboot.txt | 9 +++++++++
>>>>>>>  1 file changed, 9 insertions(+)
>>>>>>>
>>>>>>
>>>>>> TXT files cannot receive new properties. You need to first convert to DT
>>>>>> schema.
>>>>>
>>>>> OK. Let me look into this.
>>>>
>>>> After the conversion you will hit another problem - you need vendor
>>>> prefixes for these, because only generic properties can come without
>>>> them. Otherwise (without vendor prefix) these would define the type for
>>>> all other bindings, which probably is not what we want.
>>>
>>> I understand the concern. But given it's specifically under the
>>> /firmware/coreboot node, which is inserted by coreboot, doesn't that
>>> already serve as a namespace or vendor prefix?
>>
>> Unfortunately not or not completely. Properties have single type
>> globally (with exceptions). This means whatever you write here for
>> board-id will affect every possible future board-id property.
> 
> IIUC you mean it applies to every "board-id" property that is under
> a node that matches the compatible "coreboot"?

Type applies to every board-id property.

> 
> Is there any way to limit the match also by path (and not just node name,
> which I know is possible)? If we can limit the scope then maybe it works
> out?
> 
> Or perhaps you are worried that some other new binding with a broader
> scope defines "board-id" and thus conflicts with this one?

Yes. You basically define now type for all "board-id"s.

> 
>>>
>>> FWIW the ship has already sailed for naming. The first three properties
>>> were added to depthcharge [1] and coreboot [2] in 2018. The last property
>>> was added to depthcharge in 2023 [3]. That is what has shipped in immutable
>>> firmware on ARM-based Chromebooks since the RK3399 days. The coreboot
>>> change was presumably added for other devices.
>>>
>>> This change only serves to document what the firmware already provides.
>>> Whether they should be grandfathered in or not doesn't change what the
>>> firmware already does; it just makes it more well known. It's not going
>>> to have any effect on validation either, as the properties are supposed
>>> to be inserted by the bootloader, not added statically to dts files.
>>
>> If you convince Rob then it's fine, but I don't want to accept
>> downstream solutions just because they exist. This opens the door for
>> every vendor to implement what they want and later ask for forgiveness
>> ("oh it is already there and we cannot change shipped devices"). I mean,
>> this was fine back 2010, but that was 15 years ago.
> 
> I completely understand, and yes this does have that feel to it.
> But FWIW the change is in upstream coreboot.

Oh, that is something coreboot should fix - I went to their repo and:

git grep board-id

and there are no bindings (no ABI documentation), which could imply they
use Linux bindings (great!) but then this should have been sent to DT
Linux list for review and included in the kernel bindings.

I understand this is a different case than vendor doing whatever they
want in downstream, but still it is a similar one - "project is doing
whatever they want inside" - and it does not make me happy.


Best regards,
Krzysztof

      reply	other threads:[~2025-11-19 10:11 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-19  7:11 [PATCH] dt-bindings: firmware: coreboot: Document optional device specific properties Chen-Yu Tsai
2025-11-19  7:13 ` Krzysztof Kozlowski
2025-11-19  7:32   ` Chen-Yu Tsai
2025-11-19  8:12     ` Krzysztof Kozlowski
2025-11-19  8:54       ` Chen-Yu Tsai
2025-11-19  9:26         ` Krzysztof Kozlowski
2025-11-19  9:36           ` Chen-Yu Tsai
2025-11-19 10:11             ` Krzysztof Kozlowski [this message]

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=c1e46e07-c4b6-45c7-8a03-3ac972b1018f@kernel.org \
    --to=krzk@kernel.org \
    --cc=chrome-platform@lists.linux.dev \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=jwerner@chromium.org \
    --cc=krzk+dt@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=robh@kernel.org \
    --cc=wenst@chromium.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).