|
修复 DB120-WG 变砖的方法, 暂时只有一个, 就是把 flash 拿走然後重新编程, 做法:
1. 拿掉 16MB 闪存
2. 用 flash programmer 或者是找另外一片带有闪存的板子, 只有你能掌握控制就可以了, 偶就使用了 NXP LPC2220 的板子, 编写了一个编程的软件, 把闪存焊在板子上再进行烧录
3. 准备一个 DB120-WG 用的 cfe.bin 的档案
4. 一般在网上下载的 cfe.bin 档案是不能直接下的, 那是 Big endian 的档案, 虽然 BCM6358 是 Big endian 的处理器, 但是 BCM6358 static RAM controller 是 little endian 来的, 因此原档要进行 half word swapping 的动作
例如: 我们在 winhex 可以看到 cfe.bin 原档的内容如下:
地址
0x00000000 10 00 02 79 00 00 00 00 00 00 00 00
0x00000010 00 00 00 00 00 00 00 00 00 00 00 00
第一句指令是 branch 指令 (32 bit 长, 0x10000279), 是用来处理 reset exception 的, 就是系统起动和reset 时, 系统执行的指令, 当 CPU 不能处理这个指令, 系统就必定当机, 就是变砖了, 原当的格式, 直接写进 flash (地址 0x00000000) 里, 系统是会读错的, 就是上文提及的 endian 问题, 因此, 要改为以下写法:
地址
0x00000000 00 10 79 02 00 00 00 00 00 00 00 00
0x00000010 00 00 00 00 00 00 00 00 00 00 00 00
第一个指令已做了 half word swapping, 从 10 00 02 79 改成 00 10 79 02, 不是只改一个指令, 而是把整个档案每一个 32 bit 的 word 都要做 halt word swapping
用了这个方法, 大猫就得救活, 然後再用 CFE 里的功能重写 Kernel, rootdisk 即可
提供一个现成改好的 cfe.bin 供试用 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|