跳转到主要内容
--## 电子创新网图库均出自电子创新网,版权归属电子创新网,欢迎其他网站、自媒体使用,使用时请注明“图片来自电子创新网图库”,不过本图库图片仅限于网络文章使用,不得用于其他用途,否则我们保留追诉侵权的权利。 ##--

本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
judy 提交于

本文中所述解决方案涉及通过 Linux 对 eMMC 进行格式化和分区以及使用 U-Boot 命令对其烧写。现已经过测试和验证,以此方式完成闪存烧写后,即可成功启动。

本文旨在探讨在 Versal 中对 eMMC 进行格式化和烧写的方法。

所涉步骤如下:
A. 通过 JTAG 启动 Linux

B. 使用 fdisk 对 eMMC 进行格式化和分区

C. 启动 U-Boot 并将启动镜像烧写到 eMMC 中

A. 通过 JTAG 启动 Linux

本节解释了如何在 Versal 器件上,为基于 Arm Cortex-A72 核的 APU 配置并构建 Linux 操作系统。其中使用带有开发板专用 BSP 的 PetaLinux 工具来配置和构建 Linux 镜像。

随后,使用 JTAG 模式将 Linux 镜像加载到开发板上。 

此流程需要一台 Linux 主机。请参阅《PetaLinux 工具文档参考指南》(UG1144),以了解有关 PetaLinux 工具的依赖关系和安装过程的信息。

  • 将对应开发板的 PetaLinux BSP 复制到当前目录。本文采用的是含 eMMC 启动模块的 VCK190,因此,BSP 为:VCK190-EMMC BSP,下载地址:https://china.xilinx.com/support/download/index.html/content/xilinx/zh/downloadNav/embedded-design-tools.html

  • 设置 PetaLinux 环境

    $ source <petalinux-tools-path>/settings.csh

  • 使用以下命令创建 PetaLinux 工程。

    $ petalinux-create -t project -s <VCK190-EMMC-BSP>.bsp -n <project_name>

  • 使用以下命令切换至 PetaLinux 工程目录。

    $cd <project_name>

  • 将从 Vivado 创建的硬件平台工程 XSA 复制到 Linux 主机,此 XSA 即已启用 eMMC 作为主启动器件的块设计 - https://xilinx.github.io/Embedded-Design-Tutorials/docs/2023.1/build/html/docs/Introduction/Versal-EDT/docs/2-cips-noc-ip-config.html#emmc-boot-mode

  • 使用以下命令重新配置 BSP。

    $ petalinux-config --get-hw-description=<截至含相应 XSA 文件的目录为止的路径>

  • 上一条命令会打开 PetaLinux 的“Configuration”(配置)窗口。对于此示例,无需在此窗口中做任何更改。

  • 单击“Save”保存以上配置,然后单击“Exit”(退出)以退出“Configuration”Wizard。

  • 使用以下命令构建 Linux 镜像:

    $petalinux-build

  • 使用以下命令构建 BOOT.BIN:

    $petalinux-package --boot --uboot

  • 使用 petalinux 命令从 Versal 工程目录创建 Tcl 脚本:

    $petalinux-boot --jtag --kernel --tcl versal.tcl


    注释:

    versal.tcl 文件包含用于选择相应目标的命令和用于将应用文件下载至 DDR 存储器中所需位置的命令。

01.jpg


  • 修改生成的 versal.tcl 文件:将 versal.tcl 中的 ramdisk.cpio.gz 重命名为 rootfs.cpio.gz.u-boot,因为本教程使用 rootfs 镜像。

