Linux 内核 3.13 中忽略 PCIe 卡内存区域

Linux 内核 3.13 中忽略 PCIe 卡内存区域

在我的系统上,安装了内核 3.13.0-32-generic(Ubuntu Server 14.04.1 LTS),系统中的一个 PCIe 板(06:00.0)的内存区域被忽略:

Interrupt: pin A routed to IRQ 10
Region 0: Memory at <ignored> (32-bit, non-prefetchable) 
Region 2: Memory at <ignored> (32-bit, non-prefetchable) 

在 dmesg 中:

me@system:~$ dmesg | grep 06:00.0
[    1.326963] pci 0000:06:00.0: [ad00:0122] type 00 class 0x000000
[    1.326979] pci 0000:06:00.0: reg 0x10: [mem 0xf7400000-0xf74001ff]
[    1.327000] pci 0000:06:00.0: reg 0x18: [mem 0xf7200000-0xf73fffff]

当我随后尝试通过其内核模块访问主板时,它当然不起作用。

如果我在系统上安装 Debian 7.5 或 7.8 而不进行任何其他更改,则一切都正常运行:

Debian:

Interrupt: pin A routed to IRQ 17
Region 0: Memory at f7400000 (32-bit, non-prefetchable) 
Region 2: Memory at f7200000 (32-bit, non-prefetchable) 

me@system:~$ dmesg | grep 06:00.0
[    1.438114] pci 0000:06:00.0: [ad00:0122] type 0 class 0x000000
[    1.438130] pci 0000:06:00.0: reg 10: [mem 0xf7400000-0xf74001ff]
[    1.438151] pci 0000:06:00.0: reg 18: [mem 0xf7200000-0xf73fffff]

因此,硬件没有问题,问题是内核版本和硬件的结合。

Ubuntu 内核:3.13.0-32-generic

Debian 内核:3.2.0-4-amd64/

我该怎么做才能让它在 3.13.0-32-generic 下正常工作,即让内存区域不被忽略?

我尝试了以下操作,但没有成功:

  • 内核版本 3.13.11-03131111-generic 和 3.16
  • 设置内核参数 mem=2048M

非常感谢!

相关内容