novartis 0 27 июня, 2020 Опубликовано 27 июня, 2020 · Жалоба Есть у меня плата 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 за определенное время после сброса? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
new123 0 27 июня, 2020 Опубликовано 27 июня, 2020 (изменено) · Жалоба Наверное надо в сторону hot-plug рыть. В своем root проверить Data link layer active reporting в On наверное, да посмотреть, умеет ли сетевуха hot plug делать (вроде как в конфиг пространстве пишется). Или вы конфиг при power up прочитать не можете сразу? По поводу power up знаю только одно требование - в первые 100mlsec частоту стабилизировать и perst держать. Потом наверное начинается enumeration (хотя на серваке enumeration начинается явно не через 100mlsec) Изменено 27 июня, 2020 пользователем new123 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться