PCIE Resizable BAR

1. 什么是Resizable BAR

Resizable BAR特性在PCIe规范中定义.仅可以通过本地DBI在控制寄存器中更改“Supported Resource Sizes”字段

Resizable BAR Capability是一个可选的功能,它允许硬件传递资源大小,系统软件在确定最佳大小后,将最佳大小传递回硬件。硬件通过 Resizable BAR Capability and Control registers来传达可接受的操作资源大小。硬件必须支持1mb ~ 512gb之间的至少一个大小。

软件通过一种专有的机制来决定资源的最佳大小,程序通过Resizable BAR Control寄存器的BAR size字段来调整大小。

IMPLEMENTATION NOTE

分配资源的系统软件可以使用这个功能来调整BAR资源的大小。该软件以前的版本通过将FFFFh写入BAR,读取值,并根据Set的位数确定资源的大小,然后,将基址被写入BAR。
系统软件在将基地地址分配给BAR之前使用这种方法来代替上面提到的确定资源大小的方法,潜在的可用资源大小由函数通过Resizable BAR Capability and Control registers报告。这样做的目的是让软件能够分配最大的大小,因为分配的地址空间小于报告的最大大小会导致较低的性能。然后,软件将该大小写入到Resizable BAR Control register中。然后,将基址被写入BAR。

2. Resizable BAR capability

在这里插入图片描述

2.1 Resizable BAR Extended Capability Header (Offset 00h)

在这里插入图片描述
PCI Express Extended Capability ID: 记录Resizable BAR Extended capability的ID号,固定为0x15

Capability Version: PCI-SIG定义的版本号,表示当前能力结构的版本

Next Capability Offset: 指向下一个新的增强Capability寄存器的地址

2.2 Resizable BAR Capability Register

在这里插入图片描述

2.3 Resizable BAR Control Register

在这里插入图片描述
BAR Indix: 指向BAR的起点
■ 0x0 (VF_BAR_24h): VF BAR located at offset 24h.
■ 0x1 (VF_BAR_28h): VF BAR located at offset 28h.
■ 0x2 (VF_BAR_2Ch): VF BAR located at offset 2Ch.
■ 0x3 (VF_BAR_30h): VF BAR located at offset 30h.
■ 0x4 (VF_BAR_34h): VF BAR located at offset 34h.
■ 0x5 (VF_BAR_38h): VF BAR located at offset 38h.

Number of Resizeable BARs: 表示该函数的能力结构中可调整大小的bar的总数
■ 0x1 (BAR1): one resizable VF BAR for the function
■ 0x2 (BAR2): two resizable VF BARs for the function.
■ 0x3 (BAR3): three resizable VF BARs for the function.
■ 0x4 (BAR4): four resizable VF BARs for the function.
■ 0x5 (BAR5): five resizable VF BARs for the function.
■ 0x6 (BAR6): six resizable VF BARs for the function.

BAR Size: 这是一个编码过的值,该字段的默认值等于BAR资源通过BAR的只读位请求的地址空间的默认大小,软件必须只写入 Resizable BAR Capability中所支持的值相对应的值,编写不支持的值将产生未定义的结果。
■ 0x0 (_1MB): 1MB(2^20 bytes)
■ 0x1 (_2MB): 2MB(2^21 bytes)
■ 0x2 (_4MB): 4MB(2^22 bytes)
■ 0x3 (_8MB): 8MB(2^23 bytes)
.
.
.
■ 0x2b (_8EB): 8EB(2^63 bytes)

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值