NAND timeout issues with blank chip and Marvell NFC

Boris Brezillon boris.brezillon at bootlin.com
Wed Apr 25 23:21:54 PDT 2018


On Thu, 26 Apr 2018 08:06:42 +0200
Boris Brezillon <boris.brezillon at bootlin.com> wrote:

> Hi Chris,
> 
> On Thu, 26 Apr 2018 05:16:57 +0000
> Chris Packham <Chris.Packham at alliedtelesis.co.nz> wrote:
> 
> > > 
> > >    ret = marvell_nfc_wait_op(chip,
> > >                              chip->data_interface.timings.sdr.tPROG_max);
> > > 
> > > Based on the datasheet that number is 600 microseconds(us) not the
> > > milliseconds expected by marvell_nfc_wait_op().
> > >     
> > 
> > So naturally throwing in some PSEC_TO_MSEC() calls stopped the really 
> > long timeouts but then the probe would fail. It seems that I'm getting 
> > some "page done" and "command done" interrupts indications (NDSR = 
> > 0x0000500) while attempting to write the oob data.
> > 
> > I've also re-done some of my initial tests and it seems that 4.17-rc2 
> > cannot mount this chip. The 4.16.4 kernel can.  
> 
> Hm, I suspect 07ad5a721484 ("mtd: nand: add ->setup_data_interface()
> support for Marvell NFCv1") to be the source of our problems.
> 
> Can you add the 'marvell,nand-keep-config' property to your nand node?
> Looks like we'll need another way to extract the NFC version in case
> old bindings are in use (maybe by parsing the compatible of the root
> node).

Forget what I said, it seems you're already using nand-armada370 which
maps to NFCv2.

I guess a git bisect would be useful here to find what causes the
regression.



More information about the linux-mtd mailing list