AnsweredAssumed Answered

IMX6UL evk with NAND [SOLVED]

Question asked by mat kattanek on Sep 15, 2017
Latest reply on Mar 30, 2018 by Qiu Tao

Installed the mfgtools using L4.1.15_2.0.0-ga_mfg-tools. Was able to successfully flash QSPI and SDCARD via OTG usb.

Got the board re-worked and soldered on the NAND.

Using the mfgtools demo packages and running mfgtool2-yocto-mx-evk-NAND.vbs, i encoutered some issues.

Looks like the NAND is recognized by the kernel and initialized.

 

nand: device found, Manufacturer ID: 0x2c, Chip ID: 0x44
nand: Micron MT29F32G08CBADAWP
nand: 4096 MiB, MLC, erase size: 2048 KiB, page size: 8192, OOB size: 744
gpmi-nand 1806000.gpmi-nand: enable the asynchronous EDO mode 5
Bad block table not found for chip 0
Bad block table not found for chip 0
Scanning device for bad blocks
Bad eraseblock 90 at 0x00000b400000
Bad eraseblock 91 at 0x00000b600000
Bad eraseblock 114 at 0x00000e400000
Bad eraseblock 552 at 0x000045000000
Bad eraseblock 972 at 0x000079800000
Bad eraseblock 1022 at 0x00007fc00000
Bad eraseblock 1424 at 0x0000b2000000
Bad eraseblock 1754 at 0x0000db400000
Bad block table written to 0x0000ffe00000, version 0x01
Bad block table written to 0x0000ffc00000, version 0x01
gpmi-nand 1806000.gpmi-nand: driver registered.

 

But when UTP starts it actually runs into an error:

Linux File-Backed Storage
random: nonblocking pool is initialized
UTP: received command '$ mount -t debugfs debugfs /sys/kernel/debug'
UTP: executing "mount -t debugfs debugfs /sys/kernel/debug"
UTP: sending Success to kernel for command $ mount -t debugfs debugfs
/sys/kernel/debug.
utp_poll: pass returned.
UTP: received command '$ flash_erase /dev/mtd0 0 0'
UTP: executing "flash_erase /dev/mtd0 0 0"
Erasing 2048 Kibyte @ b200000 --  4 % complete flash_erase: Skipping bad block
at 0b400000
flash_erase: Skipping bad block at 0b600000
Erasing 2048 Kibyte @ e200000 --  5 % complete flash_erase: Skipping bad block
at 0e400000
Erasing 2048 Kibyte @ 44e00000 -- 26 % complete flash_erase: Skipping bad block
at 45000000
Erasing 2048 Kibyte @ 79600000 -- 47 % complete flash_erase: Skipping bad block
at 79800000
Erasing 2048 Kibyte @ 7fa00000 -- 49 % complete flash_erase: Skipping bad block
at 7fc00000
Erasing 2048 Kibyte @ b1e00000 -- 69 % complete flash_erase: Skipping bad block
at b2000000
Erasing 2048 Kibyte @ db200000 -- 85 % complete flash_erase: Skipping bad block
at db400000
Erasing 2048 Kibyte @ fc400000 -- 98 % cutp_poll: pass returned.
Erasing 2048 Kibyte @ ff600000 -- 99 % complete flash_erase: Skipping bad block
at ff800000
flash_erase: Skipping bad block at ffa00000
flash_erase: Skipping bad block at ffc00000
flash_erase: Skipping bad block at ffe00000
Erasing 2048 Kibyte @ ffe00000 -- 100 % complete
UTP: sending Success to kernel for command $ flash_erase /dev/mtd0 0 0.
UTP: received command 'send'
UTP: sending Success to kernel for command send.
UTP: received command '$ kobs-ng init -x -v --chip_0_device_path=/dev/mtd0
$FILE'
UTP: executing "kobs-ng init -x -v --chip_0_device_path=/dev/mtd0 $FILE"
MTD CONFIG:
  chip_0_device_path = "/dev/mtd0"
  chip_1_device_path = "(null)"
  search_exponent = 2
  data_setup_time = 80
  data_hold_time = 60
  address_setup_time = 25
  data_sample_time = 6
  row_address_size = 3
  column_address_size = 2
  read_command_code1 = 0
  read_command_code2 = 48
  boot_stream_major_version = 1
  boot_stream_minor_version = 0
  boot_stream_sub_version = 0
  ncb_version = 3
  boot_stream_1_address = 0
  boot_stream_2_address = 0
         -- We add the 1k-padding to the uboot.
.tmp_kobs_ng: verifying using key '00000000000000000000000000000000'
.tmp_kobs_ng: is a valid bootstream for key '00000000000000000000000000000000'
mtd: use new bch layout raw access mode
mtd: opening: "/dev/mtd0"
NFC geometry :
        ECC Strength       : 40
        Page Size in Bytes : 8762
        Metadata size      : 10
        ECC Chunk Size in byte : 1024
        ECC Chunk count        : 8
        Block Mark Byte Offset : 7692
        Block Mark Bit Offset  : 0
====================================================
mtd: opened '/dev/mtd0' - '(null)'
mtd: mtd size too small
mtd_init failed!
UTP: sending Non-success to kernel for command $ kobs-ng init -x -v
--chip_0_device_path=/dev/mtd0 $FILE.
utp_poll: exit with status 1280

 

Can anybody shed some light on this one.  What went wrong? Did I miss to initialize something?

 

Mat

Original Attachment has been moved to: imx6ul_evk_nand_flash.log.zip

Outcomes