基于Versal的QSPI Flash引导启动Petalinux

关注、星标公众号,精彩内容每日送达
来源:网络素材

作者:Albert Wei,文章来源:FPGA FAE技术分享选集

QSPI(Quad Serial Peripheral Interface)是一种基于 SPI(串行外设接口)的高速数据通信协议.它的全称是Quad SPI,即四路串行外设接口。QSPI通常用于与外部存储设备(如NOR Flash或NAND Flash)进行高速数据传输,并具备以下几个特点:

1.高速启动

QSPI通过四条数据线并行传输数据,数据吞吐量比传统SPI高4倍,适合快速加载大块数据(如固件\操作系统镜像)。例如,ZYNQ\MPSOC\VERSAL等SoC(系统级芯片)可通过QSPI Flash在系统上电时直接加载FSBL\PLM(第一阶段引导程序),显著缩短启动时间。 ‌

2.可靠性高

QSPI Flash属于非易失性存储器,断电后数据不会丢失,适合存储系统参数、校准数据等需要长期保留的信息。其写入寿命(通常10万次擦写)优于传统NAND Flash,适合高频写入场景。 

3.接口灵活

QSPI仅需4个引脚(时钟线\片选线\四条数据线),引脚占用少,适合空间受限的嵌入式设备。

4.动态重构能力

在ZYNQ\MPSOC\VERSAL等可编程逻辑设备中,QSPI支持运行时加载不同配置文件(如PL比特流),实现动态重构逻辑功能,适用于需要灵活配置的工业控制系统。 ‌

5.兼容性强

QSPI协议与SPI兼容,可无缝迁移至支持传统SPI的设备。

硬件环境

本文基本AMD Versal系统的评估套件VCK190进行开发部署,VCK190 是首款 Versal™ AI Core系列评估套件,可帮助设计者使用AI和DSP引擎开发解决方案,与当前服务器级CPU相比,这些引擎能够提供超过100倍的计算性能。凭借各种连接选项和标准化的开发流程,Versal AI Core系列VC1902自适应SoC为云、网络和边缘应用提供出色的AI推理和信号处理吞吐量。

由于VCK190主板并没有QSPI器件,所以需要额外连接套件中的X-EBM-01小板进行QSPI启动引导。其中X-EBM-01小板中使用了两片1Gb MT25QU01GBBB8E12-0SIT的QSPI芯片。

QSPI Flash分区

1. boot分区存放BOOT.BIN,大小根据BOOT.BIN大小进行分配;

2. bootenv分区存放启动环境变量,一般256K左右足够使用;

3. kernel分区image.ub内核、文件系统文件,大小根据image.ub大小进行分配;

4. bootscr分区放启动脚本,一般64K左右足够使用。

Linux QSPI驱动

从petalinux2023.2开始,QSPI的驱动使用parallel-memories和stacked-memories属性来代替原来的is-dual和num-cs来控制QSPI Flash的数量及模式,具体的system-user.dtsi的配置参考如下:

Petalinux配置

1.使用petalinux-config进行配置,在petalinux-config->Subsystem Hardware Settings->Flash Settings位置进行分区配置,具体大小和偏移可以参考上图;

2.petalinux-config->Image Packaging Configuration->Root filesystem type进行文件系统类型选择,这里使用INITRD类型;

3.在petalinux-config->u-boot Configuration → u-boot script configuration 中的QSPI\OSPI和JTAG配置启动脚本中的偏移位置,这个需要和分区对应起来;

4.在u-boot的配置中配置BootSrc的起始位置,命令是petalinux-config -c u-boot;

编译打包

$petalinux-build

$petalinux-package boot --plm --psmfw --u-boot --dtb --kernel –force

烧录

使用vitis,在菜单中选择[Vitis]→[Program Flash],将boot.pdi替换成petalinux工程目录下的image/linux/BOOT.BIN

启动

根据UG1366将VCK190配置成QSPI32启动方式进行启动,具体如下:

