Comments 9
О, я правильно попял, что vitis тут не используется от слова совсем, т.е. на скриптовом уровне тоже? В таком варианте, получается, что при обновлении xsa с переферией для которой нужен драйвер, нужно руками делать запись в device tree?
У себя я оставлял окружение чисто для генерации dt и ещё по мелочи, что бы не лезть туда руками. Ядро и rootfs тоже строились отдельно.
fsbl_pmu_2020.sh Скрипт, создающий проект по умолчанию в Vitis и собирающий первичный загрузчик и pmu (Требуется Vivado, Vitis от 2020)
Но если не используется petalinux - уже праздник.
Спасибо! Всё сразу не учёл, в ручную тоже делали.
Подредактировал скрипты и обновил статью, сейчас dt c overlay берутся из ./configs/dts для ядра и UBoot. Как правило, из сгенерированных dt периферии можно сделать dtsi либо, в зависимости от того, что получилось - скопировать нагенерированное целиком.
Сейчас для использования своих dt требуется, например, для zynqmp-zcu106-custom:
Поместить их исходники (dts, dtsi и если необходимо - .h) в ./configs/dts
Добавить dtb в цели /configs/dts/Makefile.in
dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-zcu106-custom.dtb
Указать в defconfig UBoot (./configs/uboot/xilinx_ulrascale_debug_defconfig) :
CONFIG_DEFAULT_DEVICE_TREE="zynqmp-zcu106-custom"
В файле формирования образа указать копируемый dtb:
cp ${WORK}/linux-xlnx/arch/arm64/boot/dts/xilinx/zynqmp-zcu106-custom.dtb ./system.dtb
Заголовочек поправьте. Архитектура не соответствует;)
Благодарю за статью!
Автосборка Fsbl, U-Boot, linux kernel и установка debian для arm64 для Zynq Ultrascale zcu106