[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