使用路由器自制简易NAND编程器(有史以来最便宜的编程器)
申明:本人不提供改机服务,此教程只是抛砖引玉,所以请勿电话联系,非诚勿扰。
前言:
随着越来越多的路由器采用了NAND Flash来作为默认的存储芯片,由于NAND Flash编程器高昂的价格,使得很多网友只能对NAND Flash的机器打退堂鼓。于是我就开始考虑,是否可以把路由器当编程器用。经过几次尝试后,发现是完全没有问题,而且这类自制编程器的速度不亚于专业的编程器。
本教程适合有一定电子制作基础的网友,并且熟悉CFE的环境,当然博主也可以提代改服务(关注微信号,获取相关联系方式)。提到的CFE文件会在文章最后以附件的或者链接的形式提供。
教程:
一)准备材料
一台支持SPI+NAND启动的BCM ARM的机器
焊接用设备(烙铁,风枪....)
TSOP 48P 测试座
SPI编程器(可选)
TTL USB 数据线
二)教程步骤
把上图中的测试座,焊接到路由器上,焊接的过程中最好将FLASH放入测试座中,防止在焊接过程中由于高温导致变形。当然,你有也可以从反面高温加热焊接。
由于很多机器默认的SPI Flash自带的CFE很多都是精简版的,不会开机自动检测NAND Flash。所以需要更换掉原厂自带的CFE。假如你有编程器可以直接采用编程器刷CFE,可以略过下面的步骤直接到第3步。上电开机,按ctrl+c后进入CFE模式,输入命令更换SPI Flash中的CFE,我采用的是AC15的CFE。命令如下 flash -noheader 192.168.1.2:ac15_cfe.bin flash0.boot
更换CFE成功后,你就可以在CFE中直接对NAND进行烧写了。从下面的日志当中可以出,CFE已经正确的识别Flash了。NAND的设备名,默认是nflash0.brcmnand ,所以你烧写的时候,使用 flash -noheader 192.168.1.2:test.bin nflash0.brcmnand,提示烧录成功后就大功告成。
三)相关资料
1)机器正确识别NAND后的日志
CFE version 6.37.14.93 (r469350) based on BBP 1.0.37 for BCM947XX (32bit,SP,)
Build Date: Sat Aug 15 04:37:51 EDT 2015 (root@AirHost)
Copyright (C) 2000-2008 Broadcom Corporation.
Init Arena
Init Devs.
Boot partition size = 262144(0x40000)
Found a Esmt NAND flash:
Total size: 128MB
Block size: 128KB
Page Size: 2048B
OOB Size: 64B
Sector size: 512B
Spare size: 16B
ECC level: 1 (1-bit)
Device ID: 0x92 0xf1 0x80 0x95 0x40 0x7f
DDR Clock: 400 MHz
Info: DDR frequency set from clkfreq=800,*400*
et0: Broadcom BCM47XX 10/100/1000 Mbps Ethernet Controller 6.37.14.93 (r469350)
CPU type 0x0: 800MHz
Tot mem: 131072 KBytes
2)NAND Flash烧录的命令和日志
CFE> flash -noheader 192.168.20.12:cfe nflash0.brcmnand
Reading 192.168.20.12:cfe: Done. 231922 bytes read
Programming...done. 231922 bytes written
*** command status = 0
CFE> reboot
3)我所使用的机器
4)相关CFE下载
http://dl.tomato.org.cn/NAND-Programmer/