宏远天翔 Wiki

A7-3588 · 异构开发

PCIe 接口

接口用途

A7-3588 提供 1 个 M.2 PCIe 2.0 接口,以及 1 路连接 FPGA 的 PCIe 3.0 ×4 链路。两者承担不同的外设连接任务,系统调试时应分别识别对应的 PCIe 设备。RK3588 在 FPGA 链路中作为主机侧,负责设备枚举、资源分配和驱动管理。

M.2 接口用于连接兼容的 PCIe 外设;FPGA 链路用于 RK3588 与 FPGA 之间的控制和数据交换,业务功能由配套 FPGA 工程、内核驱动和应用程序共同实现。

查看设备与驱动

lspci -nn

输出中的方括号显示厂商 ID 和设备 ID。记录目标设备的 BDF 地址后:

lspci -nnk -s BDF
lspci -vv -s BDF

Kernel driver in use 显示当前绑定的内核驱动;详细输出中的 LnkCap 描述链路能力,LnkSta 显示当前协商的速率和宽度。FPGA 链路按 PCIe 3.0 ×4 连接,验收时应记录实际协商结果。

BAR 与中断

BAR 描述设备向主机提供的地址资源,由系统枚举分配,并由驱动申请和映射。各区域的用途和访问规则由 FPGA 工程定义。驱动还需按照设备支持的中断方式注册处理函数。应用程序通过配套驱动接口访问业务功能。

排查顺序

首先检查外设供电、连接状态及 FPGA 工程加载,再检查启动日志中的 PCIe 控制器初始化和链路建立过程。随后确认 lspci 能枚举到目标 ID,检查链路速率、宽度及驱动绑定情况。设备已识别但业务失败时,继续检查 BAR 资源、中断计数和驱动日志,最后核对应用与 FPGA 的协议版本。