On 2/25/20 1:41 AM, Masahiro Yamada wrote: > Hi. Hi, > On Thu, Feb 20, 2020 at 3:45 AM Marek Vasut <marex@xxxxxxx> wrote: >> >> On 2/18/20 6:55 AM, Masahiro Yamada wrote: >>> Hi >> >> Hi, >> >> [...] >> >>>> There is no change around the ->setup_data_interface() hook >>>> after v4.19 >>>> The only difference I could think of is the clock frequency. >>>> >>>> But, it is OK if you do not want to test it. >>>> >>>> And you are confident. >>>> >>>> So, let's suspect the ->setup_data_interface() hook. >>>> >>>> >>>> If possible, can you provide the dump of >>>> the attached debug code? >>>> >>> >>> >>> I attached two experimental patches. >>> >>> I cannot test them because >>> the mainline code works fine for my boards. >>> >>> Does either of them improve something >>> on your settings? > > > > I am still waiting for you to let me know > the result of my patches. Neither patch works, sorry. >> Considering that the NAND works if denali_setup_data_interface() is not >> called, would it rather make sense to first read and print what's >> programmed into the controller and then print what the code calculated >> and intends to program into the controller ? > > denali_select_target() is called every operation. > So, if you dumped this function for a working platform, > it might flood the printk buffer. > > denali_setup_data_interface() is called just twice. > That's why I injected the debug code there. > > >> >> See attached patch, with which (without this revert) you get this: >> denali->reg + TWHR2_AND_WE_2_RE = 0x00001414 -> 0x0000143f >> denali->reg + TCWAW_AND_ADDR_2_DATA = 0x0000143f -> 0x00001432 >> denali->reg + RE_2_WE = 0x00000014 -> 0x00000019 >> denali->reg + ACC_CLKS = 0x00000004 -> 0x00000005 >> denali->reg + RDWR_EN_LO_CNT = 0x00000002 -> 0x00000009 >> denali->reg + RDWR_EN_HI_CNT = 0x00000002 -> 0x00000004 >> denali->reg + CS_SETUP_CNT = 0x00000001 -> 0x00000008 >> denali->reg + RE_2_RE = 0x00000014 -> 0x00000019 > > OK, the left-hand side is probably the timing > set up by U-Boot. Yep, the timings that work. So now, how do you get to those working timings using the Linux driver ? ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/