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

Не стартует PCIE корка в Stratix V

Пытаюсь запустить проект для платы XPRESSGX5-LPA7SE-GEN3 от Reflexces.

Я его уже и так и эдак.

Взял пример, который генерится в qsys, его и эксплуатирую.

 

Вот сигнал тап что показывает:

post-52845-1464680392_thumb.png

 

Как я понимаю:

serdes_pll_locked = 1 - частота захвачена, то етсь 100МГЦ с разъема pcie подается,

reset_status = 0 - не под сбросом находится,

npor, perstn = 1 - сброса нет.

А LTSSM = 00001: Detect.Active.

 

Как это правильно интерпретировать?

Корка не может pcie линки обнаружить или что?

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


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

Здравствуйте.

 

Что-то у вас на этапе детектирования сторон не проходит. Либо хост не видит плату, либо наоборот. Приёмная сторона терминирование включает для того, чтобы ответная сторона её детектировала. Пробовали ли на другой матери? Не повреждены ли конденсаторы на плате на линиях PCIe? Не знаю как на альтере (думаю там всё так же), надо проверить RX_ELECIDLE пин на корке PCIe, он отвечает за то, что хост увидел плату.

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

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


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

Спасибо за ответ!

 

Решил добавить в сигнал тап еще сигналы (какие то внутренние).

Скомпилил проект, залил, в сигнал тапе вижу LTSSM = 0x0F, то есть плата перешла в нормальное рабочее состояние!

В jungo windriver тоже свою плату вижу, можно драйвер сгенерить.

 

Тут же перезаливаю прошивку - LTSSM = 0x01.

 

Опять перезаливаю прошивку - LTSSM = 0x0F.

 

SDC файл в проект добавлен. Указаны частоты 100МГц - реф клок для pcie, 125МГц - для компонентов реконфигурации трансиверов, 100МГц - для светодиодов.

Тайм квест говорит, что все констрейны удовлетворены.

 

Что же делать?

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


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

Тут же перезаливаю прошивку - LTSSM = 0x01.

 

Опять перезаливаю прошивку - LTSSM = 0x0F.

 

А вы перезагружаете хост после заливки прошивки? Я не уверен, что обычный PCIe умеет hotplug (вот expresscard умел). Если ваша плата поддерживает внешнее питание, то по идее нужно питать отдельно от хоста, конфигурировать ПЛИС и только после этого включать хост. Если это невозможно, то нужно каждый раз зашивать конфигурирующую память (И, кстати, если ПЛИСина жирная, то нужно, чтобы она успела законфигурироваться после подачи питания. Там вроде для PCIe 100ms допустимо).

 

И ещё, насколько я помню, после link training плата должна в состоянии 0x16 находиться, т.е. L0.

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

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


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

Спасибо за ответ!

 

Решил добавить в сигнал тап еще сигналы (какие то внутренние).

Скомпилил проект, залил, в сигнал тапе вижу LTSSM = 0x0F, то есть плата перешла в нормальное рабочее состояние!

В jungo windriver тоже свою плату вижу, можно драйвер сгенерить.

 

Тут же перезаливаю прошивку - LTSSM = 0x01.

 

Опять перезаливаю прошивку - LTSSM = 0x0F.

 

SDC файл в проект добавлен. Указаны частоты 100МГц - реф клок для pcie, 125МГц - для компонентов реконфигурации трансиверов, 100МГц - для светодиодов.

Тайм квест говорит, что все констрейны удовлетворены.

 

Что же делать?

 

Добрый день.

После перезаливки конфигурации попробуйте в диспетчере устройств выполнить поиск устройств.

Удачи.

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


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

А вы перезагружаете хост после заливки прошивки? Я не уверен, что обычный PCIe умеет hotplug (вот expresscard умел). Если ваша плата поддерживает внешнее питание, то по идее нужно питать отдельно от хоста, конфигурировать ПЛИС и только после этого включать хост. Если это невозможно, то нужно каждый раз зашивать конфигурирующую память (И, кстати, если ПЛИСина жирная, то нужно, чтобы она успела законфигурироваться после подачи питания. Там вроде для PCIe 100ms допустимо).

