Marco Felsch m.felsch at
Thu Jul 30 08:14:25 EDT 2020


a customer of us uses micron nand flash devices for their local storage.
They are now having some troubles with a few devices. Let me start with
the following:
  1) We can successfully read the nand id field by:
     -> select_chip
     -> cmdfunc(mtd, NAND_CMD_RESET)
     -> cmdfunc(mtd, NAND_CMD_READID) Addr=0x00
     -> 8times: read_byte(mtd)

     The NAND device response with the following:
     nand: id_data[0]: 0x2c
     nand: id_data[1]: 0xdc
     nand: id_data[2]: 0x90
     nand: id_data[3]: 0x95
     nand: id_data[4]: 0x56
     nand: id_data[5]: 0x0
     nand: id_data[6]: 0x0
     nand: id_data[7]: 0x0

     Accroding the schematic and the datasheet this is right.

  2) To detect the ONFI compatibility we now issue:
     -> cmdfunc(mtd, NAND_CMD_READID) Addr=0x20

     and getting the expected 'O','N','F','I' signature.

   3) Now we are trying to Read the PARAM Page by:
      -> cmdfunc(mtd, NAND_CMD_PARAM)
      -> try to read the the param page and if not successful try to
         read the copies.

      Here things getting crazy since we are reading all the time '0xff'.

   4) Since Barebox (Bootloader) can't read the ONFI param page we
      calculate the values as expected from the param page. But now we
      can't access BBT (not found) nor we are not able to write to the
      OOB Area (the chip is not write protected).

The electrical signals are looking good and since we can retrieve the
id-data it should be no PCB bug. Did anyone struggled with such problems

I also get '0xff' if I send a READ_UNIQUE_ID command and trying to read
the 16 copies of the 32byte unique-id.

Any answers are welcome :)


More information about the linux-mtd mailing list