Перейти к содержанию
    

UPD:

 

Решил проблему компиляцией с сохранением переменных в NAND. Поднял tftp, закинул на сервер юбут. Затем run update_nand_full.

 

Куда двигаться дальше? Device Tree? собирать линукс?

 

Device Tree это составная часть сборки ядра. Надо поместить адро туда, откуда юбут берет ядро и загружает его, а еще надо создать партишн в оставшейся части диска, отформатировать ее и разместить там "корневую файлофую систему", которую ядро смонтирыет в корневую директорию.

 

Можно собрать ядро и корневую файловую систему, а можно и взать где-нибудь готовые. Неужели никто еще не собирал подобную систему?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Куда двигаться дальше? Device Tree? собирать линукс?

Ваша версия uboot поддерживает device tree ?

Прежде чем собирать ядро выясните:

* наличие скомпилированного ядра линукс от производителя

* конфиг под вашу плату от производителя

* исходники ядра под вашу плату

* зачем вам пересобирать ядро

 

с неправильным конфигом ядро с 90% вероятностью не заработает

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прежде чем собирать ядро выясните:

* наличие скомпилированного ядра линукс от производителя

* конфиг под вашу плату от производителя

* исходники ядра под вашу плату

* зачем вам пересобирать ядро

 

Хочу сделать свою плату + Образовательные цели. Я как контроллерщик привык разбираться в работе систем почти до "бегающих в полупроводниках электронов". Конечно, писать все с нуля глупо, но подробно разобраться в механизмах встраиваемых систем на линуксе считаю для себя нужным. Адресация по шинам, мультиплексирование и подтяжка выводов, драйвера устройств, вот это всё.

 

Device Tree это составная часть сборки ядра. Надо поместить адро туда, откуда юбут берет ядро и загружает его, а еще надо создать партишн в оставшейся части диска, отформатировать ее и разместить там "корневую файлофую систему", которую ядро смонтирыет в корневую директорию.

 

В юбуте есть переменная окружения mtdparts=gpmi-nand:1664k(bootloader)ro,256k(environment),128k(fdt),5m(kernel),-(rootfs) Это оно?

Как я понимаю, скомпилированный dtb надо аналогичным юбуту способом залить в nand на свое место?

Изменено пользователем vgovseychuk

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я тоже начинал как контроллерщик :) А еще раньше как электронщик.

 

Если и не оно то отношение имеет. Не понятно еще откуда берутся адреса.

 

Если у вас юбут бежит, то остальное вы можете залить через него. Это как альтернатива.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я тоже начинал как контроллерщик :) А еще раньше как электронщик.

А кто Вы сейчас?

Риелтор?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А кто Вы сейчас?

Риелтор?

 

Счетчик контроллеров на плате. Больше 99 поставить не могу. Фантазии не хватает.

 

Кстати перечитал первый постинг топика. Я использовал LTIB. С него Фрискейл уже соскочил, но процессор не новый и может стоит попробовать? Он построит вам бутлоадер, ядро пропатчит и построит. Построит файловую систему.

Он сам скачает правильные исходники и оставит на вашей рабочей машине, сконфигурирует кросскомпилятор.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

С бутлоадером более-менее разобрался, даже линукс завелся. Но у меня проблема с записью на NAND.

 

В коде бутлоадера есть такая команда:

 

"update_nand_full=" /* Update FCB, DBBT and FW */ \

"if tftp ${update_nand_full_filename} ; then " \

"run update_nand_get_fcb_size ; " \

"nand scrub -y 0x0 ${filesize} ; " \

"nand write.raw ${loadaddr} 0x0 ${fcb_sz} ; " \

"setexpr update_off ${loadaddr} + ${update_nand_fcb} ; " \

"setexpr update_sz ${filesize} - ${update_nand_fcb} ; " \

"nand write ${update_off} ${update_nand_fcb} ${update_sz} ; " \

"fi\0"

 

Она сохраняет бутлоадер, но походу затирает партишн. И наоборот, когда записываю в nand по партишону rootfs, kernel и fdt, отказывается запускаться бутлоадер.

Партишн такой:

 

"mtdparts=mtdparts=gpmi-nand:" \

"3m(bootloader)ro," \

"256k(environment)," \

"128k(fdt)," \

"5m(kernel)," \

"-(rootfs)\0" \

 

Попытался переписать команду обновления и сохранения в память:

"update_nand_bootandenv=" /* Update bootloader and environment VOVS*/ \

"if tftp ${update_nand_firmware_filename} ; then " \

"nand erase.part ${bootloader}; " \

"nand erase.part ${environment}; " \

"nand write ${loadaddr} ${bootloader} ${filesize} ; " \

"saveenv\0" \

 

Но она не заработала. Кто-нибудь сталкивался с этим? Кстати, странно, что нет команды write.part, хотя erase.part и scrub.part есть :laughing:

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И в чем отличия u-boot.sb от u-boot.nand?

 

Если я делаю run update_nand_full, то заливается u-boot.nand, который делает утилита mxsboot из u-boot.sb. Однако, его размер 3Мб, и при записи в NAND он затирает нужные разделы.

Если я делаю run update_nand_firmware, то заливается u-boot.sb размером 532кб, но убут не стартует.

 

UPD:

Переразметил флешку с запасом. Все работает. Всем Спасибо.

Изменено пользователем vgovseychuk

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Получилось свежий uboot на 287 запустить? Сколько размер итогового файла? Если не сложно конфигом поделитесь?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...