This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Strange behaviour on updating ubl

Guru 20755 points

Hello,

on updating only ubl from 1.5 to 1.65 (u-boot, linux kernel are both the same as previous)

We get that errors on trying to write into nand from linux.

But I write only filesystem partitions not on ubl partitions , so why do we get this errors ?

# tftp -g -r ramdisk.tar 192.168.1.114
mkdir /mnt/nand
flash_eraseall /dev/mtd3
mount -t yaffs /dev/mtdblock3 /mnt/nand
cd /mnt/nand
tar -xf /root/ramdisk.tar

# mkdir: cannot create directory '/mnt/nand': File exists
Erasing yaffs: dev is 32505859 name is "mtdblock3"
128 Kibyte @ f70yaffs: passed flags ""
0000 -- 99 % comyaffs: Attempting MTD mount on 31.3, "mtdblock3"
Erasing 1yaffs: auto selecting yaffs2
Erasing 128 Kibyte @ f760000 -- 99 % complete.
Skipping bad block at 0x0f780000

Skipping bad block at 0x0f7a0000

Skipping bad block at 0x0f7c0000

Skipping bad block at 0x0f7e0000

# block 1981 is bad
block 1982 is bad
block 1983 is bad
block 1984 is bad
yaffs_read_super: isCheckpointed 0
# # **>> yaffs chunk 3520 was not erased
**>> yaffs chunk 3521 was not erased
**>> yaffs chunk 3522 was not erased
....
**>> yaffs chunk 8273 was not erased
**>> yaffs chunk 8274 was not erased
**>> yaffs write required 84 attempts
nand_davinci_4bit_compare_ecc Too many errors to be corrected!
nand_davinci_4bit_compare_ecc Too many errors to be corrected!
nand_davinci_4bit_compare_ecc Too many errors to be corrected!
nand_davinci_4bit_compare_ecc Too many errors to be corrected!
**>> yaffs chunk 17792 was not erased
.....
**>> yaffs chunk 17836 was not erased
**>> yaffs chunk 17837 was not erased
**>> yaffs chunk 17838 was not erased
**>> yaffs chunk 17839 was not erased
**>> yaffs chunk 17840 was not erased

Thank you for any idea,

Ran

  • I suspect that different ECC mechanism might be used in UBL,u-boot and linux.
    When you update the UBL/u-boot in Linux, it would erase and write with ECC of Linux.
  • Hi Titus,

    Thank you for the reply.

    this is the procedure I am doing:

    1. from ccs5 with nanderase/nandwrite programs I do:

     1.1 nand erase flash

     1.2 nand write ubl + u-boot

    2. from u-boot I program:

       2.1 boot parameters

       2.2 kernel

       2.3 initrd filesystem

    3. from kernel I then do:

      3.1 flash_eraseall for filesystem partition

      3.2 mount filesystem partition as yaffs and extract filesystem tar into this partition

    This procedure works well with: ubl 1.5 + u-boot 1.3.4+ kernel 2.6.18

    If I only change ubl from 1.5 to 1.65 this procedure fails in 3.2 ( mount filesystem partition as yaffs from linux)

    I don't understand how it can be... the partition is not u-boot/ubl but this is the filesystem partitions, so why the new ubl version can cause this failue ?

    Our partitions:

    nand

    0x020000 ubl+header

    0x320000 u-boot + header

    0x3c0000 - params

    0x400000 - kernel

    0x800000 - filesystem

    0xc00000 - filesystem2

    Thanks,

    Ran

  • Ran,

    Please refer to the TI WIKI below in which it states how to maintain the same ECC mode for UBL/U-boot/ Linux during compile time.

    processors.wiki.ti.com/.../Error_Correction_User_Guide

    Please revert if that doesnot work out for you.