Перезагрузка ПК не ведет к сбросу питания на PCIe плате (на моём ПК это так). Но чтобы каждый раз не перезагружаться после перепрошивки FPGA под Windows делал так:

1. До перепрошивки FPGA удаляется драйвер для PCIe устройства.

2. Перепрошивается FPGA.

3. Создаётся новый драйвер.

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


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

после link training плата должна в состоянии 0x16 находиться, т.е. L0.

Вы опечаталмсь наверно, L0 = 0x0F, я об этом состоянии и писал, что иногда в нормальное рабочее состояние прошиваться стала.

 

После перезаливки конфигурации попробуйте в диспетчере устройств выполнить поиск устройств.

Если плата повисла в L0 = 0x01, то комп ее не видит и все тут, ни поиск в винде в диспетчере устройств не помогает, ни перезагрузка компа.

 

Перезагрузка ПК не ведет к сбросу питания на PCIe плате

Питание для платы сбрасывать и не нужно. Я заливаю не во флешку, а в саму плис (sof файл).

После прошивки я пробовал и перезагружать комп.

 

Как я понимаю процесс.

Перезагружаем комп, в момент перезагрузки дергается нога perstn на разъеме pcie.

Происходит сброс корки pcie в ПЛИС, сброс компонентов реконфигурации и т.п.

Если бы образ для ПЛИС разворачивался из флешки, то это должно было бы выполниться за 100мс.

Но образ в ПЛИС уже загружен, поэтому требование про 100мс тут удовлетворяется.

 

 

 

Надо попробовать на другой материнской плате...

 

 

Хотелось бы рассказать про саппорт в reflexces.com:

на обращение в саппорт сам саппорт отводит себе 48 часов (business hour) - 48 рабочих часов, карл!!

Это 6 рабочих дней!! Ужас...

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


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

Вы опечаталмсь наверно, L0 = 0x0F, я об этом состоянии и писал, что иногда в нормальное рабочее состояние прошиваться стала.

 

Я на xilinx делал, там L0 = 0x16. Наверное у альтеры по другому кодируются состояния LTSSM, хотя странно.

 

Если плата повисла в L0 = 0x01, то комп ее не видит и все тут, ни поиск в винде в диспетчере устройств не помогает, ни перезагрузка компа.

 

Detect.Active это не начальное состояние, перед ним Detect.Quiet вроде должен быть (у Xilinx там по крайней мере). У вас сброс этот вообще происходит? Не знаю

как в альтере PCIe сделан, но если до 0x01 есть состояния, в которые она не переходит после сброса, то что-то с логикой сброса не так.

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


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

У альтеры L0 = 0x0F. Видимо у каждого по своему.

post-52845-1464847815_thumb.png

 

Провел сейчас эксперимент.

На другом компе на другой отладочной плате Stratix IV Dev Kit переразвел ноги pcie. Вместо pcie разъема указал на другие ножки (там второй pcie hard ip core есть), они в воздухе болтаются получается. Рефклок 100МГц подал.

В итоге рефклок захватилась, корка работает, LTSSM циклически переходит 0x00 -> 0x01 -> 0x00 -> 0x01...

Пытается обнаружить ответную сторону, но не удается.

 

От саппорта жду ответа по поводу IO_STANDARD для pci ног, в даташите только пины были указаны.

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


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

Саппорт прислал схему на плату.

На линии tx стоят конденсаторы по 100нФ.

post-52845-1464891089_thumb.png

 

В то же время на отладке Stratix V GX FPGA Development Kit Board от альтеры-terasic кондеры по 220нФ.

post-52845-1464891124_thumb.png

 

В стандарте на pcie GEN3 написано, что для GEN1 и GEN2 можно ставить 75-265нФ, для GEN3 176-265нФ

post-52845-1464891289_thumb.png

 

Где то даже тема была, в которой обсуждали емкость конденсаторв для pcie, не могу найти.

 

Незнаю с этим или нет связаны мои проблемы.

 

Но выходит, что для GEN3 совсем всё плохо будет?

 

 

