Комментарии 17
Спасибо за статью. Особенно полезно для разворачивания файловой системы. Только недавно подобная задача появилась. Но там сборка uboot, linux своим комплектом собранным buildroot.
В следующей статье как раз буду писать, как разом собирать всё из buildroot. У него есть все настройки и для ATF и для U-Boot и для всего остального кроме FSBL и PMUFW.
Просто когда задача заключается в том, чтобы работала в неизменяемой фс, то проблем нет. Cramfs в помощь. А вот когда у нас используется изменяем фс, то появляются проблемы с развертыванием
А не подскажите - пробовали ли вариант без sd карты? т.е. всё чисто на QSPI? Вроде как доки это позволяют просто интересно насколько это работоспособно.
Вполне работоспособно, разве что у вас FS будет readonly. Вернее, все изменения в рантайме вы в QSPI не запишете. А ещё на QSPI долго грузится прошивка. Прям сильно долго, я бы сказал. Думаю, полный образ (а это мегабайт 150) будет грузиться около часа
QSPI не для слабаков)
В общем, пока путь linux from stratch пройти не удалось ибо не вкурил в настройки uboot, но ради интереса запустил всё из QSPI собрав всё через Petalinux - проблем по скорости загрузки не заметил (где то 5 секунд для флешки подключенной через Dual Parallel)
На таких толстых флешках вполне себе можно развернуть полноценную rw файловую систему. Я периодически использую UBIFS - она еще дает неплохую экономию места засчет встроенного сжатия содержимого. При некоторых танцах с бубном можно эту фс сделать видимой и из u-boot.
Спасибо за статью. Жаль, что Zynq UltraScale фактически теперь недоступен. В отличии от того же Zynq-7000, который можно купить на Китайских стоках.
Есть вопрос в скрипте запуска указывалось устройство где лежит фс root="/dev/mmcblk1p2"
. К этому устройству потом примонтируется линукс на этапе запуске. Но не на всех платах имя именно такое. Есть ли какая-то закономерность в названии этого устройства? Или есть возможность предопределить имя?
К MMC на цинке, похоже, относятся интерфейсы SD0 и SD1. Если в SDT отключить интерфейс SD0, то имя будет "/dev/mmcblk0___". p2 означает второй раздел.
Если вы хотите грузить систему с, например, USB или SATA диска, то надо указать в devicetree соответствующий файл устройства. Конкретное имя не подскажу, но можете его найти в интернете или выяснить эмпирически - включая и выключая различные устройства в дереве.
Можно зафиксировать за интерфейсами конкретные номера. Можно почитать в обновлённом разделе Device Tree (продолжение).
Linux From Scratch на Zynq UltraScale+ MPSoC