Все, разобрался. Изначально мне было не ясно, почему нельзя грузить убут по адресу 0х20000000. Теперь понял, что туда он потом будет копировать ядро.
Есть еще вопрос. Я записал в датафлэш бутстрап и убут. Принимаю в убут файл zlinux по адресу 0х20000000. Как мне принятый файл скопировать в датафлеш? Пробовал "cp 0x20000000 0xc0038000 0x15B626", на что сразу же получил сообщение "Copy to DataFlash... Outside available DataFlash"
Это снова я. Докладываю:
- в /home/user/Install разархивировал Bootstrap, вошел в /SAM9260-EK/nandflash и подправил Makefile и хэдер в части JUMP_ADDR на 0x21D00000. Пересобрал, вытащил полученный nandflash_at91sam9260ek.bin в винду. Вытащил J23, загрузил САМ-БУ, проинитил и очистил Nandflash. Потом через 'Send boot file' загрузил полученный бинарник (молниеносно). Далее загрузил U-boot.bin через Send file с адреса 0х8000 - появилось "this file must be block boundary aligned". Перегружаю борду из NAND - горит RomBOOT и всё... starterkit, скажите пожалуйста, я опять где-то ошибся или наличествует тот самый баг? Как вы проверяли на платах загрузку из NAND?
Если дальше RomBOOT не продвигается, значит не работает/запускается сам bootstrap (хотя даже с DataFlash-ным вариантом bootstrap стартует), кстати, и адрес хранения u-boot лучше по ее требованию по границе блока NAND флешки разместить ...
На досуге попробую bootstrap с NAND флешкой подружить, о результатах отпишусь.
Вобщем, вся адаптация для загрузки из NAND флешки сводится к изменению адреса расположения u-boot. Так же следует учесть, что стираение в NAND организовано блоками (чтение-запись страницами - части блока), т.е. u-boot должен быть расположен в следующем блоке.
Отсюда адрес расположения u-boot = 0x20000.
Еще, желательно исправить переменные u-boot: nand_update и nand_boot для того чтобы при обновлении образов не затирался сам u-boot.
Ура! Все, вроде, работает, взял Bootstrap 1.11. Спасибо, starterkit!
Пробовал прошить демо-образ WinCE5 c атмеловского CD-имиджа - он требует какой-то свой убут, грузимый из DataFlash, только время зря потратил.
Что касаемо nand_update: я ее глянул, на мой чайницкий ум вроде все нормально. Там идет стирание с 4-го блока, т.е. 0x60000, а 256 КБ вроде более чем достаточно для u-boot.
А можно в u-boot создать еще одну переменную, скажем, qnx_update по образцу nand_update, подкорректировав адреса начала загрузки из NAND и грузить из того же каталога /tftpboot бинарник QNX? Если я правильно понял, где-то после 0x206000+0x5A0000? Ну и создать, соответственно, qnx_boot?