Writing rootfs.ubifs image to NAND flash using MFG-Tool

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Writing rootfs.ubifs image to NAND flash using MFG-Tool

Jump to solution
5,039 Views
isaacnickaein
Contributor III

I've been using U-boot nand write.trimffs command to flash rootfs.ubifs image to the NAND flash of i.MX6DL.

We have decided to switch to MfgTool for production. The problem is that when there are some bad blocks on NAND of i.MX6, MfgTool has issues during write and the final written image is corrupted. The same i.MX6 module can be programmed correctly by u-boot.

Here is the profile I am using:

  <LIST name="TX6-LINUX-NAND">

    <CMD state="BootStrap" type="find" body="Recovery" timeout="180"/>

    <!--U-Boot update and environment setup: -->

    <CMD state="BootStrap" type="boot" body="Recovery" file="work/u-boot_mfg.bin" >Loading mfg U-Boot.</CMD>

    <CMD state="BootStrap" type="load" file="work/mfg.env" address="0x10500000"

        loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Loading mfg U-Boot parameters.</CMD>

    <CMD state="BootStrap" type="load" file="files/linux/u-boot-tx6u-80x0.bin" address="0x10600000"

        loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Loading U-Boot image.</CMD>

    <CMD state="BootStrap" type="load" file="files/linux/u-boot.env" address="0x10700000"

        loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Loading U-Boot environment.</CMD>

    <CMD state="BootStrap" type="load" file="files/linux/imx6dl-tx6u-80xx.dtb" address="0x10800000"

        loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Loading dtb.</CMD>

    <CMD state="BootStrap" type="load" file="files/mfg/uImage-mfg" address="0x10900000"

        loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Loading mfg Linux kernel.</CMD>

    <CMD state="BootStrap" type="load" file="files/mfg/initramfs.cpio.gz.uboot" address="0x11800000"

        loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Loading initramfs.</CMD>

    <CMD state="BootStrap" type="load" file="files/linux/uImage" address="0x12000000"

        loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Loading kernel image.</CMD>

    <CMD state="BootStrap" type="jump" > Boot... </CMD>

    <CMD state="BootStrap" type="find" body="Updater" timeout="180"/>

    <CMD state="Updater" type="push" body="pipe dd of=/dev/mtdblock2" file="files/linux/uImage">Write kernel image</CMD>

    <CMD state="Updater" type="push" body="frf">flush the memory.</CMD>

   

    <CMD state="Updater" type="push" body="pipe dd of=/dev/mtdblock3" file="files/linux/rootfs.image">Write rootfs image</CMD>

    <CMD state="Updater" type="push" body="frf">flush the memory.</CMD>

    <CMD state="Updater" type="push" body="$ echo Update Complete!">Done</CMD>

  </LIST>

Here is the module output on serial debug during flashing by MfgTool (Note mtdblock: erase of region [0x4a0000, 0x20000] on "linux" failed error and its following errors):

U-Boot 2013.07-00787-g36ed10c (Mar 24 2015 - 16:03:58)

CPU:   Freescale i.MX6DL rev1.1 at 792 MHz

Reset cause: POR

Board: Ka-Ro TX6U-8010

I2C:   ready

DRAM:  1 GiB

VDDCORE set to 1421mV

VDDSOC  set to 1421mV

NAND:  128 MiB

MMC:   FSL_SDHC: 0, FSL_SDHC: 1

Using default environment

Temperature:   38 C, calibration data 0x58f50669

CPU clock set to 792.000 MHz

Baseboard: stk5-v3

MAC addr from fuse: 00:0c:c6:7a:39:b5

Net:   FEC

Hit any key to stop autoboot:  0

## Warning: defaulting to text format

## Info: input data size = 434 = 0x1B2

NAND erase.chip: device 0 whole chip

Skipping bad block at  0x00620000

Skipping bad block at  0x03d00000

Skipping bad block at  0x04b60000

Skipping bad block at  0x07f80000

Skipping bad block at  0x07fa0000

Skipping bad block at  0x07fc0000

Skipping bad block at  0x07fe0000

OK

Writing FCB to block 0 @ 00000000

Programming U-Boot image from 10600000 to block 1 @ 00020000

