ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
3 декабря
1291806 Топик полностью
klen (13.03.2023 01:19, просмотров: 368) ответил klen на попробовал под xubuntu 22.04.2 поднять Xilinx ISE_DS Lin 14.7 1015. чтоб заработал "programming cable" плясал в вприпрыжку с утра. таки завел. пришлось драйвер написать. это только у меня такой трах? инструкции из инета не помогли - в конце понял, интерфейс libusb изменился.
фсьёоо... подвиг выходного дня закончен. дописал драйвер для "хilinx programming cable usb" устройств для наисвежайших linux. он автоматом ищет девайс и ничего не нужно чупыхатся и настраивать. 



Vivado ... я думал Windows как програмный продукт дно.. наверно Vivado - дно. а Vivado на Windows .. нижнее днище

поэтому пока буду использовать ISE


в общем и целом


А. установка "программатора"


0. поставить стандартным способом ISE WebPack

1. поставить пакет fxload - это софтина котрая на лету зашивает EZ-USB устройства, как я теперь понимаю на них все эти USB xilinx программаторы и сделаны, и клоны тоже.

2. просунуть все файли из папки ISE_WebPack_DIR/14.7/ISE_DS/ISE/bin/lin64/*.hex в /usr/share/

конкретно вот список их имен

xusbdfwu.hex

xusb_emb.hex

xusb_xlp.hex

xusb_xp2.hex

xusb_xpr.hex

xusb_xse.hex

xusb_xup.hex


3. просунуть в /etc/udev/rules.d/ файл 99-xusbdfwu.rules

на всякий случай его содержание

# version 0003
ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="0008", MODE="666", GROUP="plugdev", SYMLINK+="kgp/xpcu"
SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="0007", RUN+="/sbin/fxload -v -t fx2 -I /usr/share/xusbdfwu.hex -D $tempnode"
SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="0009", RUN+="/sbin/fxload -v -t fx2 -I /usr/share/xusb_xup.hex -D $tempnode"
SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="000d", RUN+="/sbin/fxload -v -t fx2 -I /usr/share/xusb_emb.hex -D $tempnode"
SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="000f", RUN+="/sbin/fxload -v -t fx2 -I /usr/share/xusb_xlp.hex -D $tempnode"
SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="0013", RUN+="/sbin/fxload -v -t fx2 -I /usr/share/xusb_xp2.hex -D $tempnode"
SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="0015", RUN+="/sbin/fxload -v -t fx2 -I /usr/share/xusb_xse.hex -D $tempnode"

4. подключить программатор

в данный момент, "программатор еще не программатор", а просто тупое EZ-USB устройство. СВЕТОДИОДИКИ НЕ ГОРЯТ!

5. перегрузит "правила" udev - чтоб он подхватил новое устройство по описанию в 99-xusbdfwu.rules

sudo udevadm trigger

в момент применения нового udev-правила из 99-xusbdfwu.rules udev по средством утилиты fxload на лету зальет нужную прошивку и преврати "программатор в программатор типа Xilinx programming cable II", то есть XCPU. СВЕТОДИОДИКИ ГОРЯТ!


c этого момента XCPU готов к работе с impact и повторять от запуска к запуску больше ничего не нужно. подозреваю что для Vivada процедура аналогичная.


Б. запуск impact

1. собственно "драйвер" котрый реализует интерфейс между impact и XPCU устройством libusb-driver.so

я его сделал и собрал полностью монолитным чтобы было по минимуму внешних зависимостей типа libusb и тд, которые в данном случае устанавливать и не нужно! (но это не точно - нужно проверять)

klen@klen-station:/klen/tools/extern/xilinx/driver/xilinx-usb-driver-0.1$ ldd libusb-driver.so 
	linux-vdso.so.1 (0x00007ffcf0382000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f1c71bba000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f1c71e17000)


2. запуск

cd ISE_WebPack_DIR/14.7/ISE_DS
export LD_PRELOAD='{полный путь где он лежит}/libusb-driver.so' ./settings64.sh ISE/bin/lin64/impact


В. наслаждаемся бесплатным гоневом на старых xilinx плисинах..... а кто то не очень честный но патриотичный (который ложил хуй на пиндосовские лицензии) - прыгает на всех новых и жирных микросхемах что сможет закупить.


если кому поможет - буду рад, если нет - обращайтесь(возможно потребуется на Вашей машине локально собрать libusb-driver.so, тогда дам исходники и помогу это сделать), пинками затолкаем...