У меня PCIe Endpoint & Root Complex будет ПК под управлением Linux.Теперь я хочу отправить несколько байтов (скажем, 4 байта) из EP в системную память (RC), используя пример запроса чтения памяти (TLP) PCIe Пример PCIe памяти TLP.
Для отправки этого EP должен знать адрес системной памяти. Насколько я понимаю, RC будет подключен к системной памяти, поэтому любая транзакция, нацеленная на RC, будет нацелена на системную память, поэтому EP должен знать диапазон адресов RC. Вот пример изображения:
Мои вопросы:
Как EP знает адрес системной памяти? RC BAR привязан к системной памяти? Если да, может ли EP получить доступ к RC BAR? Если да, то как?
Точно так же, когда EP хочет связаться с другим EP, он должен знать целевой адрес EP BAR.Итак, как EP узнает адрес другого EP?
Есть ли какой-нибудь linux-код / драйвер, который я мог бы отнести к EP для системной памяти / другого соединения EP?
Большое спасибо за любую помощь.