Установили BootStrap и U-Boot, попробовали прошить простенькую программу, получилось. А задача состоит в прошивке Линукса. на диске в комплекте был zLinux, залили его, но он не запускается, пробовали другую верчсию Линукса, тоже не хочет. Напишите пож-та подробно что и как делать, чтобы все заработало. может нужно какие то дополнительные команды для U-boot ?
сделали все так как написано в вышеуказанном топике.
а именно
1) запустите виртуальную машину VMware
2) подключите сетевой (Etnernet) кабель к плате и включите питание
3) в командной строке u-boot введите команду run tftp_update, далее все должно автоматически скопироваться и сохраниться во флешке
во первых плата не пингуется, но сама пингует комп и виртуалку (это просто замечание)
во вторых после команды run tftp_update пришлось воспользоваться командой run tftp_boot (как написано в мануале) чтобы запустить таки наконец Линукс на плате.
но вот в че загвоздка, в автоматическом режиме U-Boot не может самостоятельно это сделать, процесс зависает после шага
Starting application at 0x20000000... (вроде так), т.е. не может запустить Линукс уже с SDRAM. вопрос почему? много инфы уже перерыл, но так пока ответа и не нашел.
помогите пож-та, очень надо
PS звонили в службу поддержки но ничего путного по этому поводу не услышали
ах да, уточню, в наличии на плате только DataFlash и SDRAM 32 Mb (т.е. Линукс заливается на Dataflash)
Вроде или так ? С адреса 0x20000000 linux и не должен запуститься.
Это замечание лучше сделайте создателям u-boot - он и не должен пинговаться потому что сеть работает на полинге (циклическом опросе) и только когда это нужно - например когда вы запустили ping в u-boot, к платам отношения не имеет
Интересно - как можно догадаться почему человек не может сделать простейшие движения :)
тогда расписываю все действия по порядку:
1) в программе SAM-BA используя кнопку Send boot File зашиваем на DataFlash приложение Bootstrap-v1.11, вместе с которой автоматически ставится и U-Boot-v1.1.5
2) далее заливаем ядро
• запускаем скрипт linux-2.6.XX/make_kernel
• включаем/перезагружаем плату с подключенным Ethernet и RS232 кабелями
• прерываем в u-boot процесс загрузки нажатием любой клавишы
• выполняем “run nand_update” а затем “run tftp_boot”
после run tftp_boot Линукс загружается без проблем и спокойно работает, но при перезагрузке платы U-Boot самостоятельно не может запустить Линукс, вопрос что сделано не так?
пардон что влезаю :)
по первому пункту - вроде никто автоматически не ставиться Bootstrap прошивается через скрипт Send Boot File, а Uboot через кнопку Write file - все делается ручками..
по второму - выложите лог команды Uboot - printenv, тогда что-нить станет понятнее из процесса записи и запуска..
1) На плату перепрошили BootStrap (v1.6) и U-Boot (1.1.5) - образы эти были взяты с поставленного с платой диска из архива Bootstrap-v1.6.
2) Установили Linux командой "run tftp_update" из под U-Boot. Образ линукса с ПК скопировался в DataFlash (Nand на плате нет).
При выполнении команды "run tftp_boot" под U-Boot выполняется загрузка Linux.
Однако при загрузке платы автоматической загрузки Linux не происходит - плата повисает. Привожу лог загрузки:
RomBOOT
>Start AT91Bootstrap...
Copy application ...
Run ...
U-Boot 1.1.5 (Apr 9 2008 - 23:02:52)
DRAM: 32 MB
DataFlash:AT45DB321
Nb pages: 8192
Page Size: 528
Size= 4325376 bytes
Logical address: 0xC0000000
Area 0: C0000000 to C0003FFF (RO)
Area 1: C0004000 to C0007FFF
Area 2: C0008000 to C0037FFF (RO)
Area 3: C0038000 to C041FFFF
In: serial
Out: serial
Err: serial
KS8721 PHY Detected
No link
MAC: error during RMII initialization
Hit any key to stop autoboot: 0
## Starting application at 0x20400000 ...
На этом месте плата повисает.
Привожу содержимое переменных окружения U-Boot:
Согласитесь, глупая ситуация, была работоспособная плата, что то там "накрутили" (судя по всему, что то с ядром) и спрашиваете - "почему оно не работает".
Спасибо за замечание. По всей видимости для загрузки Linux был необходим запуск команды boot_df:
Поэтому прописав в U-Boot команды
при перезагрузке платы проблема разрешилась. Linux запускается!
P.S. Не встречал упоминания этой команды ни в одном из мануалов.
P.P.S. Ситуация не совсем глупая. Сначала пытались понять, насколько сложно программировать плату пользовательскими программами. Далее поняли, что проще делать под Linux. После пары ошибок в Сам-бе перепрошили DataFlash и вопрос, который у нас возник лишь - как установить Linux на плату, а точнее, как сконфигурировать U-Boot для автоматического запуска Linux. При этом мы выполняли пошагово все так, как описано в мануалах. Повторяю, что про команду boot_df нигде упоминаний не видели, а проблема, видимо была в том.