* [PATCH] dt-bindings: firmware: coreboot: Document optional device specific properties
@ 2025-11-19 7:11 Chen-Yu Tsai
2025-11-19 7:13 ` Krzysztof Kozlowski
0 siblings, 1 reply; 8+ messages in thread
From: Chen-Yu Tsai @ 2025-11-19 7:11 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: Chen-Yu Tsai, devicetree, chrome-platform, Julius Werner,
linux-arm-kernel, linux-kernel
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(+)
diff --git a/Documentation/devicetree/bindings/firmware/coreboot.txt b/Documentation/devicetree/bindings/firmware/coreboot.txt
index 4c955703cea8..0d04ea482aa9 100644
--- a/Documentation/devicetree/bindings/firmware/coreboot.txt
+++ b/Documentation/devicetree/bindings/firmware/coreboot.txt
@@ -21,6 +21,15 @@ Required properties:
0xc0389481 that resides in the topmost 8 bytes of the area.
See coreboot's src/include/imd.h for details.
+Optional properties:
+- board-id: Contains the board revision number.
+- ram-code: Contains the board's DRAM configuration type.
+- sku-id: Contains the device variant SKU ID.
+- fw-config: Contains the device variant FW config value.
+
+The optional properties are only populated if the values parsed by coreboot
+are valid.
+
Example:
firmware {
ranges;
--
2.52.0.rc1.455.g30608eb744-goog
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH] dt-bindings: firmware: coreboot: Document optional device specific properties
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
0 siblings, 1 reply; 8+ messages in thread
From: Krzysztof Kozlowski @ 2025-11-19 7:13 UTC (permalink / raw)
To: Chen-Yu Tsai, Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: devicetree, chrome-platform, Julius Werner, linux-arm-kernel,
linux-kernel
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.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] dt-bindings: firmware: coreboot: Document optional device specific properties
2025-11-19 7:13 ` Krzysztof Kozlowski
@ 2025-11-19 7:32 ` Chen-Yu Tsai
2025-11-19 8:12 ` Krzysztof Kozlowski
0 siblings, 1 reply; 8+ messages in thread
From: Chen-Yu Tsai @ 2025-11-19 7:32 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, devicetree,
chrome-platform, Julius Werner, linux-arm-kernel, linux-kernel
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.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] dt-bindings: firmware: coreboot: Document optional device specific properties
2025-11-19 7:32 ` Chen-Yu Tsai
@ 2025-11-19 8:12 ` Krzysztof Kozlowski
2025-11-19 8:54 ` Chen-Yu Tsai
0 siblings, 1 reply; 8+ messages in thread
From: Krzysztof Kozlowski @ 2025-11-19 8:12 UTC (permalink / raw)
To: Chen-Yu Tsai
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, devicetree,
chrome-platform, Julius Werner, linux-arm-kernel, linux-kernel
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.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] dt-bindings: firmware: coreboot: Document optional device specific properties
2025-11-19 8:12 ` Krzysztof Kozlowski
@ 2025-11-19 8:54 ` Chen-Yu Tsai
2025-11-19 9:26 ` Krzysztof Kozlowski
0 siblings, 1 reply; 8+ messages in thread
From: Chen-Yu Tsai @ 2025-11-19 8:54 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, devicetree,
chrome-platform, Julius Werner, linux-arm-kernel, linux-kernel
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?
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.
Presumably we can update the code to use a new name, but we still have
to live with the old names for up to 10 years.
ChenYu
[1] https://crrev.com/c/1028728
[2] https://review.coreboot.org/c/coreboot/+/28104
[3] https://crrev.com/c/4975217
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] dt-bindings: firmware: coreboot: Document optional device specific properties
2025-11-19 8:54 ` Chen-Yu Tsai
@ 2025-11-19 9:26 ` Krzysztof Kozlowski
2025-11-19 9:36 ` Chen-Yu Tsai
0 siblings, 1 reply; 8+ messages in thread
From: Krzysztof Kozlowski @ 2025-11-19 9:26 UTC (permalink / raw)
To: Chen-Yu Tsai
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, devicetree,
chrome-platform, Julius Werner, linux-arm-kernel, linux-kernel
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.
>
> 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.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] dt-bindings: firmware: coreboot: Document optional device specific properties
2025-11-19 9:26 ` Krzysztof Kozlowski
@ 2025-11-19 9:36 ` Chen-Yu Tsai
2025-11-19 10:11 ` Krzysztof Kozlowski
0 siblings, 1 reply; 8+ messages in thread
From: Chen-Yu Tsai @ 2025-11-19 9:36 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, devicetree,
chrome-platform, Julius Werner, linux-arm-kernel, linux-kernel
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"?
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?
> >
> > 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.
Thanks
ChenYu
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] dt-bindings: firmware: coreboot: Document optional device specific properties
2025-11-19 9:36 ` Chen-Yu Tsai
@ 2025-11-19 10:11 ` Krzysztof Kozlowski
0 siblings, 0 replies; 8+ messages in thread
From: Krzysztof Kozlowski @ 2025-11-19 10:11 UTC (permalink / raw)
To: Chen-Yu Tsai
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, devicetree,
chrome-platform, Julius Werner, linux-arm-kernel, linux-kernel
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
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2025-11-19 10:11 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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 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).