Это — старая версия документа!
U-Boot использует образы, создаваемые программой mkimage, сборка которой выполнятся при сборке U-Boot (см. <u-boot>/tools/mkimage) и которую, вероятно, можно поставить из пакета uboot-mkimage вашего дистрибутива GNU/Linux.
mkimage добавляет 64 байта информации: название, контрольную сумму и пр.
Для отображения информации об образе:
mkimage -l <img>, где <img> — название файла образа.<addr>:iminfo <addr>imls
Скопируйте программу mkimage в одну из директорий указанных в переменной окружения PATH (см. echo $PATH)
или измените её значение (например, export PATH+=:/path/to/mkimage_dir). После этого вы можете для сборки ядра и
создания из собранного ядра образа U-Boot выполнять make uImage.
Также вы можете создать образ из командной строки, см. встроенную помощь mkimage -h.
mkimage -n 'Ramdisk name' -C gzip -A arm -O linux -T ramdisk -d ramdisk.gz uramdisk.gz,
 где 'Ramdisk name' — название КФС, ramdisk.gz — название файла сжатого образа КФС, uramdisk.gz — название создаваемого образа U-Boot.
Для записи созданного образа ядра или КФС во Flash требуется:
Для получения из образа U-Boot оригинального файла у файла образа нужно убрать начальные 64 байта, например:
dd if=uImage of=zImage bs=1 skip=64
Список переменных и их значения отображаются командой printenv.
Для вывода значения отдельной переменной используйте команду printenv <var>, где <var> — название переменной.
При запуске U-Boot, после задержки, выполняет команды содержащиеся в переменной bootcmd.
Несколько команд могут быть разделены символом ';'.
Задержка при загрузке задаётся переменной bootdelay.
Параметры передаваемые ядру (cmdline) задаются переменной bootargs.
Идентификатор ядра machid задаётся переменной machid, указывается шестнадцатеричное значение без префикса.
Сохранение переменных во Flash выполняется командой saveenv. При её выполнении автоматически снимается и устанавливается защита от записи сектора Flash, в котором хранятся переменные.
Пример вывода команды:
$ saveenv Saving Environment to Flash... . done Un-Protected 1 sectors Erasing Flash... . done Erased 1 sectors Writing to Flash... done . done Protected 1 sectors
При загрузке ядра и КФС U-Boot проверяет контрольную сумму (КС, CRC). Если подсчитанная КС не совпадает с КС подсчитанной при создании образа, выполняется перезагрузка.
Проверка КС может быть отключена установкой переменой verify значения no.
Заметьте, что при отключённой проверке КС и программной перезагрузке из ОС вы можете получить нерабочую систему (или с очень странным поведением), так как может быть выполнен запуск с повреждённым образом ядра и/или КФС.
Проверка КС кода самого U-Boot не выполняется.
Прочесть переменные U-Boot из Linux можно программой fw_printenv, см. <u-boot>/tools/env. Конфигурация задается файлом /etc/fw_env.config.
Пример файла конфигурации для Тион, Тион-Про:
# MTD dev name Dev. offset Env. size Flash sector size /dev/mtd0 0x40000 0x40000 0x40000
Пример чтения переменой ethaddr:
fw_printenv 2>/dev/null | grep ethaddr | grep -o -E ".{2}:.{11}:.{2}"
Если на плате есть наклейка "MAC: …", то это плата с IAB (JSC Electrical Equipment Factory) MAC-адресом, который можно смело использовать на этой плате.
Для плат на базе процессора:
download (параметр -n), читается из неё в U-Boot  (начиная с svn890 задаёт значение переменной ethaddr) и в драйвере Ethernet в Linuxethaddr переменной окружения U-Boot и передаётся Linux через serial number tag (начиная с svn886)
Отображение информации о Flash – команда flinfo.
Идентификатор Flash задаётся переменной mtdids, например, значением nor0=flash.
Разделы задаются переменной mtdparts, например, три раздела 512 kB, 4 MB и оставшееся место: mtdparts=flash:512k(u-boot)ro,4m(kernel)ro,-(fs).
Команда mtdparts выводит список текущих разделов, например:
$ mtdparts device nor0 <flash>, # parts = 3 #: name size offset mask_flags 0: u-boot 0x00080000 0x00000000 1 1: kernel 0x00400000 0x00080000 1 2: fs 0x01b80000 0x00480000 0 active partition: nor0,2 - (fs) 0x01b80000 @ 0x00480000
Команда ls выводит содержимое ФС JFFS2 для раздела указанного командой chpart (в переменной partition), например, nor0,2.
Командой protect off выполняется снятие программной или аппаратной защиты от записи или стирания Flash. Например, защиту с раздела nor0,2 можно снять командой:
protect off nor0,2
Командой erase выполняется стирание содержимого Flash. Например, перед записью КФС размещённой на разделе nor0,2 требуется стереть содержимое этого раздела полностью командой:
erase nor0,2
См. также команды fsinfo, fsload.
Для заставки используется изображение в формате bmp с индексированной палитрой из 256 цветов.
Для преобразования изображения можно воспользоваться GIMP.
Адрес изображения указывается в переменой splashimage.
Если по указанному адресу изображение не распознано, то отображается логотип.
Экран очищается командой cls, при этом отображается логотип вместо заставки, но палитра остаётся без изменения.
Перенаправление вывода консоли на экран:
 setenv stdout lcd
