i.MX28 nand driver broken in Linux 4.18
miquel.raynal at bootlin.com
Mon Apr 1 02:23:49 PDT 2019
Wolfgang Grandegger <wg at grandegger.com> wrote on Sat, 23 Mar 2019
> Hello Miquel,
> Am 06.03.19 um 14:59 schrieb Miquel Raynal:
> > Hi Wolfgang,
> > Wolfgang Grandegger <wg at grandegger.com> wrote on Tue, 5 Mar 2019
> > 15:52:52 +0100:
> >> Hello,
> >> I will bisect the problem next week when I have access to the
> >> hardware... more soon...
> > Great, thanks.
> Here is the result of git bisection:
> wolf at bernex:~/git/linux$ git bisect good
> 76e1a0086a0c3276b384f77905345e0fcc886fdd is the first bad commit
> commit 76e1a0086a0c3276b384f77905345e0fcc886fdd
> Author: Miquel Raynal <miquel.raynal at bootlin.com>
> Date: Fri Mar 2 15:38:39 2018 +0100
> mtd: rawnand: gpmi: support ->setup_data_interface()
> Until now the GPMI driver had its own timings logic while the core
> already handles that and request the NAND controller drivers to support
> the ->setup_data_interface() hook. Implement that hook by reusing the
> already existing function. No real glue is necessary between core timing
> delays and GPMI registers because the driver already translates the
> ONFI timing modes into register values.
> Make use of the core's tREA, tRLOH and tRHOH values that allow computing
> more precise timings for mode [0-3] and get significantly better values
> (+20% with an i.MX6 Sabre Auto board). Otherwise use the existing logic.
> Signed-off-by: Miquel Raynal <miquel.raynal at bootlin.com>
> Tested-by: Han Xu <han.xu at nxp.com>
> Signed-off-by: Boris Brezillon <boris.brezillon at bootlin.com>
Thank you for the bisection, there is definitely something wrong with
this commit but it worked for me and for Han so it's quite difficult to
find out what is failing if I cannot reproduce. Could you please dump
the timing registers in both cases (working/not working) and observer if
there are odd values ? (0, too short or too big values, etc).
More information about the linux-mtd