On Wed, Nov 13, 2019 at 06:15:04PM +0100, Miquel Raynal wrote: > From: Bernhard Frauendienst <kernel@xxxxxxxxxxxxxxxxx> > > The main use case to concatenate MTD devices is probably SPI-NOR > flashes where the number of address bits is limited to 24, which can > access a range of 16MiB. Board manufacturers might want to double the > SPI storage size by adding a second flash asserted thanks to a second > chip selects which enhances the addressing capabilities to 25 bits, > 32MiB. Having two devices for twice the size is great but without more > glue, we cannot define partition boundaries spread across the two > devices. This is the gap mtd-concat intends to address. > > There are two options to describe concatenated devices: > 1/ One flash chip is described in the DT with two CS; > 2/ Two flash chips are described in the DT with one CS each, a virtual > device is also created to describe the concatenation. > > Solution 1/ presents at least 3 issues: > * The hardware description is abused; > * The concatenation only works for SPI devices (while it could be > helpful for any MTD); > * It would require a lot of rework in the SPI core as most of the > logic assumes there is and there always will be only one CS per > chip. This seems ok if all the devices are identical. > Solution 2/ also has caveats: > * The virtual device has no hardware reality; > * Possible optimizations at the hardware level will be hard to enable > efficiently (ie. a common direct mapping abstracted by a SPI > memories oriented controller). Something like this may be necessary if data is interleaved rather than concatinated. Solution 3 Describe each device and partition separately and add link(s) from one partition to the next flash0 { partitions { compatible = "fixed-partitions"; concat-partition = <&flash1_partitions>; ... }; }; flash1 { flash1_partition: partitions { compatible = "fixed-partitions"; ... }; }; Maybe a link back to the previous paritions too or a boolean to mark as a continuation. No idea how well this works or not for the kernel, but that really shouldn't matter for the binding design. Rob ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/