При использовании (U-Boot 2010.09 из Git-репозитория ниже и U-Boot 1.3.3 начиная с svn598 патчей для плат на основе EP93xx) тип дисплея
задаётся переменной panel:
| Дисплей | <val> | 
|---|---|
| VGA | vga | 
| 3.5" (320x240) | 3.5 | 
| 5.7" (640x480) | 5.7 | 
| 8" (640x480) | 8 | 
| 8" (800x600) | 8-800x600 | 
|  8"   (800x600) A080SN01  | 8-800x600n | 
Указанный дисплей используется после сброса (переменную panel следует сохранить).
Для отображения фона и символов используется нулевой и 15-ый цвета палитры, соответственно.
Для Тион-Про2.
Git репозиторий: http://zao-zeo.ru/media/files/u-boot/u-boot-2010.09-zeo.git
Бинарный файлы загрузчика.
| Файл | Размер | Изменение | 
|---|---|---|
| u-boot-2010.09_tion-pro2_ga313ade6e1922212cf2c4ea83e3bb0e7ff4a2210.bin | 167980 | 2011/11/25 17:02 | 
| md5.sum | 105 | 2011/11/25 17:03 | 
Для Тион270, Тион-Про270 (rev.2 и ранее).
Бинарные файлы загрузчика.
| Файл | Размер | Изменение | 
|---|---|---|
| u-boot-2010.03_tion270-pxa270-series_zeo551b5cfb539639540ccf7a0fc6f1d02516d8347f_bin.tar.gz | 660000 | 2013/09/25 16:21 | 
| Файл | Размер | Изменение | 
|---|---|---|
| u-boot-2010.03_zeo551b5cfb539639540ccf7a0fc6f1d02516d8347f.patch.gz | 14963 | 2013/09/25 16:24 | 
Для Тион-Про28.
| Файл | Размер | Изменение | 
|---|---|---|
| u-boot_2009.8_tion-pro28_svn2200.tar.gz | 1220 | 2013/03/25 20:58 | 
| u-boot_2009.8_tion-pro28_freescale_svn2200.tar.gz | 506187 | 2013/03/25 20:58 | 
Бинарные файлы загрузчика.
| Файл | Размер | Изменение | 
|---|---|---|
| u-boot-1.3.3_svn894_tion-ep93xx-series_bin.tar.gz | 246667 | 2010/03/05 15:28 | 
| u-boot-1.3.3_svn886_tion270-pxa270-series_bin.tar.gz | 1648126 | 2010/06/25 14:22 | 
| u-boot-1.3.3_svn602_tion-ep93xx-series_bin.tar.gz | 242691 | 2010/01/31 19:21 | 
| u-boot-1.3.3_svn381_tion270-pxa270-series_bin.tar.gz | 340419 | 2010/01/31 19:21 | 
| u-boot-1.3.3_svn349_tion-ep93xx-series_bin.tar.gz | 174072 | 2010/01/31 19:21 | 
Патчи для исходных кодов. Файл логотипа zeo.bmp следует скопировать в директорию tools/logos исходных кодов.
| Файл | Размер | Изменение | 
|---|---|---|
| u-boot-1.3.3_tion-tion270-series_svn894_201002151634.tar.gz | 49724 | 2010/02/15 18:57 | 
| u-boot-1.3.3_tion-tion270-series_svn775_200910071153.tar.gz | 47060 | 2010/01/31 19:21 | 
| u-boot-1.3.3_tion-tion270-series_svn602_200906161802.tar.gz | 45192 | 2010/01/31 19:21 | 
| Файл | Размер | Изменение | 
|---|---|---|
| zeo.bmp | 15542 | 2010/01/31 19:21 | 
Оригинальный исходный код U-Boot 1.3.3.
Скрипты для упрощения записи Linux и КФС. В файле скрипта должно использоваться Unix-разделение строк, см. статью "новая строка" в Wikipedia
| Файл | Размер | Изменение | 
|---|---|---|
| u-boot_scripts_svn402.tar.gz | 1189 | 2010/01/31 19:21 | 
1. Проблема с работой по 10 Мбитной сети (таймауты), по крайней мере с платами на основе Marvell PXA270.
2. Если в bootargs указывать переменную, например, bootargs '${nfsroot}', то
вместо этой переменной не подставляется её значение при передачи параметров ядру.
Требуемое можно сделать указав дополнительно в переменной bootcmd setenv bootargs ${bootargs} ${nfsroot}