Zynq系列--Uboot移植

zynq-7000系列基于zynq-zed的uboot的编译

目的:编译uboot,下载,并实现ping功能

1.下载uboot
https://github.com/HongyunChen/u-boot-xlnx-xilinx-v2018.3
(内有我的配置好的文件以及设备树)本文选择的是18版本,如需其他版本可以官网下载。
2.修改uboot
解压后,在u-boot-xlnx-xilinx-v2018.3目录下,导入配置:(我使用的编译链是arm-linux-gnueabihf-gcc)

make CROSS_COMPILE=arm-linux-gnueabihf- zynq_zed_defconfig

配置:

make CROSS_COMPILE=arm-linux-gnueabihf- menuconfig

在menuconfig中去掉有关mmc和spi flash有关配置:

- SPL / TPL  --->
	- MMC raw mode: by sector
    	- Support MMC  
    	- Support SPI flash drivers  
    	- Support SPI drivers
  
- Command line interface  --->  
	- Device access commands  --->
		- mmc

- Device Drivers  --->
	- Support block devices
	- DFU support  --->  
		- MMC back end for DFU
	- MMC Host controller Support  --->
		- MMC/SD/SDIO card support  
		- Enable MMC controllers using Driver Model
	- SPI Flash Support  --->
		- Legacy SPI Flash Interface support
	- SPI Support  --->  
		- Zynq QSPI driver  

打开nand有关选项:

Command line interface  --->
    Device access commands  --->
        nand  
Device Drivers  --->
    NAND Device Support  --->
        Support for Zynq Nand controller (NEW)
Environment  --->  
    Environment in a NAND device 

修改设备树:串口号 和DDR
在arch/arm/dts目录下

vim zynq-zed.dts

我使用的是串口0:使用串口0

在这里插入图片描述
我的DDR为1G:
在这里插入图片描述

设置默认环境变量:

vim include/configs/zynq-common.h

在#define CONFIG_EXTRA_ENV_SETTINGS 宏中添加

"ipaddr=192.168.1.37\0"\
"gatewayip=192.168.1.1\0"\
"netmask=255.255.255.0\0"\
"serverip=192.168.1.122\0"\

修改环境变量保存偏移地址:

nand地址规划:

name addr
bootloader 0x00000000-0x00600000
kernel 0x00600000-0x00a00000
tree 0x00a00000-0x00a20000
rootfs 0x00a20000-0x02320000
env 0x0d400000-0x0d420000

修改环境变量保存偏移地址:

define CONFIG_ENV_OFFSET 0x0d400000

3.编译uboot:

make CROSS_COMPILE=arm-linux-gnueabihf- -j4

4.烧写

5.启动:

打开串口,重启开发板。在启动界面ping主机,显示如下信息即代表完成:
host 192.168.1.122 is alive

你可能感兴趣的:(zynq)