Voiceц
Dec 17 2009, 16:35
Здравствуйте, господа.
Пытаюсь оживить х8 PCIe проект с использованием аппаратного ядра Xilinx на Virtex5 LXT.
Наблюдаю чипскопом внутреннюю шину LTSSM и шины rx и tx каналов между HW endpoint ядром и GTP_dual блоками. Пробую на двух разных материнках:
1.MB на чипсете Intel 945G с интегрированным видеоконтроллером, 1х1 и 1х16 PCIe слотами. Устройство вставляю в х16 слот, пользуясь при этом интегрированным видео. Возможны 3 ситуации, по убыванию степени вероятности, такие:
1.а) Устройство проходит до LTSSM = 2 (polling.active), и остаётся в этом состоянии, причём материнка устройству не отвечает - на rx всегда 0, а на tx вечная TS1. ПК стартует, устройства в системе, естественно, нет.
1.б) Устройство проходит до LTSSM = 3 (polling.config), на rx и tx адекватный обмен TS1 и TS2, по завершении которого материнка посылает устройство в disabled (LTSSM = B). ПК стартует, устройства в системе, естественно, нет.
1.в) Устройство проходит до LTSSM = 4 (L0), затем в рекавери и снова проходит до LTSSM = 4 (L0). По шинам rx и tx видно, что материнка и устройство обмениваются DLLP пакетами (Flow control), после чего материнка посылает единственный TLP - Slot Power Limit message (кстати, моё устройство запитано не от слота, а от дополнительного разъёма), линк остаётся в состоянии 4, но больше ни одного TLP пакета не приходит. ПК не стартует и даже не проводит определение устройств.
2. MB на чипсете Nvidia NForce K8 с 1х4 и 2х16 PCIe слотами. В первом х16 слоте - видеокарта, во второй вставляю своё устройство. Возможны 2 варианта:
2.а) То же, что и вариант 1.в) для предыдущей матери, за исключением того, что линк конфигурируется с первого раза, без рекавери, и ПК стартует нормально, но устройства на шине нет. Все остальные признаки совпадают с вышеописанными.
2.б) Очень редко - в точности то же, что и 1.б)
Делал проект для х1 - с ним подобной проблемы не было.
Подскажите, куда смотреть?
dmitry-tomsk
Dec 18 2009, 08:14
На обычных материнках слот 1x16 заточен только под видеокарты, а если два - то под две, объединённые

Ищите материнку с 1x8 или asus серверный с несколькими слотами 1x16, правда, не знаю, можно ли купить такую в России.
Voiceц
Dec 18 2009, 08:36
Цитата(dmitry-tomsk @ Dec 18 2009, 11:14)

На обычных материнках слот 1x16 заточен только под видеокарты, а если два - то под две, объединённые :)
Пробовал ставить своё однолановое устройство в х16 слот - определялась и работало как надо. Даже если предположить, что ПК ожидает увидеть там видеокарту, как он узнаёт, что моё устройство - НЕ видеокарта? Ведь ни одного TLP пакета, помимо Slot Power Limit message, а значит, ни одной конфигурационной записи/чтения ПК не делает... Кажется, что я что-то пропустил, какую-то маленькую, но важную деталь. Вы в своём устройстве наблюдали процесс установки линкапа и енумерации шины? Как он должен выглядеть?
Это самое ядро проверял на обычных материнках со встроенным видео. Счас стоит asus p5q-em. Чиплет G45. Все работает, нет там никакой заточки. Скорость пересылки получалась более гигабайта.
Не понял зачем так глубоко копать. В модели ядро работает?
Цитата(Voiceц @ Dec 18 2009, 11:36)

Вы в своём устройстве наблюдали процесс установки линкапа и енумерации шины? Как он должен выглядеть?
Так глубоко не залезал, все сразу работало.
Voiceц
Dec 18 2009, 08:48
Цитата(disel @ Dec 18 2009, 11:39)

Не понял зачем так глубоко копать. В модели ядро работает?
Моделировал ядро только на этапе, когда создавал х1 проект. Сейчас обошёл этот этап.
А вы, наверное, логикоровским ядром пользуетесь? Я использую только аппаратное ядро, примитив PCIE.
да, Endpoint Block Plus v1.9 for PCI Express.
А зачем так? Экономия на лицензии?
Kuzmi4
Dec 18 2009, 09:19
Так лицензия на Endpoint Block
Plus стоит 10 минут потраченного времени

и 0$ Xilinx-у
Цитата(Kuzmi4 @ Dec 18 2009, 12:19)

Так лицензия на
Endpoint Block Plus стоит 10 минут потраченного времени

Не всегда возможно применение кряченных продуктов. Если продукт выходит на массовый рынок, могут не одобрить.
Kuzmi4
Dec 18 2009, 10:11
2 disel - я хотел сказать что лицензия на враппер, коим является Endpoint Block Plus, высылается на мыло бесплатно хилыми после заполнения формы и это всё не стоит ничего.
Voiceц
Dec 18 2009, 10:29
Цитата(disel @ Dec 18 2009, 11:50)

да, Endpoint Block Plus v1.9 for PCI Express.
А зачем так? Экономия на лицензии?
А с какой версии айса идёт эта корка? У меня сейчас 9.2. В ней пойдёт?
Цитата(Kuzmi4 @ Dec 18 2009, 13:11)

2 disel - я хотел сказать что лицензия на враппер, коим является Endpoint Block Plus, высылается на мыло бесплатно хилыми после заполнения формы и это всё не стоит ничего.
Действително

А он всегда так было? Видимо мне в голову не приходило, что лицензия может быть бесплатной, я и генерил известными средствами.
Цитата(Voiceц @ Dec 18 2009, 13:29)

А с какой версии айса идёт эта корка? У меня сейчас 9.2. В ней пойдёт?
С 10. Но и предыдущие версии должны работать.
Лежит в Xilinx\11.1\ISE\coregen\ip\xilinx\network\com\xilinx\ip\pcie_blk_plus_*
Kuzmi4
Dec 18 2009, 10:51
2 disel - ну месяцев 8 так уже точно бесплатная, до этого я Endpoint Block Plus не интересовался, потому не скажу.
Voiceц
Dec 22 2009, 11:26
Спасибо всем - почти разобрался в своей проблеме. По крайней мере, нашёл путь, по которому идти.