Erasing flash @ 00020000..0011ffff

Programming flash @ 00020000..0009ffff from 10600000

## Warning: defaulting to text format

## Info: input data size = 630 = 0x276

Saving Environment to NAND...

Erasing Nand...

Erasing at 0x160000 -- 100% complete.

Writing to Nand... done

NAND erase.part: device 0 offset 0x7f00000, size 0x80000

Erasing at 0x7f60000 -- 100% complete.

OK

NAND write: device 0 offset 0x7f00000, size 0xa000

40960 bytes written: OK

## Booting kernel from Legacy Image at 10900000 ...

   Image Name:   Linux-3.16.0-01083-g9ed3598

   Image Type:   ARM Linux Kernel Image (uncompressed)

   Data Size:    5159576 Bytes = 4.9 MiB

   Load Address: 10008000

   Entry Point:  10008000

   Verifying Checksum ... OK

## Loading init Ramdisk from Legacy Image at 11800000 ...

   Image Name:   uboot initramfs rootfs

   Image Type:   ARM Linux RAMDisk Image (gzip compressed)

   Data Size:    4545835 Bytes = 4.3 MiB

   Load Address: 00000000

   Entry Point:  00000000

   Verifying Checksum ... OK

## Flattened Device Tree blob at 10800000

   Booting using the fdt blob at 0x10800000

   Loading Kernel Image ... OK

   Loading Ramdisk to 4f2ed000, end 4f742d2b ... OK

   Loading Device Tree to 4f2e0000, end 4f2ec535 ... OK

Starting kernel ...

Booting Linux on physical CPU 0x0

Linux version 3.16.0-01083-g9ed3598 (support@karo-electronics.de) (gcc version 4.7.2 (GCC) ) #2 SMP Wed Mar 18 14:55:58 CET 2015

CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d

CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache

Machine model: Ka-Ro electronics TX6U-801x/-803x Module

Memory policy: Data cache writealloc

PERCPU: Embedded 7 pages/cpu @bf7cb000 s8192 r8192 d12288 u32768

Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 260096

Kernel command line: console=ttymxc0,115200 rdinit=/linuxrc g_mass_storage.stall=0 g_mass_storage.removable=1 g_mass_storage.idVendor=0x066F g_mass_storage.idProduct=0x37FF g_mass_storage.iSerialNumber=""

PID hash table entries: 4096 (order: 2, 16384 bytes)

Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)

Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)

Memory: 1025364K/1048576K available (6488K kernel code, 292K rwdata, 2036K rodata, 316K init, 397K bss, 23212K reserved)

Virtual kernel memory layout:

    vector  : 0xffff0000 - 0xffff1000   (   4 kB)

    fixmap  : 0xffc00000 - 0xffe00000   (2048 kB)

    vmalloc : 0xc0800000 - 0xff000000   (1000 MB)

    lowmem  : 0x80000000 - 0xc0000000   (1024 MB)

    modules : 0x7f000000 - 0x80000000   (  16 MB)

      .text : 0x80008000 - 0x8085b338   (8525 kB)

      .init : 0x8085c000 - 0x808ab000   ( 316 kB)

      .data : 0x808ac000 - 0x808f5060   ( 293 kB)

       .bss : 0x808f5068 - 0x8095882c   ( 398 kB)

SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1

Hierarchical RCU implementation.

        RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.

RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2

NR_IRQS:16 nr_irqs:16 16

L2C-310 erratum 769419 enabled

L2C-310 enabling early BRESP for Cortex-A9

L2C-310 full line of zeros enabled for Cortex-A9

L2C-310 ID prefetch enabled, offset 1 lines

L2C-310 dynamic clock gating enabled, standby mode enabled

L2C-310 cache controller enabled, 16 ways, 512 kB

L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x76050001

Switching to timer-based delay loop

sched_clock: 32 bits at 66MHz, resolution 15ns, wraps every 65075262448ns

Console: colour dummy device 80x30

Calibrating delay loop (skipped), value calculated using timer frequency.. 132.00 BogoMIPS (lpj=660000)

pid_max: default: 32768 minimum: 301

Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)

Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)

CPU: Testing write buffer coherency: ok

CPU0: thread -1, cpu 0, socket 0, mpidr 80000000

