【发布时间】:2013-11-06 00:23:55
【问题描述】:
我了解 PCI 和 PCIe 设备可以由 CPU 配置(通过 BIOS 或操作系统中的代码)以通过写入设备配置空间的特定区域来响应某些物理内存地址。
事实上,考虑到设备的许多要求(内存对齐、DMA 功能等),Linux 内核有相当复杂的算法来执行此操作。
看到软件似乎可以控制是否、何时以及在何处映射此内存,我的问题是:一个软件如何控制物理内存的映射?
在这个配置之后,PCI 设备会知道响应给定的地址范围,但是 CPU 怎么知道它应该为那些刚刚动态决定的特定地址在 PCI 总线上运行呢?
【问题讨论】:
-
您能否从 linux 内核源代码(网页视图)中添加指向该算法的链接?
标签: linux-kernel pci memory-mapping pci-e