“PF BARs”选项卡(如下图所示)可用于为端点配置设置基址寄存器空间。每个 BAR(0 到 5)均可用于配置物理功能的“BAR Aperture Size”(BAR 间隙大小)和“Control”(控制)属性。
图 1. 仅显示 PF0 和 PF1 的“PF BARs”选项卡
- “Base Address Register Overview”(基址寄存器概述)
- 在端点配置中,核支持最多 6 个 32 位 BAR 或 3 个 64 位 BAR 以及扩展只读存储器 (ROM) BAR。在根端口配置中,核支持最多 2 个 32 位 BAR 或 1 个 64 位 BAR 以及扩展 ROM BAR。BAR 分 2 种大小:
- 32 位 BAR
- 地址空间最小可达 128 字节或者最大可达 2 千兆字节 (GB)。用于存储器或 I/O。
- 64 位 BAR
- 地址空间最小可达 128 字节或者最大可达 8 艾字节 (EB)。仅用于存储器。
所有 BAR 寄存器共享下列选项:
- “Checkbox”(复选框)
- 单击复选框可启用 BAR;取消选择复选框可禁用 BAR。
- “Type”(类型)
- BAR 可分为 I/O 和存储器。
- I/O
- I/O BAR 只能采用 32 位;“Prefetchable”(可预取)选项不适用于 I/O BAR。仅限针对传统 PCI Express 端点才能启用 I/O BAR。
- “Memory”(存储器)
- 存储器 BAR 可采用 64 位或 32 位,并且可预取。当 BAR 设为 64 位时,它使用下一个 BAR 作为扩展地址空间,并使下一个 BAR 不可访问。
- “Size”(大小)
- 可用大小范围取决于所选 PCIe 器件/端口类型和 BAR 类型。下表列出了可用 BAR 大小范围。
表 1. 器件配置的 BAR 大小范围 PCIe 器件/端口类型 BAR 类型 BAR 大小范围 PCI Express 端点 32 位存储器 128 字节 (B) - 2 GB 64 位存储器 128 B - 8 EB 传统 PCI Express 端点 32 位存储器 128 B - 2 GB 64 位存储器 128 B - 8 EB I/O 16 B - 2 GB - “Prefetchable”(可预取)
- 识别存储器空间预取功能。
- “Value”(值)
- 表示基于当前选择分配给 BAR 的值。
- “Expansion ROM Base Address Register”(扩展 ROM 基址寄存器)
- 如果选中此项,则可激活扩展 ROM 并将其大小从 2 KB 调整为 4 GB。根据 PCI-SIG 网站上的《PCI 局部总线规范第 3.0 版》,扩展 ROM BAR 的最大大小应不超过 16 MB。选中大小超过 16 MB 的地址空间可能导致合规性测试出现问题。
- “Managing Base Address Register Settings”(管理基址寄存器设置)
- 存储器、I/O、类型和可预取设置均可通过为目标基址寄存器设置相应的设置来进行处理。
存储器或 I/O 设置用于指示地址空间定义为存储器还是 I/O。基址寄存器仅响应访问指定地址空间的命令。通常,应避免使用大小小于 4 KB 的存储器空间。允许的最小 I/O 空间为 16 字节;在所有新设计中应避免使用 I/O 空间。
可预取功能是对存储器空间进行预取的功能。只要对于读取没有副作用(即,读取数据不会像从 RAM 读取一样导致数据销毁),即表示存储器空间可预取。在适当情况下,多个字节写入操作可合并为单一双字写入操作。
针对非传统 PCIe 将核配置为端点时,已设置可预取位的所有 BAR(BAR5 除外)都必须支持 64 位寻址。针对未设置可预取位的所有 BAR,则允许 32 位寻址。可预取位相关的要求不适用于传统端点。BAR 支持的最小存储器地址范围为 128 字节(针对 PCI Express 端点)和 16 字节(针对传统 PCI Express 端点)。
- “Disabling Unused Resources”(禁用未使用的资源)
- 为实现最佳结果,请禁用未使用的基址,以节省系统资源。通过在“Customize IP”(自定义 IP)对话框中取消选中未使用的 BAR 即可禁用基址寄存器。
- “Copy PF0”(复制 PF0)
- 设置“Copy PF0”选项后,即可允许您将剩余 PF 的所有 BAR 设置都设为与 PF0 相同的值。如有多个物理功能 (PF),则适用该选项。