Setting up static identity map for 0x106285c0 - 0x10628618

CPU1: Booted secondary processor

CPU1: thread -1, cpu 1, socket 0, mpidr 80000001

Brought up 2 CPUs

SMP: Total of 2 processors activated.

CPU: All CPU(s) started in SVC mode.

devtmpfs: initialized

VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4

pinctrl core: initialized pinctrl subsystem

regulator-dummy: no parameters

NET: Registered protocol family 16

DMA: preallocated 256 KiB pool for atomic coherent allocations

cpuidle: using governor ladder

cpuidle: using governor menu

CPU identified as i.MX6DL, silicon rev 1.1

Use WDOG1 as reset source

vdd1p1: 800 <--> 1375 mV at 1100 mV

vdd3p0: 2800 <--> 3150 mV at 3000 mV

vdd2p5: 2000 <--> 2750 mV at 2400 mV

vddarm: 725 <--> 1450 mV at 1150 mV

vddpu: 725 <--> 1450 mV at 1150 mV

vddsoc: 725 <--> 1450 mV at 1200 mV

hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.

hw-breakpoint: maximum watchpoint size is 4 bytes.

imx6dl-pinctrl 20e0000.iomuxc: initialized IMX pinctrl driver

mxs-dma 110000.dma-apbh: initialized

3V3_ETN: 3300 mV

2V5: 2500 mV

3V3: 3300 mV

LCD0 POWER: 3300 mV

LCD1 POWER: 3300 mV

SCSI subsystem initialized

usbcore: registered new interface driver usbfs

usbcore: registered new interface driver hub

usbcore: registered new device driver usb

i2c i2c-0: IMX I2C adapter registered

i2c i2c-2: IMX I2C adapter registered

Linux video capture interface: v2.00

pps_core: LinuxPPS API ver. 1 registered

pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>

PTP clock support registered

imx-ipuv3 2400000.ipu: IPU DMFC NORMAL mode: 1(0~1), 5B(4,5), 5F(6,7)

Advanced Linux Sound Architecture Driver Initialized.

cfg80211: Calling CRDA to update world regulatory domain

Switched to clocksource mxc_timer1

NET: Registered protocol family 2

TCP established hash table entries: 8192 (order: 3, 32768 bytes)

TCP bind hash table entries: 8192 (order: 4, 65536 bytes)

TCP: Hash tables configured (established 8192 bind 8192)

TCP: reno registered

UDP hash table entries: 512 (order: 2, 16384 bytes)

UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)

NET: Registered protocol family 1

RPC: Registered named UNIX socket transport module.

RPC: Registered udp transport module.

RPC: Registered tcp transport module.

RPC: Registered tcp NFSv4.1 backchannel transport module.

Trying to unpack rootfs image as initramfs...

Freeing initrd memory: 4436K (bf2ed000 - bf742000)

hw perfevents: enabled with ARMv7 Cortex-A9 PMU driver, 7 counters available

futex hash table entries: 512 (order: 3, 32768 bytes)

VFS: Disk quotas dquot_6.5.2

Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)

NFS: Registering the id_resolver key type

Key type id_resolver registered

Key type id_legacy registered

jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.

fuse init (API version 7.23)

msgmni has been set to 2011

io scheduler noop registered

io scheduler deadline registered

io scheduler cfq registered (default)

imx-weim 21b8000.weim: Driver registered.

imx-pwm 2084000.pwm: prop pinctrl-0 index 0 invalid phandle

mxc_sdc_fb fb@2: register mxc display driver lcd

Console: switching to colour frame buffer device 80x30

imx-sdma 20ec000.sdma: initialized

imx-sdma 20ec000.sdma: loaded firmware 1.1

Serial: IMX driver

2020000.serial: ttymxc0 at MMIO 0x2020000 (irq = 58, base_baud = 5000000) is a IMX

console [ttymxc0] enabled

21e8000.serial: ttymxc1 at MMIO 0x21e8000 (irq = 59, base_baud = 5000000) is a IMX

imx-uart 21ec000.serial: prop pinctrl-0 index 0 invalid phandle

21ec000.serial: ttymxc2 at MMIO 0x21ec000 (irq = 60, base_baud = 5000000) is a IMX

