Загрузить код FPGA из Zynqmp на периферийное устройство - PullRequest
0 голосов
/ 05 января 2019

У нас есть сложная встроенная система с процессором zynqmp под управлением Linux Xilinx и нескольких других периферийных устройств. Периферийные устройства имеют fpgas, и мы хотели бы программировать периферийные устройства на местах всякий раз, когда происходят изменения в коде fpga. Эти периферийные устройства имеют интерфейс jtag, а сигналы TAP отображаются в виде gpios в zynqmp.

Файлы fpga имеют формат svf, xsvf или другой формат. Я ищу код c / c ++, который может анализировать эти файлы и обновлять периферийные устройства.

У вас есть предложения?

Спасибо

Ответы [ 2 ]

0 голосов
/ 08 января 2019

Если периферийные устройства зарегистрированы как устройства и имеют соответствующие драйверы для доступа к ним, вы можете просто cat изображения для них.

Например, на Zedboard вы можете сделать следующее для программирования FPGA из Linux:

cat myfpgaimage.bit > /dev/xdevcfg

https://forums.xilinx.com/t5/Embedded-Linux/Zynq-Loading-bitfile-into-FPGA-from-Linux-xdevcfg/td-p/237850

0 голосов
/ 07 января 2019

«Периферийные устройства имеют ПЛИС». Это не имеет смысла для меня. Вы имеете в виду, что FPGA имеет периферийные блоки IP, верно? Я также предполагаю, что вы используете Yocto / OpenEmbedded, поскольку именно так Xilinx обеспечивает поддержку Linux BSP.

Xilinx SDK должен был сгенерировать HDF, который потребляется в процессе сборки Yocto. BOOT.bin - это то, что настраивает ПЛИС, я верю, однако я не уверен во внутренностях. Вы можете взглянуть на meta-updater или meta-mender для вашего подхода к обновлению OTA. Чтобы запрограммировать IP-блоки стороны FPGA в поле, обновите BOOT.bin вместе с ядром и деревом устройств. Рекомендую двойную проверку с помощью Xilinx FAE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...