我正在为PCIe网络设备编写驱动程序。我还在努力学习,所以我的问题可能就像一个简单的问题,因为我不了解大部分事情。
从我读过的BAR0地址开始,内存大小约为256MB。但是我只有128MB。
所以我的问题是如何映射这个BAR以便访问MMIO区域。
非常感谢你的帮助。
答案 0 :(得分:0)
内存映射的设备只响应内存地址。它不占用系统中的任何物理RAM。通常,内存映射设备被分配给不与物理内存重叠的内存地址。
您的典型x86处理器具有32位地址空间(0x00000000-0xFFFFFFFF)。如果你有128MB的RAM,它占用物理地址0x00000000-0x08000000(粗略)。这为PCI设备留下了大量超过0x08000000的空间。
查看PCI设备BAR的地址。它们可能都是地址空间上半部分(0x80000000或更高)的所有值。