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.

DM8168 NAND erase issue

Hi,

For DM8168 processor we have interface 16 bit NAND device(MT29F8G16ABACAWP-IT:C) in our custom board.

In SD card boot mode we can able to detect the NAND device. when we performing NAND erase commands we are observing Skipping bad block as mentioned below.

Can you please provide your inputs / suggestions

--------------------------------------------------------------------------------

U-Boot 2010.06-dirty (Mar 21 2014 - 08:09:49)

DRAM:  2 GiB
MMC:   OMAP SD/MMC: 0
Using default environment

raise: Signal # 8 caught
reading u-boot.bin

210352 bytes read
## Starting application at 0x80800000 ...


U-Boot 2010.06 (Sep 10 2014 - 18:50:21)

TI8168-GP rev 2.1

ARM clk: 987MHz
DDR clk: 796MHz

I2C:   ready
DRAM:  2 GiB
NAND:  HW ECC BCH8 Selected
NAND device: Manufacturer ID: 0x2c, Chip ID: 0xc3 (Micron NAND 1GiB 3,3V 16-bit)
1024 MiB
MMC:   OMAP SD/MMC: 0

Net:   <ethaddr> not set. Reading from E-fuse
Detected MACID:84:7e:40:ef:9b:ee
Ethernet PHY: GENERIC @ 0x01
DaVinci EMAC
Hit any key to stop autoboot:  0
TI8168_EVM#mmc rescan 0
raise: Signal # 8 caught
TI8168_EVM#fatload mmc 0 0x81000000 u-boot.noxip.bin 0x1c0000
reading u-boot.noxip.bin

210320 bytes read
TI8168_EVM#nandecc hw 2
HW ECC BCH8 Selected
TI8168_EVM#nand erase 0x0 0x1c0000

NAND erase: device 0 offset 0x0, size 0x1c0000
Skipping bad block at  0x00000000                                          
Skipping bad block at  0x00040000                                          
Skipping bad block at  0x00080000                                          
Skipping bad block at  0x000c0000                                          
Skipping bad block at  0x00100000                                          
Skipping bad block at  0x00140000                                          
Skipping bad block at  0x00180000                                          

OK

----------------------------------------------------------------------------------------------------------------

  • Hello,

    Some of the blocks in the NAND may get corrupted over a period of time. In such cases you should explicitly mark such blocks as bad so that the image that you are writing to NAND does not end up getting corrupted. You can have two types of bad blocks: factory marked bad blocks and user marked bad blocks. The NAND erase command skips bad blocks (both factory or user marked) encountered within the specified range.

    See the below wiki pages for more info:

    http://processors.wiki.ti.com/index.php/TI81XX_PSP_UBOOT_User_Guide#U-Boot_NAND_Support

    http://processors.wiki.ti.com/index.php/TI811x_EZSDK_Patches_and_Errata

    Why do I get "skipping bad block at 0x...." continuously while reading from NAND and finally not able to boot from NAND?

    If multiple contnuous bad blocks are reported on the NAND flash in the Uboot, run the 'nand scrub' command once. Some good blocks are incorrectly marked bad in this case. Running the nand scrub command once fixes this issue.

     

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/717/p/236820/830554.aspx#830554

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/717/t/106504.aspx

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/t/288134.aspx

    Best regards,
    Pavel