社区
驱动程序开发区
帖子详情
请问PCIe BAR的prefetchable位软件可以修改吗
walkingman321
2019-09-10 04:55:22
最近研究pcie驱动,用lspci -vv看到这一行
Region 0: Memory at 83100000 (32-bit, non-prefetchable) [size=256K]
这个non-prefetchable是硬件决定的吗?还是我能通过软件把它设置成prefetchable?
谢谢!
...全文
309
回复
打赏
收藏
请问PCIe BAR的prefetchable位软件可以修改吗
最近研究pcie驱动,用lspci -vv看到这一行 Region 0: Memory at 83100000 (32-bit, non-prefetchable) [size=256K] 这个non-prefetchable是硬件决定的吗?还是我能通过软件把它设置成prefetchable? 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
PCIE
的pre
fetch
able
和nonpre
fetch
able
的理解
在PCI设备驱动开发过程中,处理板载I/O和内存空间时,常常会遇到pre
fetch
able
和nonpre
fetch
able
两词,直译为可预取和不可预取。但是两者具体究竟是什么含义呢?在LDD3, Chapter 12: PCI Drivers一章找到了不错的解释,姑且一边翻译一边解读如下(原文:LDD3影印版p316,Accessing the I/O and Memory Spaces 下面一段...
PCIE
BAR空间
PCIE
应用程序编程,首先就要理清
PCIE
BAR空间到底说的是什么。在
PCIE
配置空间里,0x10开始后面有6个32
位
的BAR寄存器,BAR寄存器中存储的数据是表示
PCIE
设备在
PCIE
地址空间中的基地址,注意这里不是表示
PCIE
设备内存在CPU内存中的映射地址,关于这两者的关系以及两者如何转换后面会有介绍。 1,BAR寄存器的数据格式,BAR寄存器表示的设备存储类型有memory s
PCIe
学习笔记(13)--- Pre
fetch
able
and Non-Pre
fetch
able
Memory
MMIO(memory mapped IO) 分为两种类型 一,PRE
FETCH
ABLE
二,NON-PRE
FETCH
ABLE
PRE
FETCH
ABLE
MMIO有以下特点: 一,读没有副作用 二,多笔写事务可以合并为一笔 PRE
FETCH
ABLE
读,可以允许提前CACHE一些数据 某些寄存器类型的MMIO,不适合作为PRE
FETCH
ABLE
,因为读有副作用,如状态
PCIe
—预取和非预取
通过BAR请求内存资源的PCI Express Endpoint必须设置BAR的Pre
fetch
able
位
,除非该范围包含具有读副作用的空间或该EP不允许写合并的空间,例如,如果请求者请求从一个地址读取128个字节,则Completer可能也会预取下一个128字节,以便在被请求时将其放在手边以提高性能。这样的读取行为通常发生在具有特殊需求的设备上,例如DMA(Direct Memory Access)控制器,其需要获取实时的、即时的数据,而不需要进行缓存.强烈建议映射到内存空间的资源尽可能设计为可预取的。
【xdma】
pcie
.bar设置
读写部分分为两种,一种是数据的读写,另一种是配置数据的读写,在数据读写部分,DMA通过MIG控制DDR完成数据读写。配置数据读写通过与BRAM通过AXI-lite总线连接完成,XDMA将
PCIe
配置信息存在BRAM,在进行配置信息读写时,将传入主机映射到用户逻辑的地址,然后与偏移地址处理(物理地址=段地址
驱动程序开发区
1,324
社区成员
2,170
社区内容
发帖
与我相关
我的任务
驱动程序开发区
主要是开发驱动技术
复制链接
扫一扫
分享
社区描述
主要是开发驱动技术
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章