找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 8018|回复: 10

[k3c] K3C 备份nand编程器固件的方法

[复制链接]
发表于 2018-3-22 10:10 | 显示全部楼层 |阅读模式
本帖最后由 phitools 于 2018-3-22 10:31 编辑

K3C 备份nand编程器固件的方法


首先你要打开 k3c 的 telnet

不带冗余空间的分布图(通常读出的备份,大家都会的备份方式)



              设备名    flash地址范围        大小  标号名            最大长度

  1. mtd0 0x0000000-0x00FFFFF 1M    uboot            0x0100000
  2. mtd1 0x0100000-0x013FFFF 256K ubootconfigA   0x0040000
  3. mtd2 0x0140000-0x017FFFF 256K ubootconfigB   0x0040000
  4. mtd3 0x0180000-0x01BFFFF 256K gphyfirmware  0x0040000
  5. mtd4 0x01C0000-0x02BFFFF 1M    calibration      0x0100000
  6. mtd5 0x02C0000-0x12BFFFF 16M   bootcore       0x1000000
  7. mtd6 0x12C0000-0x12FFFFF 256K  pro_info       0x0040000
  8. mtd7 0x1300000-0x133FFFF 256K  dev_info       0x0040000
  9. mtd8 0x1340000-0x7f3FFFF 108M  system_sw    0x6C00000
  10. mtd9 0x7f40000-0x7FFFFFF 768K  res                0x00C0000
复制代码

mtd10-mtd16只是逻辑影射(影射mtd8的内容, ubi文件系统中的分区), 不在闪存中保留
这可能就是K3C容易变砖的原因,猜测是mtd8的内容变了,而相应的影射关系没变(内容已经移位),
系统又是根据影射进行启动,所以启动不了,变成逻辑砖

带冗余空间(oob或ecc)的闪存分布图(128M芯片 2048一页 64冗余 64页为一块=128K)

  1. 设备名     flash地址范围                  大小   标号名                最大长度

  2. mtd0_o 0x0000000-0x0107FFF 1M      uboot              0x0108000
  3. mtd1_o 0x0108000-0x0149FFF 256K ubootconfigA  0x0042000
  4. mtd2_o 0x014A000-0x018BFFF 256K ubootconfigB  0x0042000
  5. mtd3_o 0x018C000-0x01CDFFF 256K gphyfirmware  0x0042000
  6. mtd4_o 0x01CE000-0x02D5FFF 1M      calibration      0x0108000
  7. mtd5_o 0x02D6000-0x1355FFF 16M   bootcore          0x1080000
  8. mtd6_o 0x1356000-0x1397FFF 256K  pro_info           0x0042000
  9. mtd7_o 0x1398000-0x13D9FFF 256K dev_info           0x0042000
  10. mtd8_o 0x13DA000-0x8339FFF 108M system_sw      0x6F60000
  11. mtd9_o 0x833A000-0x83FFFFF 768K  res                    0x00C6000
复制代码

128M闪存的实际存储空间为132M
坏块管理机制为 每块内坏块跳过(即每个分区的起始地址是固定的)


K3C 的nanddump 命令可以读出带oob的数据, 但只能按mtd块来读(不能一次全部读出), 所以要读多次
带坏块数据的备份命令, 假设插入U盘的挂载为/ramdisk/usb/.run/mountd/sda1/, 根据实际情况修改
  1. nanddump -f /ramdisk/usb/.run/mountd/sda1/mtd0_o -o --bb=dumpbad /dev/mtd0
  2. nanddump -f /ramdisk/usb/.run/mountd/sda1/mtd1_o -o --bb=dumpbad /dev/mtd1
  3. nanddump -f /ramdisk/usb/.run/mountd/sda1/mtd2_o -o --bb=dumpbad /dev/mtd2
  4. nanddump -f /ramdisk/usb/.run/mountd/sda1/mtd3_o -o --bb=dumpbad /dev/mtd3
  5. nanddump -f /ramdisk/usb/.run/mountd/sda1/mtd4_o -o --bb=dumpbad /dev/mtd4
  6. nanddump -f /ramdisk/usb/.run/mountd/sda1/mtd5_o -o --bb=dumpbad /dev/mtd5
  7. nanddump -f /ramdisk/usb/.run/mountd/sda1/mtd6_o -o --bb=dumpbad /dev/mtd6
  8. nanddump -f /ramdisk/usb/.run/mountd/sda1/mtd7_o -o --bb=dumpbad /dev/mtd7
  9. nanddump -f /ramdisk/usb/.run/mountd/sda1/mtd8_o -o --bb=dumpbad /dev/mtd8
  10. nanddump -f /ramdisk/usb/.run/mountd/sda1/mtd9_o -o --bb=dumpbad /dev/mtd9
复制代码

备份后可访问\\192.168.2.1将U盘内容拷贝到计算机, 或把u盘插入电脑拷贝到计算机
打开CMD, 换到备份的目录, 用下列命令合成
  1. copy /b mtd0_o + mtd1_o + mtd2_o + mtd3_o + mtd4_o + mtd5_o + mtd6_o + mtd7_o + mtd8_o + mtd9_o k3crom.bin
复制代码
k3crom.bin 就是编程器固件文件, 文件长度为132M
特别声明: 这时得到的编程器固件, 只适用于你的这个flash芯片, 除非新的芯片与你的老片有相同的坏块数和相同的位置, 才能拷贝!
不然可能不能正常启动! 上nand编程器时要选择 hard copy 模式, UBA size 选0x400, 包括冗余数据. 以希尔特编程器为例, 参数这样设定

如果要想拷贝到其它的芯片中, 需要对固件进行坏块适应性修改, bbt表也要修改, 由于k3c的ECC算法不清楚, 无法修改!
当然了, 如果新芯片是无坏块nand芯片, 还是可以通过备份换算出可拷贝用的无坏块编程器固件的


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评分

参与人数 1恩山币 +2 收起 理由
jb*** + 2 面对这种帖子,我内心复杂,真不知道说什么好……

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
发表于 2018-3-22 13:01 | 显示全部楼层
实际上第三方编程器固件的话也是可以用的,但是必须用k3c来写入,这样意义就不大了,所以我一直没放

点评

三方编程器固件如何用K3C写入?  详情 回复 发表于 2020-2-12 10:30
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-4-5 16:59 | 显示全部楼层
我擦,看不懂啊,怎么整
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-4-5 22:06 来自手机 | 显示全部楼层
好文章要记得收藏
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-9-24 01:33 来自手机 | 显示全部楼层
后期坏块增加的话,岂不是备份没用了?
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-9-25 21:32 | 显示全部楼层
谢谢分钟,必须顶一下。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-11-12 15:44 来自手机 | 显示全部楼层
我觉得后面表达不大对,新片坏块的位置对应备份出来的位置不是00或者ff就可以复制吧
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-12-25 10:12 | 显示全部楼层
看不懂啊,说详细点吧
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2020-2-12 10:30 | 显示全部楼层
paldier 发表于 2018-3-22 13:01
实际上第三方编程器固件的话也是可以用的,但是必须用k3c来写入,这样意义就不大了,所以我一直没放

三方编程器固件如何用K3C写入?
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2021-6-25 13:44 来自手机 | 显示全部楼层
无名小小生 发表于 2020-2-12 10:30
三方编程器固件如何用K3C写入?

把k3c当做编程器
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2021-6-27 07:34 来自手机 | 显示全部楼层
我利用上面的带obb的备份命令,备份出的分区为什么和不带obb的一样呢?
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-25 15:39

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

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