我有一个 FPGA 卡连接到 Linux 系统上的 PCIe。我可以对 FPGA 重新编程,然后echo 1 > /sys/bus/pci/rescan
我的卡就会出现在lspci
.
但是 BAR 区域没有分配任何内存:
Region 0: Memory at <unassigned> (64-bit, prefetchable) [disabled] [size=32M]
Region 2: Memory at <unassigned> (64-bit, prefetchable) [disabled] [size=64M]
我pci=
在 Linux 启动命令行上尝试了各种标志,但效果不大。
我怀疑 BAR 区域太大,因此 Linux 无法在地址空间中找到适当对齐的范围来映射 BAR,因为它们在启动时不存在。
这是一个正确的理论吗?是否可以告诉 Linux 为我的设备保留空间?