컴퓨터 지식 네트워크 - 컴퓨터 프로그래밍 - 이해하는 데 오랜 시간이 걸린 몇 가지 기본적인 PCI 드라이버 지식 요점

이해하는 데 오랜 시간이 걸린 몇 가지 기본적인 PCI 드라이버 지식 요점

1. PCI 칩의 구성 레지스터는 PCI 구성 레지스터와 로컬 구성 레지스터로 구분됩니다. pci9054 데이터북을 읽을 때 나는 항상 로컬 구성 레지스터가 dsp의 레지스터를 참조한다고 생각했습니다. . . 오랫동안 아무것도 하지 않아서 영어도 중국어도 다 깨졌어요. . .

2. 6개의 pci 바(0-5). 이 중 bar2-5는 4개의 로컬 공간 0-3에 해당합니다. pci 버스는 5개의 로컬 주소 공간에 액세스할 수 있습니다. 4개의 레지스터 세트는 각 공간과 공간의 특성을 정의합니다.

pci bar

로컬 범위 로컬 범위

로컬 기본 주소

p >

로컬 버스 영역 설명자(버스 폭, 버스트, 프리페치 및 여러 대기 상태와 같은 로컬 버스 특성 지정)

3 Seeprom은 pci bar에 액세스할 수 없으며 seeperm은 로컬 구성 레지스터에 액세스할 수 있습니다. , bar는 호스트 BIOS에 의해 동적으로 할당됩니다.

4. PCI 초기화 소프트웨어: PCI 호스트 버스 초기화 소프트웨어는 PCI 기본 주소 레지스터에 모두 1을 쓴 다음 값을 다시 읽어 요청된 주소 공간을 결정합니다. PCI9054는 요청된 주소 공간을 지정하기 위해 불필요한 주소 비트에서 0을 반환합니다. PCI 소프트웨어(드라이버나 응용 프로그램이 아니라 pci 시스템 소프트웨어)는 PCI 기본 주소 레지스터를 프로그래밍하여 로컬 주소 공간을 PCI 주소 공간에 매핑합니다.

예: IMB 로컬 주소 공간 02300000h ~ 023FFFFFH는 LLPCI 버스의 PCI 주소 78900000h ~ 789FFFFFH에 의해 액세스됩니다.

1. SEEPROM의 범위 및 로컬 기본 주소 레지스터를 다음과 같이 설정합니다.

범위 = FFF00000h(1MB, 상위 PCI 주소의 상위 12비트 디코딩)

로컬 주소(재매핑) = 023xxxxxh (로컬 로컬 기본 주소 액세스에 대한 PCI의 경우)

2. PCI 초기화 소프트웨어는 PCI 기본 주소 레지스터에 모든 값을 쓴 다음 반환 값을 읽습니다. PCI9052는 FFF00000H를 반환합니다. PCI 소프트웨어는 PCI 기본 주소 레지스터를 작성합니다:

PCI 기본 주소 = 789xxxxxh(PCI 기본 주소는 로컬 주소 공간에 액세스하는 데 사용됩니다)

PCI는 리틀 엔디안입니다

上篇: 유레메이 밀크티를 마시면 살이 찌나요? 下篇: 중고 컴퓨터 재활용 가격
관련 내용