韦东山Linux嵌入式课程社区
直播中

郭金

7年用户 144经验值
私信 关注

一直提示flash没有擦除该怎么办?

在移植uboot2016.09时,成功支持nor flash 和 nand flash 之后,尝试将nand中的uboot读取到nor时,执行以下命令:
1.先执行nand read.jffs2 30000000 0  40000; protect off all; erase 0 3ffff

提示:
SMDK2440 # nand read.jffs2 30000000 0  40000; protect off all; erase 0 3ffff

NAND read: device 0 offset 0x0, size 0x40000
262144 bytes read: OK
Un-Protect Flash Bank # 1

.... done
Erased 4 sectors
操作成功。

2.再执行cp.b 30000000 0 40000

提示:
SMDK2440 # cp.b 30000000 0 40000                                                                  
Copy to Flash... 9..Flash not Erased
SMDK2440 #

出现错误。说flash没有擦除,之后我又尝试了
SMDK2440 # erase bank 1
Erase Flash Bank # 1
................................... done
再次执行 cp.b 30000000 0 40000,
SMDK2440 # cp.b 30000000 0 40000                                            
Copy to Flash... 9..Flash not Erased
SMDK2440 #
还是提示flash没有擦除,我在移植的过程中并没有对flash的源代码做修改,是不是宏定义或者其他地方出了问题

回帖(2)

李名扬

2019-9-9 10:25:39
别沉了呀,晚上我又试了试,md命令看了一下,全是ffff,说明擦除成功,那就是在写的地方出现了问题,我又分别尝试了
cp.b 30000000 0 f
cp.b 30000000 0 ff
cp.b 30000000 0 fff
均提示
Copy to Flash... done
可以执行成功,
但执行
cp.b 30000000 0 ffff
就提示
Copy to Flash... 9..Flash not Erased
有没有哪位大神可以解答的
举报

华一颖

2019-9-9 10:36:39
问题已解决。
之前在参考Linux学习 :移植U-boot_2016.09到JZ2440开发板这篇文章使uboot支持nor flash的时候,在jedec_flash.c的jedec_table[] 中增加一项匹配板子上的NOR-Flash厂商ID和设备ID:
是这样添加的,
 {      /*  sheldon add for JZ2440_V2 Nor_Flash : MT29LV160DB */                                                                    
            .mfr_id     = (u16)MX_MANUFACT,                                               
            .dev_id     = 0x2249,                                                         
            .name       = "MX29LV160D",                                                   
            .uaddr      = {                                                               
                [1] = MTD_UADDR_0x0555_0x02AA /* 1:x16 ,NOR Flash 的解锁地址 */
             },                                                                           
            .DevSize    = SIZE_1MiB,                                                      
            .CmdSet     = P_ID_AMD_STD,                                          
            .NumEraseRegions= 4,                                                         
            .regions    = {    //查看芯片手册设置擦除块                                                           
                ERASEINFO(0x10000, 31),                                                   
                ERASEINFO(0x08000, 1),                                                   
                ERASEINFO(0x02000, 2),                                                   
                ERASEINFO(0x04000, 1),                                                   
          }
但是,在u-boot-1.1.6_jz2440_burn_nor_with_nand_uboot.patch这个补丁中,是这样的
{
        .mfr_id        = MANUFACTURER_MACRONIX,
        .dev_id        = MX29LV160B,
        .name        = "MXIC MX29LV160B",
        .uaddr        = {
            [0] = MTD_UADDR_0x0AAA_0x0555,  /* x8 */
            [1] = MTD_UADDR_0x0555_0x02AA,  /* x16 */
        },
        .DevSize    = SIZE_2MiB,
        .CmdSet        = P_ID_AMD_STD,
        .NumEraseRegions= 4,
        .regions    = {
            ERASEINFO(0x04000,1),
            ERASEINFO(0x02000,2),
            ERASEINFO(0x08000,1),
            ERASEINFO(0x10000,31)
        }
    },
说明对flash的配置不同,
于是,我修改成这样
     {
        .mfr_id        = (u16)MX_MANUFACT,
        .dev_id        = MX29LV160D,
        .name        = "MXIC MX29LV160D",
        .uaddr        = {
            [0] = MTD_UADDR_0x0AAA_0x0555,  /* x8 */
            [1] = MTD_UADDR_0x0555_0x02AA,  /* x16 */
        },
        .DevSize    = SIZE_2MiB,
        .CmdSet        = P_ID_AMD_STD,
        .NumEraseRegions= 4,
        .regions    = {
            ERASEINFO(0x04000,1),
            ERASEINFO(0x02000,2),
            ERASEINFO(0x08000,1),
            ERASEINFO(0x10000,31)
        }
    },
然后,编译,下载程序到JZ2440V3的norflash中,执行
nand read.jffs2 30000000 0 40000; protect off all; erase 0 3ffff; cp.b 30000000 0 40000
成功将nand flash 中的uboot拷贝至norflash
举报

更多回帖

发帖
×
20
完善资料,
赚取积分