PS: исправил опечатки, везде про нанофарады

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


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

Один из вариантов -- не правильно выбран I/O standard для референсного клока.

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


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

На линии tx стоят конденсаторы по 100мкФ.

В то же время на отладке Stratix V GX FPGA Development Kit Board от альтеры-terasic кондеры по 220нФ.

В стандарте на pcie GEN3 написано, что для GEN1 и GEN2 можно ставить 75-265мкФ, для GEN3 176-265мкФ

у вас во всех трех картинках емкость правильная (100нФ = 0.1мкФ)

т.е. что 100нФ, что 0.22мкФ вполне в границах допуска, для Gen3 надо не меньше 176нФ

256мкФ - это явно ваша опечатка..

 

для паранойи, самостоятельно или попросите монтажника внимательно посмотреть монтаж конденсаторов - кондюки бывают лопаются или коротятся по обкладкам/монтажу, что приводит к неработоспособности линии..

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


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

Помогите правильно назначить пины для pcie.

Вот такая схема для pcie ног:

post-52845-1464942751_thumb.png

post-52845-1464942786_thumb.png

 

Сам рефлекс предлагает использовать следующие назначения:

# PCIe Signals
set_location_assignment PIN_AC28 -to pcie_rstn
set_location_assignment PIN_AF34 -to refclk
set_location_assignment PIN_AV38 -to rx_in0
set_location_assignment PIN_AT38 -to rx_in1
set_location_assignment PIN_AP38 -to rx_in2
set_location_assignment PIN_AM38 -to rx_in3
set_location_assignment PIN_AH38 -to rx_in4
set_location_assignment PIN_AF38 -to rx_in5
set_location_assignment PIN_AD38 -to rx_in6
set_location_assignment PIN_AB38 -to rx_in7
set_location_assignment PIN_AU36 -to tx_out0
set_location_assignment PIN_AR36 -to tx_out1
set_location_assignment PIN_AN36 -to tx_out2
set_location_assignment PIN_AL36 -to tx_out3
set_location_assignment PIN_AG36 -to tx_out4
set_location_assignment PIN_AE36 -to tx_out5
set_location_assignment PIN_AC36 -to tx_out6
set_location_assignment PIN_AA36 -to tx_out7

# Misc
set_location_assignment PIN_AK23 -to clk125

# Pin Constraints
set_instance_assignment -name IO_STANDARD "2.5 V" -to pcie_rstn
set_instance_assignment -name IO_STANDARD LVDS -to clk125
set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to refclk
set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to rx_in0
set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to rx_in1
set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to rx_in2
set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to rx_in3
set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to rx_in4
set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to rx_in5
set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to rx_in6
set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to rx_in7
set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to tx_out0
set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to tx_out1
set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to tx_out2
set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to tx_out3
set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to tx_out4
set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to tx_out5
set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to tx_out6
set_instance_assignment -name IO_STANDARD "1.4-V PCML" -to tx_out7

 

Но с ними pcie встает в состояние LTSSM = 0x01 - Detect.Active, и дальше никуда не движется.

 

По схеме у рефклока есть внешнее сопротивление 100 Ом, как его наличие указать в квартусе?

По схеме это сопротивление не подключено (nc) и на плате его тоже нет.

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


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

Уже во всем ищу причину))

 

Вот на фото на трассе референс клока какая то грязь, флюс не смыт что ли?

Может это влиять на работу pcie?

Как это дело очистить в условиях обычного офиса (спиртиком протереть или еще чего)?

 

post-52845-1465145322_thumb.jpg

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


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

Уже во всем ищу причину))

 

Вот на фото на трассе референс клока какая то грязь, флюс не смыт что ли?

Может это влиять на работу pcie?

Как это дело очистить в условиях обычного офиса (спиртиком протереть или еще чего)?

 

Вроде маской закрыто всё, вряд ли. Водкой смойте, если имеется. Жидкостью для очистки мониторов в небольших количествах. Хуже не будет. Главное всё просушить.

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

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


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

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

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

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

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

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

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

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

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

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