sam9x5: MTD numbering changed

Richard Genoud richard.genoud at gmail.com
Thu Nov 2 07:13:47 PDT 2017


Le jeudi 02 novembre 2017 à 13:39 +0100, Boris Brezillon a écrit :
> +Nicolas
> 
> Hi Richard,
> 
> On Thu, 02 Nov 2017 12:17:16 +0100
> Richard Genoud <richard.genoud at gmail.com> wrote:
> 
> > Hi,
> > 
> > I've got an at91sam9g35-cm based board, with 4 partition on the
> > spi-
> > dataflas and 5 partitions on the NAND flash.
> > Before commit 1004a2977bdc ("ARM: dts: at91: Switch to the new NAND
> > bindings"),
> > the NAND partitions were mtd0-4 and spi-dataflash partitions mtd5-
> > 8.
> > 
> > Since commit 1004a2977bdc ("ARM: dts: at91: Switch to the new NAND
> > bindings"),
> > the spi-dataflash partitions are discovered before the NAND
> > partitions.
> > So NAND partition became mtd4-8 and spi-dataflash partition mtd0-3.
> > 
> > This broke some script that relied on the mtd numbering.
> > 
> > Updating those scripts to rely on the mtd device name instead of
> > number is not really a problem. The real problem is when an older
> > script using mtd numbering is run on the new system : I expect dead
> > kittens everywhere !
> 
> Crap! That was one of the thing I was afraid of when changing the
> binding: probe order has an impact on ids assigned to MTD devs, and
> since things are not defined at the same place in the DT, it changes
> the probe order.
> 
> > 
> > So, I'd like to know if there's a way to force the older numbering
> > ?
> 
> Reverting the patches is probably the easiest way (and it's easily
> backportable). Now, if we want to switch to the new bindings at some
> point we'll need to support DT aliases for mtd devs:
> 
> aliases {
> 	mtdX = &flashpartN;
> 	mtdY = &flashdevM;
> };
> 
> The problem with this solution is that it only works if all
> partitions
> are defined in the DT, which is not always the case (they can be
> defined
> on the command line with mtdparts=).
Yes, and if they are different from the ones declared in
at91sam9x5cm.dtsi, they are likely defined with mtdparts=, since AFAIK,
we can't remove a declared partitionning.

I'll disable the ebi and switch back to the old binding in my dts for
now.
> 
> > (I tried poking around the DTS without succès).
> > 
> > any idea ?
> 
> I don't have a perfect solution, but the problem you report clearly
> shows that relying on MTD numbering is unsafe and should be avoided.
Clearly, but who doesn't ? ;)


Thanks !

Richard.
> 
> Regards,
> 
> Boris
> 
> > 
> > regards,
> > Richard.




More information about the linux-mtd mailing list