nand: denali: issue with 4.13
Masahiro Yamada
yamada.masahiro at socionext.com
Thu Sep 21 04:00:34 PDT 2017
Hi.
2017-09-21 15:44 GMT+09:00 Oleksij Rempel <ore at pengutronix.de>:
> Hi Masahiro,
>
> you are probably the expert of denali nand driver.
> With kernel v4.13 i have following issue, it works on FPGASoC 5CSEBA5U...
> but is now working on FPGASoC 5CSXFC6C6U... both of them have same NAND
> chip, and seems to have similar IP core.
>
> FPGASoC 5CSXFC6C6U...:
> ====================================================================
> [ 0.095899] console [ttyS0] disabled
> [ 0.095941] ffc02000.serial0: ttyS0 at MMIO 0xffc02000 (irq = 38,
> base_baud = 6250000) is a 16550A
> [ 0.702041] console [ttyS0] enabled
> [ 0.706986] brd: module loaded
> [ 0.716232] loop: module loaded
> [ 0.720074] nand: device found, Manufacturer ID: 0x00, Chip ID: 0x2c
This line is strange. It failed to read Manufacturer ID.
The 0x2c should be Manufacturer ID, not Chip ID.
I am guessing we need to wait a bit
after the NAND_CMD_READID.
Please try the following ugly patch.
diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
index bcc8cef1..2443e3d 100644
--- a/drivers/mtd/nand/nand_base.c
+++ b/drivers/mtd/nand/nand_base.c
@@ -744,10 +744,11 @@ static void nand_command(struct mtd_info *mtd,
unsigned int command,
case NAND_CMD_ERASE2:
case NAND_CMD_SEQIN:
case NAND_CMD_STATUS:
- case NAND_CMD_READID:
case NAND_CMD_SET_FEATURES:
return;
-
+ case NAND_CMD_READID:
+ udelay(5);
+ return;
case NAND_CMD_RESET:
if (chip->dev_ready)
break;
@@ -874,10 +875,11 @@ static void nand_command_lp(struct mtd_info
*mtd, unsigned int command,
case NAND_CMD_ERASE2:
case NAND_CMD_SEQIN:
case NAND_CMD_STATUS:
- case NAND_CMD_READID:
case NAND_CMD_SET_FEATURES:
return;
-
+ case NAND_CMD_READID:
+ udelay(5);
+ return;
case NAND_CMD_RNDIN:
nand_ccs_delay(chip);
return;
--
Best Regards
Masahiro Yamada
More information about the linux-mtd
mailing list