Zynq 7015 linux跑起来之导入u-boot移植

 Zynq 7015 linux跑起来之导入u-boot移植

获得u-boot源码 https://github.com/xilinx/u-boot-xlnx

我直接使用git clone来获取

新建一个用于存放u-boot的目录 git clone https://github.com/Xilinx/u-boot-xlnx.git 然后就开始下载了。

解压成功,进入到uboot源码。

source /opt/Xilinx/SDK/2015.4/settings64.sh 这里执行这一步是为了使用SDK中的交叉编译工具。

arm-xilinx-linux-gnueabi-gcc -v 查看版本号,如果可以正常显示,那么就可以用,如果不能正常显示,还可能需要手动添加环境变量,相当于是当source /opt/Xilinx/SDK/2015.4/settings64.sh这条指令没有生效时,可以export PATH=http://xilinx.eetrend.com/opt/Xilinx/SDK/2015.4/gnu/arm/lin/bin:$PATH.那么设置都已完成,先试一下编译是否可以通过。

make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- zynq_picozed_defconfig

 Zynq 7015 linux跑起来之导入u-boot移植

配置成功,开始编译
make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi-

 Zynq 7015 linux跑起来之导入u-boot移植

报错,提示dtc没有找到,dtc是devcie tree compiler
sudo apt-get install device-tree-compiler然后再重新编译就可以了。

 Zynq 7015 linux跑起来之导入u-boot移植

编译成功,然而这并没有什么用,为什么呢,让我细细道来。因为这个版本的uboot和新版本的内核一样,驱动的加载使用的是devcie tree,我们进到相关目录打开picozed的来看看。

先看zynq_piczed_defconfig 在configs目录下面。

 Zynq 7015 linux跑起来之导入u-boot移植

进入到u-boot-xlnx-master/arch/arm/dts打开zynq-picozed.dts
/*
* Avnet PicoZed board DTS
*
* Copyright (C) 2015 Xilinx, Inc.
*
* SPDX-License-Identifier: GPL-2.0+
*/
/dts-v1/;
#include "zynq-7000.dtsi"

/ {
model = "Zynq PicoZed Board";
compatible = "xlnx,zynq-picozed", "xlnx,zynq-7000";

aliases {
serial0 = &uart1;
};

memory {
device_type = "memory";
reg = <0 0x40000000>;
};
};

&uart1 {
u-boot,dm-pre-reloc;
status = "okay";
};

从上面看,就初始了DDR还有一个串口,这明显没什么用嘛。怎么办,机智如我,直接从其他地方借一些东西来用用。来看看zed board的
/*
* Xilinx ZED board DTS
*
* Copyright (C) 2011 - 2015 Xilinx
* Copyright (C) 2012 National Instruments Corp.
*
* SPDX-License-Identifier: GPL-2.0+
*/
/dts-v1/;
#include "zynq-7000.dtsi"

/ {
model = "Zynq Zed Development Board";
compatible = "xlnx,zynq-zed", "xlnx,zynq-7000";

aliases {
ethernet0 = &gem0;
serial0 = &uart1;
spi0 = &qspi;
mmc0 = &sdhci0;
};

memory {
device_type = "memory";
reg = <0x0 0x20000000>;
};

chosen {
bootargs = ""; //这里的也可以从另一个地方传递进来,这里面的是从include/configs/zynq-common.h里面传的。所以我们这里先不管,当然也可以设置从这里传进去参数。

stdout-path = "serial0:115200n8";
};

usb_phy0: phy0 {
compatible = "usb-nop-xceiv";
#phy-cells = <0>;
};
};

&clkc {
ps-clk-frequency = <33333333>;
};

&gem0 {
status = "okay";
phy-mode = "rgmii-id";
phy-handle = <ðernet_phy>;

ethernet_phy: ethernet-phy@0 {
reg = <0>;
};
};

&qspi {
u-boot,dm-pre-reloc;
status = "okay";
is-dual = <0>;
num-cs = <1>;
flash@0 {
compatible = "n25q128a11";
reg = <0x0>;
spi-tx-bus-width = <1>;
spi-rx-bus-width = <4>;
spi-max-frequency = <50000000>;
#address-cells = <1>;
#size-cells = <1>;
partition@qspi-fsbl-uboot {
label = "qspi-fsbl-uboot";
reg = <0x0 0x100000>;
};
partition@qspi-linux {
label = "qspi-linux";
reg = <0x100000 0x500000>;
};
partition@qspi-device-tree {
label = "qspi-device-tree";
reg = <0x600000 0x20000>;
};
partition@qspi-rootfs {
label = "qspi-rootfs";
reg = <0x620000 0x5E0000>;
};
partition@qspi-bitstream {
label = "qspi-bitstream";
reg = <0xC00000 0x400000>;
};
};
};

&sdhci0 {
u-boot,dm-pre-reloc;
status = "okay";
};

&uart1 {
u-boot,dm-pre-reloc;
status = "okay";
};

&usb0 {
status = "okay";
dr_mode = "host";
usb-phy = <&usb_phy0>;
};

用户喜欢...

让你生活更简单的几个不常用的Linux命令

作为一个软件工程师,学习Linux是我做过的最好的时间投资。因为它是一个用户必须理解和维护的系统,每天的使用经验就像在水坑中添加一滴水一样。很长时间以后,水坑就变成了湖泊,甚至...