遵循以下步骤启动 Linux:

  1. 取一张 VCK190,插上 eMMC 子卡,将电源和 JTAG/USB 线从开发板连接到 PC。将 VCK190 上的启动模式开关设置为 ON-ON-ON-ON JTAG 启动模式。

  2. 配置 Tera Term 串行应用,采用默认串行设置 115200,N8 并打开 Tera Term 控制台。

  3. 在 XSCT 控制台中,使用 connect 命令通过 JTAG 连接到目标:xsct% connect

  4. connect 命令会返回连接的通道 ID。

  5. 运行以下目标命令列出可用目标,并使用其 ID 选择目标:xsct% targets

  6. 由于在 JTAG 链上发现目标时会为其分配 ID,因此在不同会话之间 ID 会发生变化。

  7. 下载 A 小节中创建的 versal.tcl 文件,这样会在 VCK190 开发板的 DDR 存储器上使用以下命令加载 BOOT.BIN、rootfs.cpio.gz.uboot  boot.scr 镜像: 

    xsct% targets 1
    xsct% rst
    xsct > source versal.tcl

  8. 运行上述命令后,您可在串行控制台上看到 PLM 和 U-Boot 启动 log 日志。

  9. 继续启动 Linux。Petalinux 用户名:petalinux

  10. 随后,系统将提示您创建新密码。

B. 使用 fdisk 对 eMMC 进行格式化和分区

按如下方式对 eMMC 进行分区(mmcblk0 是本文中所用的器件,请您自行选择您适用的器件)

  • sudo fdisk /dev/mmcblk0

02.png

  • n - 创建新分区

  • p - 主分区

  • 1 - 分区编号

  • Enter - 使用默认低扇区,如有特殊需求,则更改扇区编号

  • Enter - 使用默认高扇区,如果需要,可更改扇区编号或大小(+200MB 等)

  • t - 更改分区类型

  • L - 按十六进制列示分区

  • b - 更改为类型 b (Win95 FAT32) 

  • a - 更改启动标志

  • 1 - 将分区设为可启动

  • p - 检查分区表 

  • w - 将更改写入磁盘 

  • sudo mkfs.vfat -F 32 -n BOOT /dev/mmcblk0p1 - 生成并挂载文件系统分区

03.jpg

C. 启动 U-Boot 并将启动镜像烧写到 eMMC 中

U-Boot 可用于将镜像烧写到 eMMC 中。
在本文中,启动镜像首先加载到 DDR 中,然后使用 U-Boot 中的 fatwrite 和 mmc write 命令复制到闪存中。

使用以下命令附上 A 小节中创建的 versal.tcl 以将启动二进制文件加载到 DDR 中:

after 2000
targets -set -nocase -filter {name =~ "*A72*#0"}
after 2000
puts stderr "INFO: Loading boot image: BOOT.BIN at 0x10000000"
dow -data -force "..BOOT.BIN" 0x10000000
after 2000
con

XSCT:

通过 source 命令运行该脚本,并以 JTAG 模式启动 U-Boot。

xsct % source versal.tcl

UART: 

04.jpg

在 U-Boot 提示符处,输入以下命令:

  • part list mmc 0

  • fatls mmc 0 

  • mmc dev 0 0 (选择分区 1,在此例中该分区使用 FAT 格式)

  • fatwrite mmc 0 10000000 BOOT.BIN <十六进制大小>(将启动镜像从 DDR 加载到 FAT 分区)

至此,启动镜像已准备就绪,可通过 eMMC 启动。将启动模式更改为 eMMC 时,请下电,然后重新上电,这样即可成功启动

产品与工具

ACAP

ACAP(Adaptive Compute Acceleration Platform)是赛灵思(Xilinx)公司提出的概念,表示一种自适应计算加速平台。ACAP 是在 FPGA(可编程门阵列)的基础上演进而来的,结合了 FPGA 的灵活性和可编程性以及 ASIC(专用集成电路)的性能和效率。

ACAP 旨在应对多样化、动态性和高度定制化的计算需求。与传统的 FPGA 不同,ACAP 具有更高级别的自适应性,能够在运行时重新配置其硬件架构,以适应不同的工作负载。这种动态适应性使得 ACAP 在处理各种任务时能够更加高效地利用硬件资源。

精彩推荐

2026英伟达GTC大会专题

CES 2026(国际消费类电子产品展览会)专题

第四届南渡江智慧医疗与康复产业高峰论坛

第十五届松山湖中国IC创新高峰论坛

第四届滴水湖中国RISC-V产业论坛

Recent comments

  • 1873774516_516738
  • 2460440665_516737
  • 1457585548_516736
  • 780289498_516735
  • 2283262460_516734