Hi Linus, Please don't forget to Cc: me when it comes to NAND-related changes :) Boris Brezillon <bbrezillon@xxxxxxxxxx> wrote on Wed, 9 Jan 2019 23:12:59 +0100: > On Wed, 9 Jan 2019 22:51:44 +0100 > Linus Walleij <linus.walleij@xxxxxxxxxx> wrote: > > > Hammering the "bank enable" (PBKEN) bit on and off between > > every command crashes the Nomadik NHK15 with this message: > > > > Scanning device for bad blocks > > Unhandled fault: external abort on non-linefetch (0x008) at 0xcc95e000 > > pgd = (ptrval) > > [cc95e000] *pgd=0b808811, *pte=40000653, *ppte=40000552 > > Internal error: : 8 [#1] PREEMPT ARM > > Modules linked in: > > CPU: 0 PID: 1 Comm: swapper Not tainted 4.20.0-rc2+ #72 > > Hardware name: Nomadik STn8815 > > PC is at fsmc_exec_op+0x194/0x204 > > (...) > > > > After a discussion we (me and Boris Brezillion) start to suspect > > ^ Brezillon :-) > > > that this bit does not immediately control the chip select line > > at all, it rather enables access to the bank and the hardware > > will drive the CS autonomously. If there is a NAND chip connected, > > we should keep this enabled. > > > > As fsmc_nand_setup() sets this bit, we can simply remove the > > offending code. > > > > Fixes: 550b9fc4e3af ("mtd: rawnand: fsmc: Stop implementing ->select_chip()") > > Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx> > > Reviewed-by: Boris Brezillon <bbrezillon@xxxxxxxxxx> > > Would be great if someone could validate our assumption with a scope. > This being said, given the description of the FSMC logic, I have little > doubt that this bit does not directly controls the CE line, otherwise > concurrent accesses to different memories on the same bus wouldn't work > or would require a lot more synchronization than we currently have in > Linux. > Acked-by: Miquel Raynal <miquel.raynal@xxxxxxxxxxx> Thanks, Miquèl ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/