2017年即将过去,Linux 又有什么问题出现了呢?

到目前为止,糟糕的文档是Linux用户最头痛的问题。这里还有一些其他常见的问题。 正常情况下 Linux 都能正确安装并运行,但是有些人则并不那么幸运。2017年即将过去,Linux 又有什么问题出现...


Linux常用指令及操作

Linux 常用指令 使用命令man+【具体指令名称】可以查看该指令的详细使用方式 Ubuntu用户首次设置root用户密码: 在终端输入命令 sudo passwd,输入当前用户的密码然后回车进行设置 ls 显示文件或...


RohdeSchwarz便携式4.0GHz的频谱分析仪里面的Zynq AP SoC

背景: 无论是在实验室调试嵌入式设备,还是在外场解决复杂的问题,都需要一款便携式的频谱分析仪,在要求有高性能和较宽的测试范围的同时,我们还希望这个仪器有着较小的功耗,这...


Aldec的边缘计算示例: Zynq SoC 的 FPGA架构将嵌入式视觉/ ADAS性能提升了10倍

Aldec的一个应用工程师 Farhad Fallah 在 New Electronics 网站上发表的一篇题​​为生活在边缘的文章最近引起了我的注意,因为它简洁地描述了为什么 FPGA 对于许多高性能的边缘计算应用如此有用...


英国伯明翰大学团队使用Theano,Python,PYNQ和Zynq开发定点Deep Recurrent神经网络

可编程逻辑(PLD)是由一种通用的集成电路产生的,逻辑功能按照用户对器件编程来确定,用户可以自行编程把数字系统集成在PLD中。经过多年的发展,可编程逻辑器件由70年代的可编程逻辑阵...


Zynq 7015 linux跑起来之导入SDK生成FSBL

上一节相当于成功生成了PS部分,这一部分利用上一步生成的文件来导入到SDK中。 在vivado中点File->Export Hardware我这里把Include bitstream给勾上了。 然后File->Launch SDK 点OK,稍等一下,就会跳出SDK,...


揭示 Aaware Zynq 加速的远程声音捕捉平台背后的秘密

高性能的语音控制系统在智能家具和机器人的发展过程中显得越来越重要。语音控制系统的信号采集端使用麦克风阵列会得到更丰富的声音信号,为声音定位提供了可能,处理语音的硬件的性...


Amazon Alexa和Google Home语言系统的前驱服务者:13个MEMS 麦克风+Zynq SoC

背景: 说到语音识别,吸引的大家关注的有两大主力:亚马逊的Alexa和Google伴的Home。首先说说Alexa,随着智能家居Echo受到热捧,亚马逊的语音私人助手Alexa持续受到消费者关注。Alexa能围绕着...


25G 互连演示:Kintex、Virtex 和 Zynq UltraScale+ 器件

面向专业音视频及广播的突破性收发器技术 视频质量从 1080p 到 4K60 的提升以及通过标准以太网进行 IP 视频传输(25G、40G 和 100G)的日益增多,为广播及专业音视频终端及基础设施带来了短期...


小板子大智谋——Aldec公司的TySOM-3-ZUEV囊括了Zynq UltraScale+ MPSoC,DDR4 SoDIMM,WiFi,Bluetooth,HDMI,FMC等等单元于一身

背景: 你需要将大量的嵌入式资源放到一个很小的空间里面么?如果需要,那么你不妨看一下Aldec TySOM-3-ZU7EV这款嵌入式的业界新宠,它将Xilinx Zynq UltraScale+ ZU7EV MPSoC以及DDR4 SoDIMM,WiFi,蓝牙...


Xilinx Zynq开发--修改官方的根文件系统

#前段时间在做zynq702评估的时候,提出了一种省事的制作和修改根文件系统的方法: #用dd命令将官方uramdisk----->ramdisk #或者直接用官方的ramdisk ,解压后得到ramdisk.image #1.将ramdisk 挂载到/mnt下...


Xilinx Vivado Zynq Pldma APB控制线调试

在xilinx vivado zynq pldma PL部分ILA调试中,观测APB总线上的数据是正常的,但PLDMA没有成功,分析代码发现在HP_DMA模块中使用m_apb_pclk与m_apb_presetn为悬空状态。由于Avnet的例程建立在2014年,所以使...


Zynq VDMA 自测

首先,建立Zedboard的工程,创建如下Block Design: VDMA设置一下读写通道,AXI-lite和MM2S 的时钟都采用同一个。 Processing 配置按图中所示,包含HP口。 添加ILA进行数据流入和数据流出测试。 运行工...


Xilinx petalinux2015.4安装流程

一直以来在Xilinx Zynq上进行Linux开发使用的是Digilent提供的linux源码,而近来发现petalinux也成为免费软件了,官网描述如下 “The PetaLinux Tools License is no longer required. Users can install and use PetaLinux...


Zynq学习笔记——HLS FAST corner导出keypoints(二)

PC平台:WINDOWS 10 64位 Xilinx设计开发套件:Xilinx_vivado_sdk_2015.4 开发板:ZedBoard 摄像头:OV5640 上一步导出HLS IP后,修改原来的硬件工程,其实升级一下hls_fast_corner IP就可以了,我这次用的不是...