2012-05-16 3 views
1

64 비트 리눅스 호스트에서 64 비트 PCI 익스프레스 카드를 사용하고 있는데 문제는 64 비트이지만 항상 32에 속하는 주소를 얻는 것입니다 비트 주소 범위, 즉 BAR의 상위 32 비트는 항상 0입니다.64 비트 pcie 카드에 대한 64 비트 리눅스 호스트의 주소 할당

어떻게 실제 64 비트 주소를 사용할 수 있습니까? 커널이 부팅 할 때 커널이 커널을 열거 할 수 있도록 BIOS 열거를 무시하려고했지만 커널이 pci 장치를 열거 할 수 있지만 BIOS에서와 같은 결과가 나타납니다.

Linux가 실제 64 비트 주소를 지원하지 않습니까?

+1

중요합니까? I/O 주소는 많은 메모리를 소비하지 않아야하므로 32 비트이면 충분합니다. 아마도 Linux는 오래된 장치를 지원하는 쉬운 방법을 선택하고 모든 장치에 낮은 주소를 제공합니다. – ugoren

+0

윈도우 지원이 지원되는지 확인해야합니다. 그러면 윈도우를 64 비트까지의 주소를 통과하도록 매핑 할 수 있습니다. –

답변

0

다음과 같은 시도를 할 수 있습니다. 먼저 커널에서 PAE (실제 주소 확장)를 활성화합니다. 그런 다음 setpci 명령을 사용하거나 드라이버에서 상위 32 비트 바 레지스터를 0이 아닌 값으로 변경하십시오. 종점 장치가 pci 브릿지 아래에있는 경우 Pre-fetchable Base를 변경하는 것을 잊지 마십시오. 상위 32 비트 및 Pre- fetchable Limit 상위 32 비트 레지스터가 적절하게 조정됩니다.

관련 문제