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.

DM368 NANFLASH 由32M换成128M的flash(K9F1G08U0D)读写出错前辈是怎么解决的



Dear TI engineer:

  我们目前开发一款产品使用贵公司dm365的解决方案,之前我们用一款32MB的nandflash能够正常的读写,现在由于项目需要换成128M的flash(K9F1G08U0D), 发现uboot和kernel不能正常读写,具体问题如下:

  1.uboot启动在初始化坏块表时,读出每一块的第一页的第一个字节为0x00,第二个字节是0xFF ,故uboot会全部认为是坏块(这个flash spec上说明每一块的第一页的第一字节不为0xff就是坏块)。

2.如果不去判断坏块标志,坏块表可以建立,uboot读写有时也是正常的,但是有时启动会不正常,无法读出参数,提示CRC校验错误。在CCS中验证参数在指定的位置是正确的,校验码也是正确的(采用4BIT EEC硬件校验)。

3.kernel中使用cp命令copy数据到分区中,uboot中发现,数据不正确,oob的数据也不正确,故uboot也无法读出kernel写进去的数据。

恳请专家给解答下,如果解决这个问题,thanks!

  • I2C:   ready
    DRAM:  128 MB
    NAND:  nand_init_chip
    11111111board_nand_init
    ##!this->badblock_pattern
    CFG_DAVINCI_STD_NAND_LAYOUT nand->ecc.read_page = davinci_std_read_page_syndrome;
    find flash id ok dev_id:241
    @@@type->pagesize :0  ,mtd->erasesize:131072 ,mtd->writesize :2048
    NAND device: Manufacturer ID: 0xec, Chip ID: 0xf1 (Samsung NAND 128MiB 3,3V 8-bit)
    NAND_ECC_HW
    NAND_ECC_HW_SYNDROME
    nand_default_bbt :NAND_USE_FLASH_BBT
    search_read_bbts
    Bad block table found at page 65472, version 0x01
    p[i] != 0xff   222
    Bad block table found at page 65408, version 0x01
    check_create
    nand_bbt: ECC error while reading bad block table
    nand_init_chip
    11111111board_nand_init
    ##!this->badblock_pattern
    CFG_DAVINCI_STD_NAND_LAYOUT nand->ecc.read_page = davinci_std_read_page_syndrome;
    find flash id ok dev_id:241
    @@@type->pagesize :0  ,mtd->erasesize:131072 ,mtd->writesize :2048
    NAND device: Manufacturer ID: 0xec, Chip ID: 0xf1 (Samsung NAND 128MiB 3,3V 8-bit)
    NAND_ECC_HW
    NAND_ECC_HW_SYNDROME
    nand_default_bbt :NAND_USE_FLASH_BBT
    search_read_bbts
    Bad block table found at page 65472, version 0x01
    p[i] != 0xff   222
    Bad block table found at page 65408, version 0x01
    check_create
    nand_bbt: ECC error while reading bad block table
    256 MiB
    env_relocate[228] offset = 0x0
    env_nand.c env_relocate_spec 353
    222
    bbt_erase_shift:0x11
    block:0x3c
    res:0
    zzzzz111nand_isbad_bbt(): bbt info for offs 0x003c0000: (block 0) 0x1e
    *** Warning - bad CRC or NAND, using default environment

    Bad block table found at page 65472, version 0x01  这个提示是什么参数不对?

  • fore jolly,
    你好,看到你已经获取到ID了,Manufacturer ID: 0xec, Chip ID: 0xf1,请教下是怎么配置的呢?我获取到的ID是错的