[1/2] dt-bindings: arm: stm32: don't mix SCMI and non-SCMI board compatibles
Commit Message
SCMI-enabled boards may restrict access to resources like clocks, resets
and regulators to the secure world.
A normal world bootloader or kernel compatible with the non-SCMI-enabled
board is thus not guaranteed to be able to deal with the SCMI variant.
It follows, that the SCMI-enabled board is not compatible with the
non-SCMI enabled board, so drop that compatible.
This change is motivated by the barebox' bootloader's use of bootloader
specification files[1][2]: barebox for non-SCMI DK2 will compare its
own top-level "stm32mp157c-dk2" compatible with all compatibles
listed in the device tree referenced by each bootloader spec file.
If the boot medium contains a configuration with
compatible = "st,stm32mp157c-dk2-scmi", "st,stm32mp157c-dk2", "st,stm32mp157";
it will match, because of the second compatible and boot a kernel with
SCMI enabled, although no SCMI may exist on the platform.
[1]: https://uapi-group.org/specifications/specs/boot_loader_specification/
[2]: https://www.barebox.org/doc/latest/user/booting-linux.html#boot-loader-specification
Fixes: 8e14ebb1f08f ("dt-bindings: arm: stm32: Add SCMI version of STM32 boards (DK1/DK2/ED1/EV1)")
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
---
.../devicetree/bindings/arm/stm32/stm32.yaml | 16 +++-------------
1 file changed, 3 insertions(+), 13 deletions(-)
Comments
On Wed, 22 Nov 2023 19:52:33 +0100, Ahmad Fatoum wrote:
> SCMI-enabled boards may restrict access to resources like clocks, resets
> and regulators to the secure world.
>
> A normal world bootloader or kernel compatible with the non-SCMI-enabled
> board is thus not guaranteed to be able to deal with the SCMI variant.
>
> It follows, that the SCMI-enabled board is not compatible with the
> non-SCMI enabled board, so drop that compatible.
>
> This change is motivated by the barebox' bootloader's use of bootloader
> specification files[1][2]: barebox for non-SCMI DK2 will compare its
> own top-level "stm32mp157c-dk2" compatible with all compatibles
> listed in the device tree referenced by each bootloader spec file.
> If the boot medium contains a configuration with
> compatible = "st,stm32mp157c-dk2-scmi", "st,stm32mp157c-dk2", "st,stm32mp157";
> it will match, because of the second compatible and boot a kernel with
> SCMI enabled, although no SCMI may exist on the platform.
>
> [1]: https://uapi-group.org/specifications/specs/boot_loader_specification/
> [2]: https://www.barebox.org/doc/latest/user/booting-linux.html#boot-loader-specification
>
> Fixes: 8e14ebb1f08f ("dt-bindings: arm: stm32: Add SCMI version of STM32 boards (DK1/DK2/ED1/EV1)")
> Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
> ---
> .../devicetree/bindings/arm/stm32/stm32.yaml | 16 +++-------------
> 1 file changed, 3 insertions(+), 13 deletions(-)
>
Acked-by: Rob Herring <robh@kernel.org>
@@ -82,29 +82,19 @@ properties:
- shiratech,stm32mp157a-iot-box # IoT Box
- shiratech,stm32mp157a-stinger96 # Stinger96
- st,stm32mp157c-ed1
+ - st,stm32mp157c-ed1-scmi
- st,stm32mp157a-dk1
+ - st,stm32mp157a-dk1-scmi
- st,stm32mp157c-dk2
+ - st,stm32mp157c-dk2-scmi
- const: st,stm32mp157
- - items:
- - const: st,stm32mp157a-dk1-scmi
- - const: st,stm32mp157a-dk1
- - const: st,stm32mp157
- - items:
- - const: st,stm32mp157c-dk2-scmi
- - const: st,stm32mp157c-dk2
- - const: st,stm32mp157
- - items:
- - const: st,stm32mp157c-ed1-scmi
- - const: st,stm32mp157c-ed1
- - const: st,stm32mp157
- items:
- const: st,stm32mp157c-ev1
- const: st,stm32mp157c-ed1
- const: st,stm32mp157
- items:
- const: st,stm32mp157c-ev1-scmi
- - const: st,stm32mp157c-ev1
- const: st,stm32mp157c-ed1
- const: st,stm32mp157