두 개의 SoC가 함께 연결된 임베디드 PCIe 시스템에서 작업 중이며 호스트는 루트 컴플렉스이며 슬레이브는 엔드 포인트입니다. 호스트는 Linux를 실행합니다.PCIe 엔드 포인트는 루트 컴플렉스 BAR에 액세스 할 수 있습니까?
일반적으로 호스트 SoC는 엔드 포인트 BAR이 매핑되는 메모리 창을 제공합니다. 이렇게하면 호스트의 카드 드라이버가 슬레이브의 IO 또는 메모리를 읽고 쓸 수 있습니다. 종종 슬레이브에는 PCIe IP에 내장 된 DMAC가 포함되며 PCIe 주소와 로컬 주소로 작동합니다. 호스트는 메모리 창에 기록하여이 DMAC를 설정합니다.
내 경우 엔드 포인트에는 PCIe IP에 내장 된 DMAC가 없지만 시스템 DMAC가 있습니다. 그럼, 두 가지 질문 ...
- BAR을 통해 루트 컴플렉스의 메모리에 액세스 할 수 있습니까?
- PCIe DMAC에 을 내장하지 않고 시스템 DMAC를 사용하면 성능에 미치는 영향이 있습니까? (즉, BAR을 통한 액세스는 PCIe 버스에 어떻게 표시됩니까? 각 액세스마다 하나의 TLP가 있습니까?)
도움이 되셨다면 도움이됩니다.
감사합니다. 도움이된다고 생각합니다. – user2504336
Q2는 BAR을 읽는 것이 아니지만 BAR 창을 통해 데이터를 읽거나 쓰는 것입니다 (RC는 EP 메모리에 읽기/쓰기 시작). – user2504336