1.烧写Linux相关文件
将生成的uImage,device.dtb,fpga.bit以及uramdisk.image.gz文件烧写到单板的flash当中,步骤如下:
以下是flash的分区规划
BOOT.bin | 0x0~0xe0000 |
Env.txt | 0xe0000~0x100000 |
uImage | 0x100000~0x500000 |
device.dtb | 0x500000~0x580000 |
uramdisk.image.gz | 0x580000~0xa00000 |
fpga.bit | 0xa00000~0x1000000 |
- 单板配置为QSPI启动
- 上电后u-boot执行,进入u-boot开发命令行模式
- 打开tftp工具,选择烧写文件的位置作为上传路径
- setenv serverip 192.168.0.100 设置主机IP地址,并在windows网卡适配器中添加静态以太网IP地址192.168.0.100
- setenv ipaddr 192.168.0.5 设置单板ip
- tftpboot 0x1000000 uImage 传送 uImage文件到DDR 0x1000000地址处
- sf probe 0 50000000 0 探测spi flash器件
- sf erase 0x100000 0x400000 擦写flash地址从0x100000开始,大小0x400000
- sf write 0x1000000 0x100000 0x3fffff 将内存DDR中0x1000000地址文件烧写到0x100000处,烧写文件大小为0x3fffff
- tftpboot 0x1000000 device.dtb传送 device.dtb文件到DDR 0x1000000地址处
- sf erase 0x500000 0x80000 擦写flash地址从0x500000开始,大小0x80000
- sf write 0x1000000 0x500000 0x7ffff 将内存DDR中0x1000000地址文件烧写到0x500000处,烧写文件大小为0x7ffff
- tftpboot 0x1000000 uramdisk.image.gz 传送 uramdisk.image.gz文件到DDR 0x1000000地址处
- sf erase 0x580000 0x480000 擦写flash地址从0x580000开始,大小0x480000
- sf write 0x1000000 0x580000 0x47ffff 将内存DDR中0x1000000地址文件烧写到0x580000处,烧写文件大小为0x47ffff
- tftpboot 0x1000000 fpga.bit传送 fpga.bit文件到DDR 0x1000000地址处
- sf erase 0xa00000 0x600000 擦写flash地址从0xa00000开始,大小0x600000
- sf write 0x1000000 0xa00000 0x5fffff 将内存DDR中0x1000000地址文件烧写到0xa00000处,烧写文件大小为0x5fffff
- tftpboot 0x1000000 BOOT.bin传送 BOOT.bin文件到DDR 0x1000000地址处
- sf erase 0x0 0xe0000 擦写flash地址从0x0开始,大小0xe0000
- sf write 0x1000000 0x0 0xdffff 将内存DDR中0x1000000地址文件烧写到0x0处,烧写文件大小为0xdffff
2.系统上电启动部署
Linux内核及部署步骤如下
- setenv serverip 192.168.0.100 设置主机ip
- setenv ipaddr 192.168.0.2 设置单板ip
- setenv bootdelay=3 设置启动延时
- setenv bootargs console=ttyPS0,115200 maxcpus=1 root=/dev/ram rw earlyprintk 设置内核启动参数
- setenv bootcmd ‘sf probe 0 50000000 0 && sf read 0x1000000 0xa00000 0x5fffff && fpga loadb 0 0x1000000 0x5fffff && sf read 0x2000000 0x500000 0x7ffff && sf read 0x2080000 0x100000 0x3fffff && sf read 0x4000000 0x580000 0x47ffff &&bootm 0x20800000 0x40000000 0x2000000’
saveenv 保存参数
- boot 启动,可以看见内核启动打印信息,出现Linux shell的命令调试符