
Загружаем bitstream из Linux через FPGA Manager на Zynq-7000
FernandesKA 1 минуту назад Загружаем bitstream из Linux через FPGA Manager на Zynq-7000 Средний 22 мин 0 FPGA * Linux * Системное программирование * Туториал Добрый день! В прошлой статье мы рассматривали настройку...
Anthropic — What company has the best second artificial intelligence model at the end of June?
Значимый прорыв формирует отрасль ИИ: FernandesKA 1 минуту назад Загружаем bitstream из Linux через FPGA Manager на Zynq-7000 Средний 22 мин 0 FPGA * Linux * Системное программирование * Туториал Добрый день! В прошлой статье мы рассматривали настройку Buildroot для кастомной платы на базе Zynq-7000. В результате мы получили минимальную Linux-систему, настроили аппаратную платформу в Vivado и успешно загрузили собранный образ на целевое устройство.
До этого момента PL-часть почти не трогали. На первых этапах bring-up это нормально: bitstream обычно шьют через JTAG или кладут в boot раздел, чтобы PL конфигурировалась ещё до старта Linux. Такой подход удобен для первоначальной отладки, но не всегда подходит для реальных проектов, если планируется в процессе работы менять bitstream.
Технические детали
Для этого в Linux есть подсистема FPGA Manager. На практике часто возникает необходимость конфигурировать PL уже после запуска Linux. Например:обновлять FPGA-логику без перепрошивки всей системы;динамически подключать различные аппаратные модули;использовать несколько вариантов bitstream для разных режимов работы устройства;выполнять частичную или полную реконфигурацию FPGA во время работы системы.
Поддержка partial reconfiguration зависит от конкретного драйвера, версии ядра и vendor flow. В этой статье рассматривается обычная full reconfiguration на Zynq-7000. В этой статье мы разберём:зачем может понадобиться Device Tree Overlay;какие kernel options нужны для FPGA Manager и overlay-сценариев;как загрузить bitstream после старта Linux;как завернуть загрузку bitstream в C++-утилиту.
В качестве примеров будем использовать платформу Zynq-7000 и Buildroot, настроенный в предыдущей статье. В этой статье фокус будет на Zynq-7000. Для ZynqMP общий подход похож, но детали загрузки и требования к firmware-стеку отличаются, поэтому их лучше разобрать отдельно.
Отраслевые последствия
В этой статье я не буду разбирать полноценный overlay. Здесь покажу только, как fpga_loader оборачивает configfs-интерфейс. Формирование DTS overlay, нюансы использования стоит рассмотреть отдельно, т.
это довольно большое количество материала. Перед полной реконфигурацией PL нужно убедиться, что PS/Linux не обращается к устройствам в PL: остановить userspace, отвязать/выгрузить драйверы, отключить DMA, quiesce AXI-транзакции, убрать overlay или хотя бы гарантировать отсутствие активных обращений. Иначе можно получить bus hang, зависание ядра или device timeout.
Полезные материалы по теме: ManagerПеред дальнейшими действиями полезно понять, как Linux вообще программирует FPGA. Исторически загрузка bitstream выполнялась загрузчиком или внешним программатором. Однако по мере распространения SoC FPGA, таких как Zynq и Zynq UltraScale+, в ядре Linux появился универсальный фреймворк FPGA Manager.
Событие, по словам экспертов, усилит конкуренцию в сфере ИИ.





