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)

PCIE Resizable BAR相关推荐

  1. pcie 的bar和dma bar2

    设备在系统的PCI地址空间里申请一段来用,所申请的空间基址和大小保存在BAR寄存器里.BAR里的只是PCI域的地址空间,需要映射到IO地址空间里或者内存地址空间里之后软件才能使用 .映射到IO空间的话 ...

  2. PCIe学习笔记之pcie结构和配置空间

    PCIe概述 PCI Express,是计算机总线PCI的一种,它沿用现有的PCI编程概念及通信标准,但建基于更快的串行通信系统. PCIE总线使用的是高速差分总线,并采用端到端的连接方式, 现在的高 ...

  3. PCIe | 基础知识点扫盲

    本文总结 lspci 相关的知识点 1' 2' 3' 4' 5' 6. 本文的内容主要源自互联网技术博客及 SSDfans 网站 7. 持续更新中 - Update: 2023 / 1 / 23 PC ...

  4. 【PCIe 5.0 - 102】SR-IOV【3】

    承接[PCIe 5.0 - 101]SR-IOV[2] PCIe 系列SR-IOV导航: [PCIe 5.0 - 100]SR-IOV[1] [PCIe 5.0 - 101]SR-IOV[2] [PC ...

  5. Linux下PCIe驱动开发与学习

    PCIe概述 PCI Express,是计算机总线PCI的一种,它沿用现有的PCI编程概念及通信标准,但建基于更快的串行通信系统. PCIE总线使用的是高速差分总线,并采用端到端的连接方式, 现在的高 ...

  6. 【PCIe 5.0 - 100】SR-IOV【1】

    本文将从PCIe角度讲SR-IOV. PCIe 系列SR-IOV导航: [PCIe 5.0 - 100]SR-IOV[1] [PCIe 5.0 - 101]SR-IOV[2] [PCIe 5.0 - ...

  7. 带你了解PCIE通信原理

    01.PCIE简介 PCI-Express(peripheral component interconnect express),简称PCIE,是一种高速串行计算机扩展总线标准,主要用于扩充计算机系统 ...

  8. 单击即可提高游戏速度:什么是可调整大小的BAR?

    去年年底,AMD公司推出了Radeon RX 6800 XT,这是其最新的主流旗舰显卡.AMD公司自豪地展示了被称为当时最新的"专有"功能:可调整大小的BAR(基地址寄存器),尽管 ...

  9. PCIE 调试过程记录

    遇到的问题 PCIE link不稳定 配置空间读写正常,Memory mapping空间读写异常 缘由 之前对PCIE的认识一直停留在概念的阶段,只知道是一个高速通讯协议,主要用于板内.板间的高速BU ...

最新文章

  1. 这是一份不完整的数据竞赛年鉴!
  2. MySQL内核月报 2014.11-MySQL· 5.7特性·在线Truncate undo log 表空间
  3. 字符统计2_JAVA
  4. vb.net限制软件使用次数_新增投屏及倍数播放,这款软件iOSAndroid全都有,影视神器,抓紧体验...
  5. 4.WCF事务【Transaction】
  6. 6.2二叉树及二叉树存储结构
  7. jQuery技术内幕:深入解析jQuery架构设计与实现原理1
  8. 图像处理自学(三):CAMERAM处理流程总结
  9. 自行编译cups绕过错误:file /etc/rc.d/rc.local from install of systemd conflicts with file from
  10. 计算机组成原理自测题,计算机组成原理自测练习题
  11. k2p华硕系统怎么设置_斐讯k2华硕固件,斐讯k2p华硕固件设置
  12. kms地址大全_kms激活服务器地址(常用)和自己搭建KMS服务器教程
  13. 如何设计网页模板才简洁美观?
  14. ERROR ~/.vuerc may be outdated. Please delete it and re-run vue-cli in manual mode.
  15. Zookeeper 深入进阶 —— ZAB 协议
  16. 计算机二级演示文稿合并PPT,[PPT考点]如何将两个幻灯片合并在一个幻灯片?
  17. 计算机网络【IP协议与以太网】
  18. 小马哥---高仿苹果7 7p已出现市场 图文鉴赏假机面目 警惕购买
  19. React 环境搭建以及创建项目工程(二)
  20. 简述工业机器人码垛工作站系统构成_模块一工业机器人码垛工作站系统集成.PDF...

热门文章

  1. Netdata 是一款 Linux 性能实时监测工具,以web的可视化方式展示
  2. 《时空交通数据预测方法及应用》附讲座PPT以及直播回放
  3. Word老是无响应的解决方法
  4. github客户端fork的简单教程
  5. Vue2 + cube UI 实现表单项目
  6. Android测试工具Robotium(Demo篇)
  7. 真假3D:VR成像技术探秘
  8. 刷题记录:牛客NC19910[CQOI2007]矩形RECT
  9. 解决问题“写代码在中间插入字符时会把后面的相邻字符覆盖掉”
  10. 华为openEuler 21.09创新版本系统,“sudo dnf update“更新报错,EPOL...