ZYNQ板卡FLASH+EMMC启动Linux步骤说明

一、从网络启动Linux

1.vivado工程导出hdf文件,拷贝到ubuntu目录如:/home/yi/hdf/M7030(hdf文件路径),根据自己的ubuntu用户目录建立一个保存hdf的文件夹。

2.petalinux创建工程

设置petalinux环境变量:source /home/yi/petalinux/v2018.3/settings.sh,或者把这个命令加到用户目录下的.bashrc文件里了,每次打开终端时会自动运行。

新建petalinux工程:

petalinux-create -t project --template zynq -n m30bit

3.petalinux硬件配置

petalinux-config --get-hw-description /home/yi/hdf/M7030

因为要从QSPI Flash启动系统,所以需要把BOOT.BIN放到QSPI Flash里。把Subsystem AUTO Hardware Settings → Advanced bootable images storage Settings boot image settings的image storage media改成primary flash。

Linux内核和根文件系统要放在eMMC里,默认kernel image setting存储在primary sdprimary sd就是SD0,我的板卡的eMMC接在ZYNQ的SD0接口上,不用修改。

Image Packaging Configuration Root filesystem type根文件系统类型配置成INITRAMFS,因为后面需要先从内存启动Linux系统。

板卡调试串口为UART0,Subsystem AUTO Hardware Settings → Serial Settings修改为UART0(默认UART1)。

因BOOT.BIN文件较大运行板卡设置IP地址环境变量后,保存环境变量重启无法再次进入u-boot,所以把板卡IP和TFTP服务器IP都设置成静态地址。Subsystem AUTO Hardware Settings → Ethernet Settings → Obtain IP address automatically取消自动获取地址选择,根据自己需要设置板卡IP地址(默认是192.168.0.10)。

u-boot Configuration → TFTP Server IP address修改AUTO为静态地址。netboot offset默认是0x10000000,这就是tftpboot image.ub加载到内存的地址。

4.petalinux内核配置

petalinux-config -c kernel

配置Linux内核,默认无修改。

5.petalinux根文件系统配置

petalinux-config -c rootfs

eMMC分区操作需要用到fdisk、mkfs、mount、umount,Filesystem Packages  → base  → util-linux 使能相应命令。

需要新增mkfs.ext4命令,后续用于格式化eMMC分区操作。Filesystem Packages→base→e2fsprogs的e2fsprogs和e2fsprogs-mke2fs使能。

配置NFS支持客户端,Filesystem Packages  → console  → network  → nfs-utils 使能相应命令。NFS客户端开启可解决mount NFS共享文件夹时的报错如下图,/mnt:bad option;for several filesystems(e.d.nfs,cifs)you might need a /sbin/mount.

6.petalinux编译

petalinux-build

在ubuntu安装配置好tftp服务器和NFS服务,编译完成会自动将镜像文件复制到根目录tftpboot文件夹。

7.petalinux打包镜像

petalinux-package --boot --fsbl --fpga --u-boot --force

打包生成BOOT.BIN和image.ub。

8.下载BOOT.BIN到板卡Flash

9.启动u-boot

测试板卡与服务器网络联通。

10.Tftp启动Linux

tftpboot image.ub,将内核文件image.ub通过tftp加载到内存。

bootm 10000000,从内存启动Linux系统。

  • 9
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Zynq是一款由Xilinx生产的高性能可编程SoC芯片,在其内部集成了ARM处理器和可编程逻辑单元。而eMMC(嵌入式多媒体卡)是一种常见的闪存存储解决方案,用于存储操作系统、应用程序以及数据。 Zynq可以通过eMMC启动,具体的步骤如下: 1. 配置引导模式:首先,需要在Zynq芯片的引导模式寄存器中配置从eMMC启动。这可以通过编程控制引脚或者采用硬件开关实现。 2. 烧录引导加载器:接下来,将引导加载器(bootloader)烧录到eMMC存储器中。引导加载器是一个小型的程序,负责初始化系统,并加载操作系统。 3. 配置引导加载器:在eMMC存储器中的引导加载器中,需要配置引导方式为从eMMC启动。这通常需要修改引导加载器的配置文件,以确保从eMMC正确加载操作系统。 4. 烧录操作系统:接下来,将操作系统映像文件烧录到eMMC存储器中。操作系统可以是Linux、Android等。 5. 引导启动:将Zynq芯片连接到适当的启动设备(如电源),按下重启按键或提供复位脉冲,Zynq芯片将引导加载器从eMMC存储器中加载到内存中,并执行它们。 6. 操作系统启动:一旦引导加载器被加载到内存中并执行,它们将负责初始化系统环境并加载操作系统。最终,操作系统将被成功加载和启动。 总的来说,Zynq通过设置引导模式、烧录引导加载器和操作系统,并进行正确的引导配置,可以从eMMC存储器中成功启动。这种启动方式使得Zynq能够快速、高效地运行各种应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值