serial: Freescale lpuart driver

[drm] Initialized drm 1.1.0 20060810

[drm] Initialized vivante 1.0.0 20120216 on minor 0

brd: module loaded

loop: module loaded

nand: device found, Manufacturer ID: 0xec, Chip ID: 0xf1

nand: Samsung NAND 128MiB 3,3V 8-bit

nand: 128MiB, SLC, page size: 2048, OOB size: 64

Bad block table found at page 65472, version 0x01

Bad block table found at page 65408, version 0x01

nand_read_bbt: bad block at 0x000000620000

nand_read_bbt: bad block at 0x000003d00000

nand_read_bbt: bad block at 0x000004b60000

6 ofpart partitions found on MTD device gpmi-nand

Creating 6 MTD partitions on "gpmi-nand":

0x000000020000-0x000000120000 : "u-boot"

0x000000120000-0x000000180000 : "env"

0x000000180000-0x000000780000 : "linux"

0x000000780000-0x000007f00000 : "rootfs"

0x000007f00000-0x000007f80000 : "dtb"

0x000007f80000-0x000008000000 : "bbt"

gpmi-nand 112000.gpmi-nand: driver registered.

libphy: fec_enet_mii_bus: probed

fec 2188000.ethernet eth0: registered PHC device 0

ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver

usbcore: registered new interface driver usb-storage

/soc/aips-bus@02100000/usb@02184200: could not find phandle

2184200.usb supply vbus not found, using dummy regulator

ci_hdrc ci_hdrc.1: EHCI Host Controller

ci_hdrc ci_hdrc.1: new USB bus registered, assigned bus number 1

ci_hdrc ci_hdrc.1: USB 2.0 started, EHCI 1.00

hub 1-0:1.0: USB hub found

hub 1-0:1.0: 1 port detected

mousedev: PS/2 mouse device common for all mice

input: 20b8000.kpp as /devices/soc0/soc/2000000.aips-bus/20b8000.kpp/input/input0

snvs_rtc 20cc034.snvs-rtc-lp: rtc core: registered 20cc034.snvs-rtc-lp as rtc0

i2c /dev entries driver

mxc_v4l2_output v4l2_out: V4L2 device registered as video16

mxc_v4l2_output v4l2_out: V4L2 device registered as video17

imx2-wdt 20bc000.wdog: timeout 60 sec (nowayout=0)

sdhci: Secure Digital Host Controller Interface driver

sdhci: Copyright(c) Pierre Ossman

sdhci-pltfm: SDHCI platform and OF driver helper

mmc0: no vqmmc regulator found

mmc0: no vmmc regulator found

mmc0: SDHCI controller on 2190000.usdhc [2190000.usdhc] using ADMA

mmc1: no vqmmc regulator found

mmc1: no vmmc regulator found

mmc1: SDHCI controller on 2194000.usdhc [2194000.usdhc] using ADMA

galcore: clk_get vg clock failed, disable vg!

Galcore version 5.0.11.25762

usbcore: registered new interface driver usbhid

usbhid: USB HID core driver

sgtl5000 2-000a: sgtl5000 revision 0x11

/soc/aips-bus@02000000/spba-bus@02000000/ssi@02028000: could not get #dma-cells for /soc/aips-bus@02000000/iomuxc@020e0000/imx6qdl-tx6/ipu1grp-3

/soc/aips-bus@02000000/spba-bus@02000000/ssi@02028000: could not get #dma-cells for /soc/aips-bus@02000000/iomuxc@020e0000/imx6qdl-tx6/ipu1grp-3

2-000a: 1200 mV normal

sgtl5000 2-000a: Using internal LDO instead of VDDD

fsl-ssi-dai 2028000.ssi: Missing dma channel for stream: 0

fsl-ssi-dai 2028000.ssi: ASoC: pcm constructor failed: -22

imx-sgtl5000 sound: ASoC: can't create pcm HiFi :-22

imx-sgtl5000 sound: ASoC: failed to instantiate card -22

------------[ cut here ]------------

WARNING: CPU: 0 PID: 1 at /home/oliver/projects/kernel/tx6-2015-02-27/drivers/regulator/core.c:3601 regulator_unregister+0xc8/0xd4()

Modules linked in:

CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.16.0-01083-g9ed3598 #2

[<8001447c>] (unwind_backtrace) from [<80011184>] (show_stack+0x10/0x14)

[<80011184>] (show_stack) from [<80621dec>] (dump_stack+0x74/0x90)

[<80621dec>] (dump_stack) from [<8002308c>] (warn_slowpath_common+0x64/0x88)

[<8002308c>] (warn_slowpath_common) from [<800230cc>] (warn_slowpath_null+0x1c/0x24)

[<800230cc>] (warn_slowpath_null) from [<802b55e0>] (regulator_unregister+0xc8/0xd4)

[<802b55e0>] (regulator_unregister) from [<804cc560>] (ldo_regulator_remove+0x20/0x38)

[<804cc560>] (ldo_regulator_remove) from [<804cc5a4>] (sgtl5000_remove+0x2c/0x34)

[<804cc5a4>] (sgtl5000_remove) from [<804bd510>] (soc_remove_codec+0x1c/0x88)

[<804bd510>] (soc_remove_codec) from [<804bd8d0>] (soc_remove_dai_links+0x2d8/0x324)

[<804bd8d0>] (soc_remove_dai_links) from [<804c0490>] (snd_soc_register_card+0x9b0/0x1324)

[<804c0490>] (snd_soc_register_card) from [<804cb274>] (devm_snd_soc_register_card+0x2c/0x68)

[<804cb274>] (devm_snd_soc_register_card) from [<804d4474>] (imx_sgtl5000_probe+0x244/0x2d0)

[<804d4474>] (imx_sgtl5000_probe) from [<802fd888>] (platform_drv_probe+0x18/0x48)

[<802fd888>] (platform_drv_probe) from [<802fc548>] (driver_probe_device+0x10c/0x22c)

[<802fc548>] (driver_probe_device) from [<802fc6f4>] (__driver_attach+0x8c/0x90)

[<802fc6f4>] (__driver_attach) from [<802fad98>] (bus_for_each_dev+0x54/0x88)

[<802fad98>] (bus_for_each_dev) from [<802fbd4c>] (bus_add_driver+0xd4/0x1d0)

[<802fbd4c>] (bus_add_driver) from [<802fcd34>] (driver_register+0x78/0xf4)

[<802fcd34>] (driver_register) from [<800088c4>] (do_one_initcall+0x80/0x1b8)

[<800088c4>] (do_one_initcall) from [<8085cc98>] (kernel_init_freeable+0xfc/0x1c8)

[<8085cc98>] (kernel_init_freeable) from [<8061dce4>] (kernel_init+0x8/0xe4)

[<8061dce4>] (kernel_init) from [<8000e678>] (ret_from_fork+0x14/0x3c)

---[ end trace eb3c95c00a3a455a ]---

imx-sgtl5000 sound: snd_soc_register_card failed (-22)

imx-sgtl5000: probe of sound failed with error -22

TCP: cubic registered

NET: Registered protocol family 10

sit: IPv6 over IPv4 tunneling driver

NET: Registered protocol family 17

8021q: 802.1Q VLAN Support v1.8

Key type dns_resolver registered

Number of LUNs=8

Mass Storage Function, version: 2009/09/11

LUN: removable file: (no medium)

Number of LUNs=1

LUN: removable file: (no medium)

Number of LUNs=1

g_mass_storage gadget: Mass Storage Gadget, version: 2009/09/11

g_mass_storage gadget: g_mass_storage ready

input: gpio-keys as /devices/soc0/gpio-keys/input/input1

snvs_rtc 20cc034.snvs-rtc-lp: setting system clock to 1970-01-01 00:06:45 UTC (405)

ALSA device list:

  No soundcards found.

Freeing unused kernel memory: 316K (8085c000 - 808ab000)

Starting UTP

ln: /etc/mtab: File exists

disable turn off display

Starting the hotplug events dispatcher udevd

udevd (77): /proc/77/oom_adj is deprecated, please use /proc/77/oom_score_adj instead.

Synthesizing initial hotplug events

g_mass_storage gadget: high-speed config #1: Linux File-Backed Storage

uuc 0.4 [built Apr 25 2013 00:52:55]

UTP: Waiting for device to appear

