pcie 的bar和dma bar2

设备在系统的PCI地址空间里申请一段来用,所申请的空间基址和大小保存在BAR寄存器里。
 
BAR里的只是PCI域的地址空间,需要映射到IO地址空间里或者内存地址空间里之后软件才能使用
。
 
映射到IO空间的话,用IO读写指令和函数去访问设备;映射到内存空间的话,首先得到的是物理地址,映射到虚拟地址后就可以像用指针那样访问。
 
IO BAR和MEM BAR分别是映射到IO空间和内存空间的BAR;BAR寄存器的0位指示要映射到哪,有的设备这位可以由用户设置,有的只读。
 
每个BAR具体干嘛是设备自己定义的,要看手册。

PCI Express 内核保留了系统地址空间,其可具有高达8 个参考基址寄存器(BAR)。每个BAR 存储参考存储器段的开始地址。标准的PCI Express 应用一般使用 BAR0 和 BAR1 作为链路的标准参考。您也可以规定其它BAR 来替代。

       BAR0 和 BAR1 用于参考DDR2 SDRAM 存储器。BAR2 用于参考受应用逻辑监控的DMA 寄存器。这就使得Root Complex 可以通过写BAR2 来写 DMA 寄存器。这样,便可实现从Root Complex 发起 Endpoint 处理。这便是本设计写DMA 寄存器的方法。

      ****摘自altera公司pcie core说明书****

猜你喜欢

转载自blog.csdn.net/wordwarwordwar/article/details/81194559
bar
今日推荐