通过TFTP方式,烧写Uboot.bin固件需要准备tftpd、SecureCRT,还要准备网线,串口线。
一、我的MT7688开发板出厂的IP地址为:192.168.1.1/24,所以给电脑设置一个同网段的静态IP地址。然后用网线将开发板的LAN与电脑的网卡连接。如果不知道开发板的IP地址,通过SecureCRT串口登录开发板,运行ifconfig可以查看板子的IP地址。
BusyBox v1.12.1 (2015-07-14 09:33:29 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.
# ifconfig
br0 Link encap:Ethernet HWaddr 00:0C:43:E1:76:28
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:43ff:fee1:7628/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4492 errors:0 dropped:0 overruns:0 frame:0
TX packets:3103 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:330738 (322.9 KiB) TX bytes:278487 (271.9 KiB)
二、关于SecureCRT怎样登录开发板,这个很简单了,根据厂家的说明需要设置比特率:57600;数据位:8;奇偶校验:NOne;停止位:1;串行终端长度100毫秒。同时去掉交互窗口,去掉RTS/CTS。
三、前面提到过通过虚拟机本身的文件夹共享功能实现Windows与Ubuntu的文件共享,这样在Linux中我只要将编译生成的Uboot固件放到这个文件夹中,在Windows中就可以使用该固件。于是,我在D盘建了个文件夹tftpd32,共享该文件夹,同时我的tftpd软件的文件目录也是该目录,这样在通过tftp方式烧写固件时稍微方便点了。如果某些版本的Ubuntu系统无法使用虚拟机的文件夹共享功能,可以搭建samba服务,参考上文。
四、确保电脑与开发板的IP在同一网段,准备好后就可以开始通过tftp方式烧写固件了,按下开发板上的SW1,串口出现Uboot界面如下:
============================================
Ralink UBoot Version: 4.3.0.0
--------------------------------------------
ASIC 7628_MP (Port5<->None)
DRAM component: 512 Mbits DDR, width 16
DRAM bus: 16 bit
Total memory: 64 MBytes
Flash component: SPI Flash
Date:May 1 2016 Time:07:58:19
============================================
icache: sets:512, ways:4, linesz:32 ,total:65536
dcache: sets:256, ways:4, linesz:32 ,total:32768
##### The CPU freq = 575 MHZ ####
estimate memory size =64 Mbytes
RESET MT7628 PHY!!!!!!
Please choose the operation:
1: Load system code to SDRAM via TFTP.
2: Load system code then write to Flash via TFTP.
3: Boot system code via Flash (default).
4: Entr boot command line interface.
7: Load Boot Loader code then write to Flash via Serial.
9: Load Boot Loader code then write to Flash via TFTP.
在烧写的过程中,不要强行中断!!!!!!
这个时候请快速按下9,要是动作慢了,系统就按照原来的系统启动了,不过可以重新再来。
下面是我的操作过程:操作的过程中,需要输入板子的IP、tftp服务器的IP、Uboot文件
在烧写的过程中,不要强行中断!!!!!!
U-Boot 1.1.3 (May 1 2016 - 07:58:19)
Board: Ralink APSoC DRAM: 64 MB
relocate_code Pointer at: 83fb8000
flash manufacture id: ef, device id 40 18
find flash: W25Q128BV
*** Warning - bad CRC, using default environment
============================================
Ralink UBoot Version: 4.3.0.0
--------------------------------------------
ASIC 7628_MP (Port5<->None)
DRAM component: 512 Mbits DDR, width 16
DRAM bus: 16 bit
Total memory: 64 MBytes
Flash component: SPI Flash
Date:May 1 2016 Time:07:58:19
============================================
icache: sets:512, ways:4, linesz:32 ,total:65536
dcache: sets:256, ways:4, linesz:32 ,total:32768
##### The CPU freq = 575 MHZ ####
estimate memory size =64 Mbytes
RESET MT7628 PHY!!!!!!
Please choose the operation:
1: Load system code to SDRAM via TFTP.
2: Load system code then write to Flash via TFTP.
3: Boot system code via Flash (default).
4: Entr boot command line interface.
7: Load Boot Loader code then write to Flash via Serial.
9: Load Boot Loader code then write to Flash via TFTP.
You choosed 9
0
9: System Load Boot Loader then write to Flash via TFTP.
Warning!! Erase Boot Loader in Flash then burn new one. Are you sure?(Y/N)
Please Input new ones /or Ctrl-C to discard
Input device IP (10.10.10.123) ==:192.168.1.1
Input server IP (10.10.10.3) ==:192.168.1.32
Input Uboot filename () ==:uboot.bin
netboot_common, argc= 3
NetTxPacket = 0x83FE4E00
KSEG1ADDR(NetTxPacket) = 0xA3FE4E00
NetLoop,call eth_halt !
NetLoop,call eth_init !
Trying Eth0 (10/100-M)
Waitting for RX_DMA_BUSY status Start... done
ETH_STATE_ACTIVE!!
TFTP from server 192.168.1.32; our IP address is 192.168.1.1
Filename 'uboot.bin'.
TIMEOUT_COUNT=10,Load address: 0x80100000
Loading: checksum bad
Got ARP REQUEST, return our IP
checksum bad
checksum bad
checksum bad
Got ARP REQUEST, return our IP
checksum bad
Got ARP REQUEST, return our IP
checksum bad
checksum bad
Got ARP REQUEST, return our IP
Got ARP REQUEST, return our IP
checksum bad
checksum bad
Got ARP REQUEST, return our IP
checksum bad
Got ARP REQUEST, return our IP
Got ARP REQUEST, return our IP
Got ARP REQUEST, return our IP
Got ARP REQUEST, return our IP
Got ARP REQUEST, return our IP
Got ARP REQUEST, return our IP
Got ARP REQUEST, return our IP
Got ARP REQUEST, return our IP
Got ARP REQUEST, return our IP
Got ARP REQUEST, return our IP
Got ARP REQUEST, return our IP
Got ARP REQUEST, return our IP
Got ARP REQUEST, return our IP
Got ARP REQUEST, return our IP
Got ARP REQUEST, return our IP
Got ARP REQUEST, return our IP
Got ARP REQUEST, return our IP
Got ARP REQUEST, return our IP
Got ARP REQUEST, return our IP
Got ARP REQUEST, return our IP
Got ARP REQUEST, return our IP
Got ARP REPLY, set server/gtwy eth addr (b8:88:e3:7a:66:3a)
Got it
##################
done
Bytes transferred = 88020 (157d4 hex)
NetBootFileXferSize= 000157d4
.
.
.
Done!
五、烧写完成后,板子也会启动起来
U-Boot 1.1.3 (May 1 2016 - 07:58:19)
Board: Ralink APSoC DRAM: 64 MB
relocate_code Pointer at: 83fb8000
flash manufacture id: ef, device id 40 18
find flash: W25Q128BV
*** Warning - bad CRC, using default environment
============================================
Ralink UBoot Version: 4.3.0.0
--------------------------------------------
ASIC 7628_MP (Port5<->None)
DRAM component: 512 Mbits DDR, width 16
DRAM bus: 16 bit
Total memory: 64 MBytes
Flash component: SPI Flash
Date:May 1 2016 Time:07:58:19
============================================
icache: sets:512, ways:4, linesz:32 ,total:65536
dcache: sets:256, ways:4, linesz:32 ,total:32768
##### The CPU freq = 575 MHZ ####
estimate memory size =64 Mbytes
RESET MT7628 PHY!!!!!!
Please choose the operation:
1: Load system code to SDRAM via TFTP.
2: Load system code then write to Flash via TFTP.
3: Boot system code via Flash (default).
4: Entr boot command line interface.
7: Load Boot Loader code then write to Flash via Serial.
9: Load Boot Loader code then write to Flash via TFTP.
0
3: System Boot system code via Flash.
## Booting image at bc050000 ...
Image Name: Linux Kernel Image
Image Type: MIPS Linux Kernel Image (lzma compressed)
Data Size: 7277004 Bytes = 6.9 MB
Load Address: 80000000
Entry Point: 8000c150
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
No initrd
## Transferring control to Linux (at address 8000c150) ...
## Giving linux memsize in MB, 64
Starting kernel ...
LINUX started...
THIS IS ASIC
Welcome to
__ ___ _____ _____ _ _______ ______ _____ _ ___
| \ / || ___|| __ \ | || __ ||__ __|| ___|| | / /
| ^ || |__ | | \ \| || | | | | | | |__ | |/ /
| | | || ___|| | | || || |__| | | | | ___|| \
| | | || |___ | |__/ /| || __ | | | | |___ | |\ \
|__| |___||_____||_____/ |_||_| |_| |_| |_____||_| \__\
= Everyday Genius =
make_audio_html.sh
init: can't log to /dev/tty5
starting pid 154, tty '/dev/ttyS1': '/bin/sh'
BusyBox v1.12.1 (2015-07-14 09:33:29 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.
# ls
etc sys mnt init usr dev etc_ro lib
home bin proc var media sbin tmp
#