У меня PCIe Endpoint & Root Complex будет ПК под управлением Linux.Теперь я хочу отправить несколько байтов (скажем, 4 байта) из EP в системную память (RC), используя пример запроса чтения памяти (TLP) PCIe Пример PCIe памяти TLP.

Запрос памяти TLP


Для отправки этого EP должен знать адрес системной памяти. Насколько я понимаю, RC будет подключен к системной памяти, поэтому любая транзакция, нацеленная на RC, будет нацелена на системную память, поэтому EP должен знать диапазон адресов RC. Вот пример изображения:

EP в системную память транзакции

Мои вопросы:

  1. Как EP знает адрес системной памяти? RC BAR привязан к системной памяти? Если да, может ли EP получить доступ к RC BAR? Если да, то как?

  2. Точно так же, когда EP хочет связаться с другим EP, он должен знать целевой адрес EP BAR.Итак, как EP узнает адрес другого EP?

    Образец изображения:EP в EP Операция памяти

  3. Есть ли какой-нибудь linux-код / драйвер, который я мог бы отнести к EP для системной памяти / другого соединения EP?


Большое спасибо за любую помощь.

0