zynqmp专栏之《设置uboot环境变量以及如何启动linux内核》

前提: 本文档适合zynqMP平台,如果需要在其他平台使用的话,请自行更改,文章禁止转载,谢谢合作。

 

由于板子没有外挂EMMC,只设置了一个32MB的flash,所以为了节约空间,在uboot上把所有能够压缩的文件都给压缩了。

FPGA是由BIT文件在linux系统上打包成gz的格式,内核也是打包成gz格式了,需要特别注意。


1. 首先设置uboot上的环境变量(注意,环境变量的地址是在uboot上改过的)
 

setenv ipaddr 192.168.0.74
setenv serverip 192.168.0.10
setenv netmask 255.255.255.0
setenv gatewayip 192.168.0.254

setenv uboot_name BOOT.bin
setenv uboot_addr 0x0
setenv uboot_size 0x1C0000

setenv uboot_env_addr 0x1C0000
setenv uboot_env_size 0x40000

setenv fpga_name download.bit.gz
setenv fpga_addr 0x200000
setenv fpga_size 0x600000
setenv fpga_unzip_addr 0x18000000
setenv fpga_unzip_size 0x1A000000

setenv image_name image.ub
setenv image_addr 0x800000
setenv image_size 0x1000000

setenv apps_name apps.jffs2
setenv apps_addr 0x1800000
setenv apps_size 0x800000

setenv loadaddr 0x12000000

setenv update_uboot  'sf probe 0 && mw.b $loadaddr 0xff $uboot_size && tftpboot $loadaddr $uboot_name && sf erase $uboot_addr $uboot_size && sf write $loadaddr $uboot_addr $uboot_size'

setenv update_fpga 'sf probe 0 && mw.b $loadaddr 0xff $fpga_size && tftpboot $loadaddr $fpga_name && sf erase $fpga_addr $fpga_size && sf write $loadaddr $fpga_addr $fpga_size'

setenv update_image 'sf probe 0 && mw.b $loadaddr 0xff $image_size && tftpboot $loadaddr $image_name && sf erase $image_addr $image_size && sf write $loadaddr $image_addr $image_size'

setenv update_apps 'sf probe 0 && mw.b $loadaddr 0xff $apps_size && tftpboot $loadaddr $apps_name && sf erase $apps_addr $apps_size && sf write $loadaddr $apps_addr $apps_size'

setenv bootargs 'mem=1024M earlycon console=ttyPS1,115200 clk_ignore_unused root=/dev/ram0 rw mtdparts=spi0.0:2M(uboot),14M(fpga),14M(image),2M(apps)'

setenv load_fpga 'sf probe 0 && sf read $loadaddr $fpga_addr $fpga_size && unzip $loadaddr $fpga_unzip_addr $fpga_unzip_size  && fpga loadb 0 $fpga_unzip_addr $fpga_unzip_size'

setenv netphy_reset 'gpio set 73 && gpio clear 73'

setenv bootcmd 'run load_fpga && sf read $loadaddr $image_addr $image_size && bootm $loadaddr'

savee

 


2. nor flash空间分布:
| 2M boot | 6M bit | 16M image | 8M apps

 

 

3. 升级方式,电脑端打开tftp32
 升级BOOT,进入uboot,输入:run update_uboot
 升级FPGA,进入uboot,输入:run update_fpga
 升级内核,进入uboot,输入:run update_image
 升级应用,进入uboot,输入:run update_apps

 


4. 后续都采用mkimage -f xxx.its image.ub方式打包好kernel+dtb+rootfs,应用单独放到apps分区内。

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值