имеется контроллер mini2440 c установленным u-boot загрузчиком (не важно в NOR или NAND)
Допустим Вам захотелось в полный экран показывать картинку-заставку при работе u-boot (это время между включением и началом загрузки ядра ~ 7 сек)
Сразу скажу что с началом загрузки ядра картинку тоже можно показывать, причем в ядре даже движущуюся.
Если говорить о анимации по факту можно вывести две картинки одну при старте загрузчика, другую непосредственно до начала старта ядра (через 3 сек.)
итак как это делается:
- подключаем mini2440 serial и USB портами
- получаем в одной консоли доступ на mini2440 в другой работаем по конфигурации и сборке на x86 линуксе
-  кросс компилятор для архитектуры armv4tl-softfloat-linux-gnueabi должен быть настроен в x86 линуксе (читай предыдущие статьи как это сделать)
-  получаем текущий репозитарий u-boot и устанавливаем окружение кросс компиляции. 
 cd ~
 mkdir uboot ; cd uboot
 git clone
 export CROSS_COMPILE=armv4tl-softfloat-linux-gnueabi-
 cd mini2440
-  качаем из вложения патч, выкладываем в корне папки сборки u-boot и накладываем патч 
 calculate mini2440 # patch -p1 < ./u-boot-splash.patchpatching file board/mini2440/mini2440.c
 patching file drivers/video/Makefile
 patching file drivers/video/cfb_console.c
 patching file include/configs/mini2440.h
 для успешной сборки удостоверьтесь что новый файл видеодрайвера из архива (drivers/video/s3c2440_fb.c) лег в нужую папку
-  собираем модифицированный u-boot :
 make mini2440_config
 make all
- включаем mini2440 (любой режим NOR/NAND в котором уже есть обычный u-boot) загружаемся в u-boot консоль - прерываем загрузку
-  меняем переменную окружения указывающую как разбивать NAND разделы
 MINI2440 # setenv mtdparts mtdparts=mini2440-nand:384k@0(u-boot),128k(u-boot_env),5m(kernel),256k(splash),-(rootfs)
 MINI2440 # mtdpartsdevice nand0 <mini2440-nand>, # parts = 5
 #: name size offset mask_flags
 0: u-boot 0x00060000 0x00000000 0
 1: u-boot_env 0x00020000 0x00060000 0
 2: kernel 0x00500000 0x00080000 0
 3: splash 0x00040000 0x00580000 0
 4: rootfs 0x07a40000 0x005c0000 0
 active partition: nand0,0 - (u-boot) 0x00060000 @ 0x00000000
 defaults:
 mtdids : nand0=mini2440-nand
 mtdparts: <NULL>
-  заливаем с хоста новый образ загрузчика
 dfu-util -a 0 -D ./u-boot.binMINI2440 # DFU: Switching to DFU Mode
 Starting DFU DOWNLOAD to RAM (0x32000000)
-  на контроллере стираем место под старый загрузчик и заменяем его новым
 MINI2440 # nand erase u-bootNAND erase: device 0 offset 0x0, size 0x60000
 Erasing at 0x40000 -- 100% complete.
 OK
 MINI2440 # nand write 0x32000000 u-bootNAND write: device 0 offset 0x0, size 0x60000
 393216 bytes written: OK
-  можно перегружать mini2440. 
 пока в разделе splash нет требуемой картинки на экран будет выведена маленькая иконка пингвинчика 
-  после перезагрузки контроллер ругнется на отсутствие правильных переменных окружения.
 восстановим их:
 MINI2440 # dynpart
 MINI2440 # dynenv set u-boot_env
 MINI2440 # saveenv
-  теперь загрузим на контроллер правильную (230x320x24bit BMP) картинку:
 dfu-util -a 0 -D ./RoboForum_Logo_240_320.bmp
 MINI2440 # bmp info 0x32000000NAND read: device 0 offset 0x580000, size 0x40000
 262144 bytes read: OK
 MINI2440 # bmp info 32000000
 Image size : 240 x 320
 Bits per pixel: 24
 Compression : 0
- проверим что она вообще может отобразиться:
 MINI2440 # bmp display 0x32000000
-  если всё в порядке записываем картинку в раздел splash (NAND)
 MINI2440 # nand write 0x32000000 splash
 готово
 
-- все косяки которые я словил и исправил допишу завтра --


 
 

 а можно про резервирование и патчи более простым языком описать?
 а можно про резервирование и патчи более простым языком описать?