基于上述步骤可以完成Versal的QSPI Flash引导启动Petalinux。

如果您了解更多关于AMD器件在QSPI Flash引导Petalinux的应用,欢迎联系:

simonyang@comtech.cn

charlesxu@comtech.cn

(全文完)

声明:我们尊重原创,也注重分享;文字、图片版权归原作者所有。转载目的在于分享更多信息,不代表本号立场,如有侵犯您的权益请及时联系,我们将第一时间删除,谢谢!

图片

想要了解FPGA吗?这里有实例分享,ZYNQ设计,关注我们的公众号,探索

<think>好的,我现在需要处理用户关于VersalPetaLinux的配置和集成的问题。首先,我得确认用户的具体需求是什么。他们可能是在使用AMD/Xilinx的Versal ACAP平台,想要通过PetaLinux进行系统配置,比如内核、设备树或者应用集成。用户提到了引用中的内容,比如保存内核和uboot源码、环境配置脚本、GPIO绑定等,这些都是PetaLinux开发中的常见步骤。 接下来,我应该回顾用户提供的引用内容。引用[1]提到修改petalinux-config配置来保存内核和uboot源码,引用[2]是环境配置的source命令,引用[3]涉及设备树中GPIO的设置。这说明用户可能在进行硬件相关的配置,比如设备树中的GPIO控制,以及PetaLinux工程的基本设置。 用户的问题是关于VersalPetaLinux的配置或集成方法,因此我需要分步骤说明如何创建一个PetaLinux项目,配置内核、设备树,集成自定义硬件模块,以及构建和部署镜像。同时,需要结合用户提供的引用内容,例如在配置设备树时引用GPIO设置的例子,或者环境配置时引用source命令。 另外,用户可能遇到的常见问题包括环境变量设置不正确、设备树配置错误导致外设无法工作,或者构建过程中依赖项缺失。这些问题需要在回答中提及,并提供解决方法,例如检查settings.sh是否正确source,或者检查GPIO引脚号和状态是否匹配硬件设计。 最后,生成的相关问题需要围绕VersalPetaLinux的进一步应用,比如启动流程优化、设备树调试工具、安全配置等,这些都是用户在完成基础配置后可能感兴趣的进阶话题。</think>[用户可见层] ### VersalPetaLinux配置及集成方法 #### 1. **环境配置** 首先需设置PetaLinux开发环境。在终端中执行: ```bash source /opt/petalinux/2024.2/settings.sh # 引用环境变量[^2] ``` 此步骤确保后续命令(如`petalinux-create`)可用。 #### 2. **创建PetaLinux工程** ```bash petalinux-create -t project --template versal --name <工程名> cd <工程目录> ``` 选择Versal模板会自动适配ACAP架构特性,如AI Engine集成。 #### 3. **内核与设备树配置** - **修改内核配置**: ```bash petalinux-config --get-hw-description=<硬件描述文件路径> # 关联硬件设计[^1] ``` 在此界面可配置内核模块、启动参数等。 - **设备树GPIO绑定示例**: ```dts leds { compatible = "gpio-leds"; led0 { label = "sys_led"; gpios = <&gpio1 50 1>; // 引用GPIO1第50引脚,高电平有效[^3] default-state = "on"; }; }; ``` 此配置需与硬件设计中的GPIO端口号严格对应。 #### 4. **集成自定义模块** - 添加用户应用: ```bash petalinux-create -t apps --name <应用名> --enable ``` 在`project-spec/meta-user/recipes-apps`中编辑源码和Makefile。 #### 5. **构建与部署** ```bash petalinux-build petalinux-package --boot --u-boot --fpga --pmufw ``` 生成的`BOOT.BIN`和`image.ub`需放置于启动介质(如SD卡)。 #### 常见问题排查 - **环境失效**:每次新终端需重新执行`source settings.sh` - **GPIO不生效**:检查设备树中引脚编号与硬件原理图是否一致 - **启动失败**:确认`--get-hw-description`加载的.xsa文件包含最新硬件配置
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值