UTP: file/device node /dev/utp already exists

cpu_id is 0

UTP: received command 'pipe dd of=/dev/mtdblock2'

pid is 749, UTP: executing "dd of=/dev/mtdblock2"

UTP: sending Success to kernel for command pipe dd of=/dev/mtdblock2.

random: nonblocking pool is initialized

UTP: received command 'frf'

nand: nand_erase_nand: attempt to erase a bad block at page 0x00000c40

mtdblock: erase of region [0x4a0000, 0x20000] on "linux" failed

end_request: I/O error, dev mtdblock2, sector 9728

Buffer I/O error on device mtdblock2, logical block 1216

lost page write due to I/O error on mtdblock2

nand: nand_erase_nand: attempt to erase a bad block at page 0x00000c40

mtdblock: erase of region [0x4a0000, 0x20000] on "linux" failed

end_request: I/O error, dev mtdblock2, sector 9736

Buffer I/O error on device mtdblock2, logical block 1217

lost page write due to I/O error on mtdblock2

nand: nand_erase_nand: attempt to erase a bad block at page 0x00000c40

mtdblock: erase of region [0x4a0000, 0x20000] on "linux" failed

end_request: I/O error, dev mtdblock2, sector 9744

Buffer I/O error on device mtdblock2, logical block 1218

lost page write due to I/O error on mtdblock2

nand: nand_erase_nand: attempt to erase a bad block at page 0x00000c40

mtdblock: erase of region [0x4a0000, 0x20000] on "linux" failed

end_request: I/O error, dev mtdblock2, sector 9752

Buffer I/O error on device mtdblock2, logical block 1219

lost page write due to I/O error on mtdblock2

nand: nand_erase_nand: attempt to erase a bad block at page 0x00000c40

mtdblock: erase of region [0x4a0000, 0x20000] on "linux" failed

end_request: I/O error, dev mtdblock2, sector 9760

Buffer I/O error on device mtdblock2, logical block 1220

lost page write due to I/O error on mtdblock2

nand: nand_erase_nand: attempt to erase a bad block at page 0x00000c40

mtdblock: erase of region [0x4a0000, 0x20000] on "linux" failed

end_request: I/O error, dev mtdblock2, sector 9768

Buffer I/O error on device mtdblock2, logical block 1221

lost page write due to I/O error on mtdblock2

nand: nand_erase_nand: attempt to erase a bad block at page 0x00000c40

mtdblock: erase of region [0x4a0000, 0x20000] on "linux" failed

end_request: I/O error, dev mtdblock2, sector 9776

Buffer I/O error on device mtdblock2, logical block 1222

lost page write due to I/O error on mtdblock2

nand: nand_erase_nand: attempt to erase a bad block at page 0x00000c40

mtdblock: erase of region [0x4a0000, 0x20000] on "linux" failed

end_request: I/O error, dev mtdblock2, sector 9784

Buffer I/O error on device mtdblock2, logical block 1223

lost page write due to I/O error on mtdblock2

nand: nand_erase_nand: attempt to erase a bad block at page 0x00000c40

mtdblock: erase of region [0x4a0000, 0x20000] on "linux" failed

end_request: I/O error, dev mtdblock2, sector 9792

Buffer I/O error on device mtdblock2, logical block 1224

lost page write due to I/O error on mtdblock2

nand: nand_erase_nand: attempt to erase a bad block at page 0x00000c40

mtdblock: erase of region [0x4a0000, 0x20000] on "linux" failed

end_request: I/O error, dev mtdblock2, sector 9800

Buffer I/O error on device mtdblock2, logical block 1225

lost page write due to I/O error on mtdblock2

nand: nand_erase_nand: attempt to erase a bad block at page 0x00000c40

mtdblock: erase of region [0x4a0000, 0x20000] on "linux" failed

nand: nand_erase_nand: attempt to erase a bad block at page 0x00000c40

mtdblock: erase of region [0x4a0000, 0x20000] on "linux" failed

nand: nand_erase_nand: attempt to erase a bad block at page 0x00000c40

mtdblock: erase of region [0x4a0000, 0x20000] on "linux" failed

nand: nand_erase_nand: attempt to erase a bad block at page 0x00000c40

