龙芯俱乐部开源技术社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 5885|回复: 6

求助:执行 devcp 前忘记执行 mtd_erase 结果出现了坏块,怎么办?

[复制链接]

9

主题

43

帖子

1080

积分

金牌会员

Rank: 6Rank: 6

积分
1080
发表于 2016-1-7 15:32:59 | 显示全部楼层 |阅读模式
求助:执行 devcp 前忘记执行 mtd_erase 结果出现了坏块,怎么办? 谢谢

现在每次执行 mtd_erase 都会出现这个情况:

PMON> mtd_erase /dev/mtd1
mtd_erase working:
0x03100000  nand_erase: attempt to erase a bad block at page 0x00006200
0x03f60000  nand_erase: attempt to erase a bad block at page 0x00007ec0
0x07200000  
mtd_erase work done!
PMON>

9

主题

43

帖子

1080

积分

金牌会员

Rank: 6Rank: 6

积分
1080
 楼主| 发表于 2016-1-7 18:42:38 | 显示全部楼层
本帖最后由 HexFire 于 2016-1-7 18:44 编辑

操作记录:

PMON> ifup syn0
Bus Mode Reg after reset: 0x00020101
Version = 0x1237
MacAddr = 0x0   0x55    0x7b    0xb5    0x7d    0xf7
=====>enter synopGMAC_mac_init:1000
=====>full duplex
=====>100M
PMON> ifaddr syn0 192.168.99.161
bootp=8000b874
PMON> ping 192.168.99.209
PING 192.168.99.209 (192.168.99.209): 56 data bytes
64 bytes from 192.168.99.209: icmp_seq=0 ttl=64 time=0.982 ms
64 bytes from 192.168.99.209: icmp_seq=1 ttl=64 time=0.615 ms

--- 192.168.99.209 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.615/0.790/0.982 ms
PMON> mtd_erase /dev/mtd1
mtd_erase working:
0x03100000  nand_erase: attempt to erase a bad block at page 0x00006200
0x03f60000  nand_erase: attempt to erase a bad block at page 0x00007ec0
0x07200000  
mtd_erase work done!
PMON> devcp tftp://192.168.99.209/rootfs.yaffs2img /dev/mtd1 yaf nw      
37982208
Skip bad block 0x03100000
53391360
Skip bad block 0x03f60000
74547264PMON> set append 'root=/dev/mtdblock1 console=ttyS2,115200 rootfstype=yaffs2'
PMON> reboot

25

主题

218

帖子

10万

积分

论坛元老

Rank: 8Rank: 8

积分
101717
发表于 2016-1-8 09:04:49 | 显示全部楼层
智龙2.0可以重新刷PMON和debian,

9

主题

43

帖子

1080

积分

金牌会员

Rank: 6Rank: 6

积分
1080
 楼主| 发表于 2016-1-8 15:57:30 | 显示全部楼层
xieyug2012 发表于 2016-1-8 09:04
智龙2.0可以重新刷PMON和debian,

我的意思是智龙的 NAND flash 因为操作不当出现了坏块, 查询了下资料, 了解到这种坏块是由于在写入 yaffs2 文件系统前, 没有执行 mtd_erase 导致的, 也就说并不是真的坏了, 而是由于误操作被系统标识为坏块了, 应该是可以恢复的.

不过暂时还没搞清楚如何用命令恢复, 尤其是目前智龙把闪存分了3个区域, MTD0存放Linux 内核, MTD1存放 rootfs, MTD2 是用户区域, 我现在只是 MTD1 出现了坏块, 希望能在不影响其他两个分区的情况下恢复 MTD1 中的坏块.

这方面的知识了解得不多, 正在慢慢查

25

主题

218

帖子

10万

积分

论坛元老

Rank: 8Rank: 8

积分
101717
发表于 2016-1-16 12:09:38 | 显示全部楼层
HexFire 发表于 2016-1-8 15:57
我的意思是智龙的 NAND flash 因为操作不当出现了坏块, 查询了下资料, 了解到这种坏块是由于在写入 yaffs ...

那好吧,我就不添乱了。

34

主题

108

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
16593
发表于 2016-1-17 20:38:04 | 显示全部楼层
理论上说flash随着写次数的增加坏块会逐渐增多,yaffs文件系统会平均每一个存储块被写的机会,另外坏块会被标记出来以便写数据的时候绕过它。

25

主题

218

帖子

10万

积分

论坛元老

Rank: 8Rank: 8

积分
101717
发表于 2017-4-3 15:31:26 | 显示全部楼层
http://git.oschina.net/openloongson/smart_loong_docs/tree/master/,用这里的文件系统试试,也许是文件本身错了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|龙芯俱乐部开源技术社区

GMT+8, 2024-3-29 12:45 , Processed in 0.119337 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表