Sometimes, an special partition is included in the device tree including all the partitions. Like in:
partit...@ff000000 { reg = < 0x000000 0x800000 >; label = "Root File System"; }; partit...@ff800000 { reg = < 0x800000 0x1a0000 >; label = "Bitstream"; }; ... f...@ff000000 { compatible = "partition"; reg = < 0x000000 0x1000000 >; label = "Full FLASH"; }; Because two nodes of a device tree cannot have the same name, but all the partitions must be named "partition", this special partition is invalid. This patch makes ofpart.c accept spetial partitions compatible with "partition" but not named partition. These spetial partitions are very useful for flashing the full firmware of a device from linux --- This v3 includes feedback from Scott Wood, Peter Korsgaard & Benjamin Kril v3: Use the compatible propierty v2: buggy implementation, strlen-1 instead of strlen v1: Just check the firt part of the name drivers/mtd/ofpart.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) diff --git a/drivers/mtd/ofpart.c b/drivers/mtd/ofpart.c index 3e164f0..59c1e4a 100644 --- a/drivers/mtd/ofpart.c +++ b/drivers/mtd/ofpart.c @@ -48,7 +48,9 @@ int __devinit of_mtd_parse_partitions(struct device *dev, /* check if this is a partition node */ partname = of_get_property(pp, "name", &len); - if (strcmp(partname, "partition") != 0) { + if ((strcmp(partname, "partition") != 0) && + (of_device_is_compatible(pp, "partition") != 1)) + { nr_parts--; continue; } -- 1.6.2.4 _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev