[PATCH master] of: partition: overwrite arm,arm-firmware-suite unless donttouch
Ahmad Fatoum
a.fatoum at pengutronix.de
Tue May 20 05:41:18 PDT 2025
barebox doesn't support arm,arm-firmware-suite partitioning and if the
barebox device tree uses a fixed-partitions binding for a flash, it will
overwrite a kernel partitions node that uses arm,arm-firmware-suite with
the fixed partition binding.
This broke in the default case with the addition of
global.of_partition_binding=adaptive, because the check for a compatible
was successful, but the compatible was neither fixed-partitions or
barebox,fixed-partitions.
Fix this by explicitly checking the compatibles we expect.
This fixes a failed of_get_reproducible_name in of_state_fixup, which
broke barebox-state usage on Vexpress in DistroKit.
Fixes: f0d91d7ba6cb ("of: partition: add Linux CONFIG_OF_PARTITION-compatible adaptive fixup mode")
Reported-by: Robert Schwebel <rsc at pengutronix.de>
Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
---
drivers/of/partition.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/of/partition.c b/drivers/of/partition.c
index a0890bfcdef0..7f5a526ac88f 100644
--- a/drivers/of/partition.c
+++ b/drivers/of/partition.c
@@ -206,8 +206,8 @@ int of_fixup_partitions(struct device_node *np, struct cdev *cdev)
partnode = np;
break;
case MTD_OF_BINDING_ADAPTIVE:
- /* If there's already a compatible property, leave it as-is */
- if (of_property_present(partnode, "compatible"))
+ /* If there's already a fixed-partitions node, leave compatible as-is */
+ if (of_node_is_fixed_partitions(partnode))
break;
if (!cdev->mtd)
compat = "barebox,fixed-partitions";
--
2.39.5
More information about the barebox
mailing list