Zynq 从 QSPI 启动 、从 TFTP 下载内核、NFS 挂载根文件系统

以前只会使用 SD 卡方式启动开发板:
搭建驱动开发使用的 ZYNQ 镜像

新的项目开发板没有 SD 卡,也没有办法直接将 BOOT.BIN 、 zImage 、 boot.scr 等文件直接存入 eMMC
就学习了从 QSPI Flash 加载 U-Boot,再使用 TFTP 和 NFS 启动 Linux 操作系统

U-Boot

制作 BOOT.BIN

配置 U-Boot

petalinux-config -c u-boot
在这里插入图片描述

生成 BOOT.BIN

petalinux-package --boot --fsbl --u-boot --dtb no --force
这个 BOOT.BIN 中只包含了 fsbl 和 u-boot

烧录到 FLASH

切换至 JTAG 模式
使用 Vitis Program Flash 进行烧录操作
在这里插入图片描述
在这里插入图片描述
切换至 QSPI 模式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
U-Boot 启动成功

参考资料

petalinux配置qspi启动(2022.1版本)

TFTP

安装 TFTP 服务器

1、安装 tftp-hpa、tftpd-hpa、xinetd

sudo apt-get install tftp-hpa tftpd-hpa xinetd

2、修改配置文件

vim /etc/default/tftpd-hpa
我只修改了文件存放的目录
文件存放的目录默认是 /var/lib/tftpboot
在这里插入图片描述

加载内核镜像和设备树文件到内存

参考资料

uBoot使用tftp的方式加载Linux内核文件
tftp服务配置的详细过程,简单快速

NFS

在 U-Boot 模式下
设置环境变量 bootargs ,让内核通过 NFS 方式从 Ubuntu 主机中挂载根文件系统
setenv bootargs 'console=ttyPS0,115200 root=/dev/nfs rw nfsroot=192.168.1.213:/home/yz/nfs/rootfs,nfsvers=3 ip=192.168.1.54:192.168.1.213:192.168.1.1:255.255.255.0::eth0:off'

开启 NFS 服务及配置部分可以参照我以前的博客:NFS 挂载根文件并启动开发板

使用 U-Boot 从内存加载并引导 Linux 内核

1、准备工作

设置 TFTP 服务器 IP 地址
setenv serverip 192.168.1.213

在 TFTP 服务器中准备好 zImage 和 设备树文件
在这里插入图片描述

2、加载内核镜像和设备树文件到内存

内存布局规划

初始内存地址为 0x2000000

  1. system.dtb:
  • 地址:0x2000000
  • 大小:13KB(0x2000000 ~ 0x2003400)
  1. zImage:
  • 地址:0x2003400
  • 大小:4091KB(0x2003400 ~ 0x204D400)

加载内核镜像和设备树文件到内存

tftpboot 0x2000000 system.dtb
tftpboot 0x2003400 zImage

3、启动内核

在 U-Boot 命令行中使用 bootz 命令启动内核
bootz 命令的格式为:
bootz <kernel_addr> [<initrd_addr> [<fdt_addr>]]

对于本项目:

  1. kernel_addr:0x2003400(内核镜像地址)
  2. fdt_addr:0x2000000(设备树文件地址)
  3. initrd_addr:如果没有初始内存盘,则为 -

U-Boot 命令为
bootz 0x2003400 - 0x2000000

成功启动 Linux

参考资料

Linux系统——通过tftp下载zImage和nfs网络方式挂载根文件系统

u-boot设置tftp启动内核和nfs根文件系统

Linux嵌入式uboot使用tftp网络启动加载zImage、dtb到内存,文件系统本地启动

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值