Этот способ более кардинальный чем установка u-boot в NAND и мы не рискуем получить "кирпич" на руках даже в случае стирания области NAND содержащей код загрузчика.
Предварительно рекомендую ознакомиться и попробовать смену загрузчика в NAND forum96/topic8397.html
Это даст навык работы с командами u-boot
Для прошивки нам потребуется:
1. компьютер с аппаратным LPT портом и любой операционной системой windows
(возможно существуют аналоги для других ОС но поскольку такая прошивка обычно делается один раз за жизнь устройства, я не стал заниматься их поисками)
2. программа флешер :
3. программатор LPT-JTAG из комплекта mini2440
Описывать процесс самой прошивки я не буду, она достаточно подробна в картинках освещена в конце приложенного PDF
к описанию добавлю что прошивка ведётся в режиме NOR и самым первым действием нужно сменить тип программатора с USB на LPT
всё остальное строго по картинкам ровно до выбора файла прошивки.
далее у вас есть два варианта
первый более прост, кардинален и современен, из возможных моральных неудобств в результате его использоваия аплоад файлов на устройство будет возможен только посредством dfu-util (не будут работат usbpush и win dnw).
вся хитрость в использовании современной прошивки u-boot:
на этом первый способ завершен работаем и наслаждаемся
второй гораздо более геморойный, но использование старой версии позволяет загружать файлы через usbpush и win dnw
нужно использовать старую прошивку : (старая прошивка u-boot 179444 байта с диска /OpenSourceBootloader/u-boot.bin )
и после смены прошивки произвести такое шаманство:
NOR режим
U-Boot 1.1.6 (Oct 27 2008 - 06:45:29)
DRAM: 64 MB
Flash: 1 MB
NAND: 128 MiB
*** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serial
UPLLVal [M:38h,P:2h,S:2h]
MPLLVal [M:5ch,P:1h,S:1h]
CLKDIVN:5h
+---------------------------------------------+
| S3C2440A USB Downloader ver R0.03 2004 Jan |
+---------------------------------------------+
USB: IN_ENDPOINT:1 OUT_ENDPOINT:3
FORMAT: <ADDR(DATA):4>+<SIZE(n+10):4>+<DATA:n>+<CS:2>
NOTE: Power off/on or press the reset button for 1 sec
in order to get a valid USB device address.
Hit any key to stop autoboot: 0
##### open24x0 Bootloader for FA24x0 #####
[u] Download u-boot
[k] Download Linux kernel
[j] Download JFFS2 image
[y] Download YAFFS image
[d] Download to SDRAM & Run
[b] Boot the system
[f] Format the Nand Flash
[s] Set the boot parameters
[r] Reboot u-boot
[q] Quit from menu
Enter your selection:
«q»
FA24x0> usbslave
USB host is connected. Waiting a download.
Отправляем файл с линукса
Обращаю внимание что вот в этой операции мы загружаем уже современный бинарник u-boot который будет скопирован в NAND и работать будет именно он, старый нужен только для его загрузки.
calculate mini2440 # ./usbpush ./images/u-boot.bin
csum = 0x edc
send_file: addr = 0x30000000, len = 0x0003b5e0
на консоли mini2440:
Now, Downloading [ADDRESS:30000000h,TOTAL:243178]
RECEIVED FILE SIZE: 243178 (26KB/S, 9S)
FA24x0> nand write.e 0x30000000 0x0 0x40000
NAND write: device 0 offset 0x0, size 0x40000
262144 bytes written: OK
переключаемся в NAND режим
U-Boot 1.3.2-mini2440 (Jul 5 2010 - 18:12:58)
I2C: ready
DRAM: 64 MB
NOR Flash not found. Use hardware switch and 'flinit'
Flash: 0 kB
NAND: Bad block table not found for chip 0
Bad block table not found for chip 0
128 MiB
*** Warning - bad CRC or NAND, using default environment
USB: S3C2410 USB Deviced
In: serial
Out: serial
Err: serial
MAC: 08:08:11:18:12:27
Hit any key to stop autoboot: 0
MINI2440 #
MINI2440 #
MINI2440 #
MINI2440 #
MINI2440 # dynpart
mtdparts mtdparts=mini2440-nand:0x00040000(u-boot),0x00020000(u-boot_env),0x00500000(kernel),0x07aa0000(rootfs)
MINI2440 # dynenv set u-boot_env
device 0 offset 0x40000, size 0x20000
45 4e 56 30 - 00 00 04 00
MINI2440 # saveenv
Saving Environment to NAND...
Erasing Nand...Writing to Nand... done
перезагружаемся - готово