LINUX.ORG.RU

рецепт приготовления xilinx platform cable usb II

 , , ,


0

1

В продолжении вчерашней темы. На целевой платформе нужно завести impact чтобы закидывать обновления прошивки плисины. Xilinx любезно свои поделки делает «кроссплатформенными», но вот у меня почему то не заводится. Нужен рабочий рецепт чтобы все это взлетело. То что лежит в сети нифига не работает. Поделки самого xilinx-а так же не работают (модули его windrv не собираются по, такое ощущение что не осилили нормальную сборку драйвера, а копаться в их говноскриптах никакого желания нет).
до этого так же заводил все для altera, там мышкой пару раз ткнул и все взлетело и синтез и usb-blaster, вообще без каких либо телодвижений.

ЗЫ. забыл указать ISE версии 14.7, ядро 3.10.17

★★★

В каталогах где установлен ISE есть прошивки для программатора и правила для udev. Где точно лежат файлы я не помню (что-то вроде /path/to/ISE/bin/lin64/). Прошивки (xusb*.hex) надо закинуть в /usr/share + установить тулзу fxload. Правила для udev (xusb*.rules) там используют старый синтаксис, надо конвертнуть под новый и закинуть в /etc/udev/rules.d. Потом, тулзы xilinx используют libusb-0.1, при этом библиотека обязательно должна называться libusb.so, можно сделать симлинк там где лежат библиотеки от ISE. Вроде это все.

P.S. Топик месячной давности, так что это может уже не актуально.

oh-la-la ()
Ответ на: комментарий от oh-la-la

Еще как актуально! Правда сейчас проверить возможности нет, в отпуцке. Через недельку выйду попробую. Спасибо.

yax123 ★★★ ()

То что лежит в сети нифига не работает

Всё работает.

tailgunner ★★★★★ ()
Ответ на: комментарий от oh-la-la

Добрался таки я до работы.
Потихоньку стало понятно в чем вообще затыки.
Как я понял при втыкании «красной коробки» в нее нужно загрузить прошивку. Чего у меня в линуксе не происходит (даже прописав все, что нужно и куда нужно). Если воткнуть коробку в венду с установленной ISE, то там коробка прошивается и после этого уже в линуксе она почти что видится как надо и даже можно залить прошивку в ПЛИСс (правда скорость этого действия в 7 раз примерно медленней чем в винде из под виртуалки).

Elapsed time = 281 sec. // Linux
Elapsed time = 40 sec. // Win7+VBox

Правила udev я канешна добью. Но такое снижение производительности меня нисколько не радует.
Хотя если проблема в том что win использует другую прошивку, которая для линукса не так эффективна.
Можете сказать как быстро у вас заливается ваша прошивка?

yax123 ★★★ ()
Ответ на: комментарий от yax123

Я вобще не ПЛИСовик, просто приходилось заниматься. Про время заливки битстрима ничего сказать не могу, ибо у меня он грузится в составе линуксового загрузчика через qspi, tftp или с sd-карты (Zynq). Могу завтра проверить через jtag. Конкретно запись в память через jtag вполне нормальная (конкретных цифр не скажу было это с год назад, но uboot заливался в течение мб 30 сек.)

Вот тут (https://sites.google.com/a/cs.ship.edu/fpga/xilinx-tricks/xilinx-usb-issues) есть sed скрипт для перевода старого udev правила в новый формат. Так же не забудте установить fxload.

P.S. Там по ссылке еще пишут, что надо libusb-1.0, мб я вас спутал предыдущим постом, но мне почму-то казалось, что нужно именно 0.1. Завтра погляжу какая у меня версия.

oh-la-la ()
Последнее исправление: oh-la-la (всего исправлений: 1)
Ответ на: комментарий от yax123

Я посмотрел. Zynq прошивается через jtag за 10 сек. Прошивка ~4 мега. И да, я не ошибся, там старая libusb.

Как я понял при втыкании «красной коробки» в нее нужно загрузить прошивку. Чего у меня в линуксе не происходит (даже прописав все, что нужно и куда нужно). Если воткнуть коробку в венду с установленной ISE, то там коробка прошивается и после этого уже в линуксе она почти что видится как надо и даже можно залить прошивку в ПЛИСс

При подключении программатора отрабатывает udev, загружая прошивку с помощью fxload. Если правила неправильно написны, то понятно ничего загружаться не будет.

oh-la-la ()
Ответ на: комментарий от oh-la-la

загружая прошивку с помощью fxload

к сожалению нигде толком не описано, что при подключении должна загрузиться прошивка и без этого ничего не будет работать.
Правила я поправил (правда в lowcase забыл сразу перевести TEMPNODE, поэтому сразу не взлетело).
По поводу скорости работы. Как я понял у меня почему-то автоматом ставится частота обмена по JTAG 750КГц, вместо 6 МГц. Как раз замедление в 8 раз. Но при попытке зайти в установки «кабеля» и поставить 6МГц при сохранении настроек получаю:
ERROR:iMPACT - Cable not found, ESN: 000013C0ECED01
Хотя перед этим успешно залил прошивку.
Кстати, открытие окна настроек «кабеля» (Output->Cabel Setup) происходит подозрительно долго.

yax123 ★★★ ()
Последнее исправление: yax123 (всего исправлений: 2)
Ответ на: комментарий от oh-la-la

Продолжаю наблюдения:
1. Перетыкаю «кабель», запускаю импакт. Все автматом находится, в статусной строке пишется что частота обмена 750КГц.
2. лезу в адвансет сабель сетап. Там вижу свой кабель, говорю по нему коннект, он говорит что успешно подключился и ставит частоту обмена по умолчанию (6МГц). Это же частота отображается в статусной строке внизу. При попытке прошится, шьется опять 280 сек. и после завершения прошивки в статусной строке 6МГц меняется на 750КГц.
У кого-нидь в линуксе получается шиться на максимальной скорости?

yax123 ★★★ ()
Ответ на: комментарий от oh-la-la

говорит это из-за локали.

Да чтоб этих мудаков разорвало. А мне выскакивали ошибки, что какое-то там число вне диапазона (похоже кто-то вещественные числа в строках хранит). Добавил в строку запуска LC_NUMERIC=«en_US.UTF-8» и сразу ускорение в 7.5 раз! А если поставить 12МГц то ваще за 22 сек. шьет!
Тему можно закрывать.
Подведу итог - рецепт таков:
1. Положить 51-xusbdfwu.rules в /etc/udev/rules.d и отредактировать до такого вида:

...
SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="0013", \
 RUN+="/sbin/fxload -v -t fx2 -I /usr/share/xusb_xp2.hex -D $tempnode"
...
(обратить внимание на регистр символов $tempnode)
2. установить fxload.
3. положить все прошивки в /usr/share/ (прошивки «кабеля» и udev-правила лежат в Xilinx/14.7/LabTools/common/bin/lin)
4. импакт запускать так: LC_NUMERIC=«en_US.UTF-8» ./impact

yax123 ★★★ ()
Последнее исправление: yax123 (всего исправлений: 1)
Ответ на: комментарий от yax123

Ну тулзы у них кривые, это точно. Могут на ровном месте упасть, какие-то вещи не работают корректно в 64-битной версии и т.д.

oh-la-la ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.