а вообще в ядре код для imx6 quad и imx6 dual объединены, платы с этими процессорами обозначают как imx6q-xxxx. imx6 dual lite и imx6 solo объединены в другую ветку и платы обозначают как imx6dl-xxx. Какой DTB у какой холы можно увидеть в файле boards.cfg в корне исходников убута
в ядре собираются DTB файлы для всех плат и они лежат в /boot - полученную корневую можно загрузить на любой плате, загрузчик конкретной платы "знает" свой DTB файл из конфига и загрузит нужный, имидж ядра (zImage) для всех один и тот же.
Например: есть плата HolaDual-PC с плагом VCEB, надо собрать убут "вручную" отдельно от буилдрута, в исходниках убута конфигурация выполняется так
make ARCH=arm CROSS_COMPILE=$GCC hola_dual_vceb_config
полная строка в boards.cfg для этого конфига выглядит так
Active arm armv7 mx6 starterkit hola_imx6 hola_dual_vceb hola_imx6:IMX_CONFIG=board/starterkit/hola_imx6/hola_dual.cfg,MX6Q,DDR_MB=1024,DEFAULT_FDT_FILE="imx6q-hola-vceb.dtb" Pavel Ivanchenko <info@starterkit.ru>
из bords.cfg пареметр
DEFAULT_FDT_FILE="imx6q-hola-vceb.dtb"
подствляется в файл конфигурации (include/configs/hola_imx6.h) в виде
CONFIG_DEFAULT_FDT_FILE=imx6q-hola-vceb.dtb
в переменных окружения в строке
"dtbfile=" CONFIG_DEFAULT_FDT_FILE "\0" \
в результате переменная окружения dtbfile принимает значение еще на этапе сборки
dtbfile=imx6q-hola-vceb.dtb
убут в итоге прочитает с носителя нужный DTB
"ext2load mmc 0:1 ${dtbaddr} /boot/${dtbfile};" \
тут подстановка выполнится в момент исполнения команды mmc_boot
Исходники (с окончанием dts) в ядре находятся в директории
Немного про hola(dual) специфичный первый запуск u-boot. На холах у отладочного uarta (ttymxc0) нет преобразователя уровней, переменнные окружения убута можно изменить из корневой ФС утилитами u-boot, в buildroot это включается тут
в скрипте buildroot-2014.08-sk/board/starterkit/imx6sk-min/post-build.sh
копируется в будущую корневую систему для него конфиг в /etc/fw_env.config - там прописано устройство на котором хранятся переменные окружения убута, смещение и размер
# fw_setenv video "video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24 dmfc=3"
при первом старте убута встроенные дефолтные переменные окружения копируются на носитель чтобы они были доступны для этих утилит, поэтому такая странная команда запуска в конфиге hola_imx6.h
"bootcmd=setenv bootcmd 'run mmc_boot'; saveenv; run bootcmd\0"
эта команда будет выполнена только один раз при первом старте - после этого в переменных окружения команда bootcmd примет нормальный вид
Сделал в VirtualBox сборку buildroot-2014.08 по рекомендациям из первого поста. Сборку делал для модуля SK-iMX6S-OEM. Процесс сборки занял чуть более суток и прошёл без ошибок. После окончания процесса в папке /buildroot-2014.08-sk/output/images появились файлы rootfs.tar.gz и u-boot-nand.imx, но не появился ожидаемый мной файл uImage. Первые два файла я скопировал в папку ~/tftp и переименовал u-boot-nand.imx в u-boot.imx.
Можете пояснить каким побразом я могу обновить в модуле загрузчик, ядро и КФС?