Mam PCIe Endpoint & Root Complex na PC z linuksem. Teraz chcę wysłać kilka bajtów (powiedzmy 4 bajty) z EP do pamięci systemowej (RC) za pomocą żądania odczytu pamięci PCIe (TLP) Przykład TLP pamięci PCIe.
Aby wysłać to, EP musi znać adres pamięci systemowej. O ile rozumiem, RC będzie podłączone do pamięci systemowej, więc każda transakcja ukierunkowana na RC będzie dotyczyła pamięci systemowej, więc EP powinien znać zakres adresów RC. Oto przykładowy obraz:
Moje pytania:
Skąd PE zna adres pamięci systemowej? Czy RC BAR jest mapowany do pamięci systemowej? Jeśli tak, czy EP może uzyskać dostęp do RC BAR? Jeśli tak to jak?
Podobnie, gdy EP chce komunikować się z inną EP, powinien znać docelowy adres EP BAR. Więc skąd EP zna adres innej EP?
Czy jest jakiś kod / sterownik linux, który mógłbym odnieść do EP-ki do pamięci systemowej / innej komunikacji EP?
Wielkie dzięki za wszelką pomoc.
źródło