Orangepi做编程器
前些天路由器被刷坏了,手头上又没有支持那路由器的flash的编程器,淘宝上支持的叫价两百多,无意中看了下OPI的gpio图发现可用来当编程器,于是便死马当活马医,想不到能识别那flash并且刷写成功救活了我的路由器。
在此分享下经验,互相交流学习。
1、端口定义及连接
OrangePi的40PIN外设端口定义
8脚Flash rom的连接定义(具体请自行查询相应flash rom的定义)
8765
-----
| |
○---
1234
Pin # | OrangePi | ||
---|---|---|---|
1 | spi0_cs | 24 | |
2 | spi0_miso | 21 | |
3 | not used | ||
4 | gnd | 25 | |
5 | spi0_mosi | 19 | |
6 | spi0_clk | 23 | |
7 | not used | ||
8 | vcc3.3v | 17 |
2、刷写
加载spi驱动
sudo modprobe spi-sunxi
sudo modprobe spi-dev
在/dev下你会发现多了个spidev0.0设备
编译flashrom
注:实际上直接用sudo apt-get install flashrom也是可以的
sudo apt-get install build-essential pciutils usbutils libpci-dev libusb-dev libftdi1 libftdi-dev zlib1g-dev subversion
svn co svn://flashrom.org/flashrom/trunk flashrom
cd flashrom
make
编译时有可能提示找不到libusb1.0,可试试sudo apt-get install libusb-1.0*
按针脚定义连接上flash之后尝试看看有没有识别出flash
sudo ./flashrom -p linux_spi:dev=/dev/spidev0.0
然后开始刷写
sudo ./flashrom -p linux_spi:dev=/dev/spidev0.0 -w /home/hd255G.bin
看到如下提示说明烧写成功
Reading old flash chip contents... done.
Erasing and writing flash chip... Erase/write done.
Verifying flash... VERIFIED.
以后电脑bios刷坏了也不怕了
Pin | SPI Pin Name | Orangepi Pin |
---|---|---|
1 | not used | not used |
2 | 3.3V | 1 |
3 | not used | not used |
4 | not used | not used |
5 | not used | not used |
6 | not used | not used |
7 | CS# | 24 |
8 | S0/SIO1 | 21 |
9 | not used | not used |
10 | GND | 25 |
11 | not used | not used |
12 | not used | not used |
13 | not used | not used |
14 | not used | not used |
15 | S1/SIO0 | 19 |
16 | SCLK | 23 |