mtdblock: erase of region [0x4a0000, 0x20000] on "linux" failed

nand: nand_erase_nand: attempt to erase a bad block at page 0x00000c40

mtdblock: erase of region [0x4a0000, 0x20000] on "linux" failed

nand: nand_erase_nand: attempt to erase a bad block at page 0x00000c40

mtdblock: erase of region [0x4a0000, 0x20000] on "linux" failed

nand: nand_erase_nand: attempt to erase a bad block at page 0x00000c40

mtdblock: erase of region [0x4a0000, 0x20000] on "linux" failed

...

(This pattern repeated many times)

Labels (3)
0 Kudos
1 Solution
2,023 Views
igorpadykov
NXP Employee
NXP Employee

Hi Isaak

I am not familiar with karo bsp, one can try with latest freescale

3.14.28 Mfg Tools

Programmers (Flash, etc.) (7)

IMX6_L3.14.28_MFG_TOOL (REV L3.14.28_1.0.0)

http://www.freescale.com/products/arm-processors/i.mx-applications-processors-based-on-arm-cores/i.m...

For the NAND to be recognized, it must have an entry in table linux../drivers/mtd/nand/nand_ids.c.

Then rebuild MFG Tool firmware as describes sect.6.2 "Manufacturing Tool, MFGTool"

attached Yocto Guide , then use commands as in profile "NAND Flash" in ucl2.xml.

Best regards

igor

View solution in original post

0 Kudos
5 Replies
2,024 Views
igorpadykov
NXP Employee
NXP Employee

Hi Isaak

I am not familiar with karo bsp, one can try with latest freescale

3.14.28 Mfg Tools

Programmers (Flash, etc.) (7)

IMX6_L3.14.28_MFG_TOOL (REV L3.14.28_1.0.0)

http://www.freescale.com/products/arm-processors/i.mx-applications-processors-based-on-arm-cores/i.m...

For the NAND to be recognized, it must have an entry in table linux../drivers/mtd/nand/nand_ids.c.

Then rebuild MFG Tool firmware as describes sect.6.2 "Manufacturing Tool, MFGTool"

attached Yocto Guide , then use commands as in profile "NAND Flash" in ucl2.xml.

Best regards

igor

0 Kudos
2,023 Views
isaacnickaein
Contributor III

Hi Igor,

The kernel I am currently using for i.MX6 is kernel 3.10.17 (as many patches are released for kernel 3.10). Do I have to use #2 option in the below list, or the MfgTool kernel version is irrelevant of what Kernel/DTB I am flashing to the i.MX6.

BTW, I cannot find MfgTool 3.14.28. The available downloads under Programmers section are:

  1. i.MX 6Family Manufacturing Toolkit for kk4.4.2_1.0.0
  2. i.MX 6Family Manufacturing Toolkit for L3.10.17
  3. IMX-L5.0.0-MFG-TOOL
  4. IMX6_L3.10.53_MFG_TOOL
  5. IMX_KK4.4.3_MFG_TOOL
  6. Source Code for the i.MX manufacturing tool used for downloading OS images to the i.MX 6 Processors
  7. Tool and documentation for downloading OS images to the i.MX 6Quad and i.MX6Dual
0 Kudos
2,023 Views
igorpadykov
NXP Employee
NXP Employee

Hi Isaak

3.10.17 is quite old, recommended to use latest 3.14.28 GA release

i.MX6Q|i.MX 6Quad Processors|Quad Core|Freescale

1.jpg

~igor

0 Kudos
2,023 Views
isaacnickaein
Contributor III

Ah. I was looking at the wrong page: SABRE Board Reference Design|Freescale

We are planning to switch to 3.14.28 in the future, but we are currently stuck with 3.10.

There is also 3.10.53 available on the page you provided. Should I use it (as our kernel and DTB is 3.10) or I can use MfgTool 3.14.28 without any compatibility issue?

To be specific, what does MfgTool version specify (e.g. MfgTool 3.14) and what is its relation with the U-Boot/kernel/DTB I am going to flash on i.MX6?

0 Kudos
2,023 Views
igorpadykov
NXP Employee
NXP Employee

there is 3.10.53 U-Boot/kernel/DTB and corresponding to it 3.10.53 mfg tool version.

0 Kudos