No meu sistema, com o kernel 3.13.0-32-generic (Ubuntu Server 14.04.1 LTS) instalado, uma das placas PCIe no sistema (06: 00.0) está tendo suas regiões de memória ignoradas:
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)
No 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]
Quando eu, subsequentemente, tento acessar a placa através do módulo do kernel, isso não funciona, é claro.
Se eu instalar o Debian 7.5 ou 7.8 no sistema sem mudar nada, tudo funciona bem:
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]
O hardware está bem e o problema é uma combinação da versão do kernel e do hardware.
kernel do Ubuntu: 3.13.0-32-generic
kernel do Debian: 3.2.0-4-amd64 /
O que posso fazer para que isso funcione sob 3.13.0-32-genérico, ou seja, fazer com que as regiões de memória não sejam ignoradas?
Eu tentei o seguinte sem sucesso:
Muito obrigado!