Перейти к содержанию
    

Pcie Root Complex

Есть у меня плата Stratix 5 с PCIE (Terasic TR5-F40W (Stratix 5, Pcie Gen 3 x8)), я ее соединил с обычной сетевой картой PCIE x1.

На  стратиксе в проекте сгенерил Pcie IP Core в режиме root complex.

Соединил платы через два рейзера x1. Опорный клок refclk 100 МГц подал на рейзеры от материнки компа (припаял диф пару).  PCIE_PERSTN для стратикса завел от button_0 платы FPGA, а PCIE_PERSTN для сетевой карты сделал и от button_0 и от button_1 FPGA, можно одновременно сбросить pcie стратикс 5 и pcie сетевой карты, и можно сбросить только pcie сетевой карты.

В сигналтапе смотрю, pcie_core_clk_out  есть, это клок из Pcie IP Core , опорная частота захвачена, корка работает.

LTSSMSTATE = 0x0F - это состояние L0 - это нормальное состояние, когда данные и контрольные пакеты могут быть отправлены и приняты.

Если  сетевую карту PCIE x1 вытащить из слота и дернуть PCIE_PERSTN стратикса, то LTSSMSTATE будет постоянно перепрыгивать из начальных состояний. Если обратно вставить сетевуху, то LTSSMSTATE = L0. Делаю, вывод, что линк между платами устанавливается. 

Вот дальше есть не понимание, что делать дальше)

Читал спецификацию, пришел к выводу, что надо сделать enumeration. Для этого надо прочитать конфигурационное пространство подключенных устройств.

Делаю Cnfg Rd Type 0 (хочу прочитать конфиг своей платы FPGA), в ответ получаю пакет с vendor id и device id, которые я указал при настройках PCIE IP Core. Тут все норм.

Делаю Cnfg Rd Type 1, в ответ ничего получаю. Перебираю все возможные Bus, Device Number в пакете Cnfg Rd Type 1, ответ не приходит.

Не понятно почему не приходит ответ от  сетевой карты на чтение ее конфигурационного пространства. Может логика работы совсем не такая? Или нужно успеть сделать опрос Cnfg Rd за определенное время после сброса?

 

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Наверное надо в сторону hot-plug рыть. В своем root проверить Data link layer active reporting в On наверное, да посмотреть, умеет ли сетевуха hot plug делать (вроде как в конфиг пространстве пишется). Или вы конфиг при power up прочитать не можете сразу?
По поводу power up знаю только одно требование - в первые 100mlsec частоту стабилизировать и perst держать. Потом наверное начинается enumeration (хотя на серваке enumeration начинается явно не через 100mlsec)

Изменено пользователем new123

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...