Начал разбираться с платой SK-iMX233, для начала решил собрать rootfs со своими настройками а именно ip адреса, заодно и проделать процесс обновления rootfs. Запустил make menuconfig добавил vim, собрал rootfs комммандой make_rootfs даллее make_system, появился свежесобранный linux.sb который я и записал в NAND после чего Linux перестал грузиться так как размер linux.sb был примерно ~8,2MB.
Далее начинатся сомое интересное с загрузкой по USB. (http://www.starterkit.ru/html/index.php?name=forum&op=view&id=7549)
Разомкнул джампера J6-J9, включил плату, в терминале появилось сообщение 0x80508002 от внутреннего загрузчика что означает на внешних носителях ничего не найдено и готов к загрузке по USB.
Подключил USB, запустил программу ftp://starterkit.dyndns.org/AiDisk_a1/SK-iMX233/Boot/mfg-1.6.0.003a.rar, выбрал USB устройство и профиль SK-IMX233, нажимаю start далее начинается циклический процесс загрузки. Постоянное повторение следующего вывода:
Я так понимаю, что бутстрап загружается (т к сообщения от него) а далее не может загрузить ядро. Не понятно кто пишет сообщение Undefined Instruction?
Начал грешить на linux.sb который находится в профиле SK-IMX233 программы mfg-1.6.0.003a. Запустил ещё одну виртуальную машину в которой я неичего не запускал и вытащил linux.sb который был уже создан до меня. Заменил им в профиле SK-IMX233 программы mfg-1.6.0.003a существующий linux.sb. Пробую загружаться проблема таже – циклическая перезагрузка и Undefined Instruction.
На форуме накопал ещё образов от sasamy: http://sasamy.narod.ru/linux.sb http://sasamy.narod.ru/linux_memtest_1M_verbose.sb
Оба эти образа у меня загрузились по USB только в них нету сетевого интерфейса eth0. Начал далее копать, нащёл ftp://starterkit.dyndns.org/AiDisk_a1/SK-iMX233/Boot/Images/linux_nand.sb с него тоже загрузилось и сетевой интерфейс eth0 присутствует. Загрузился с предварительно включённой NAND, загрузил по TFTP linux.sb который уже был создан до меня в вертуальной машине, записал его в NAND перезагружаюсь теперь linux грузится нормально.
OTP биты НЕ трогал.
Вопросы:
Пробовал ли кто нибудь загружаться по USB с образа linux.sb находящийся в профиле SK-IMX233 который входит в состав программы mfg скаченной с starterkit.dyndns.org?
В каких случаях я могу видеть вывод Undefined Instruction?
Какие могут быть причины того что linux.sb в составе вертуальной машины не грузится по USB, но если его записать в NAND всё нормально работает?
Чтобы загрузиться по USB, linux.sb должен быть собран определённым образом или подойдут те что я собираю для заливки в NAND?
Спасибо,
Тогда возникает вопрос: А разве не bootlets выстаывляет параметры памяти ? Из лога видно что он отработал (как я понимаю bootlets проливается во внутреннюю память контроллера (не DDR))
Тогда как mfg-tool может влиять на параметры памяти, если их выставляет bootlets ?
Понятия не имею, как он что то меняет (возможно это просто баг самого mfg, можно на новых версиях поупражняться ...), факт - одно и то же ядро работает на меньшей частоте, чем при старте с NAND.
ядро и корневую фс можете подставить свои, updater.sb там настроен для загрузки через mfg-tools.
Тогда как mfg-tool может влиять на параметры памяти, если их выставляет bootlets ? (исходя из "неприятное свойство mfg-tools скручивать тайминги")
он читает bootstrem из загружаемого образа, а что он пишет в те или иные регистры в обход бутстрима - это судя по всему обход какой-то аппаратной ошибки в силиконе.
Поделитесь пожалуйста исходниками updater.sb или хотябы конфигом. С ядром (updater.sb) в составе mfgtool наша плата не грузится. Видимо слишком сильно отличен board файл.
Все наши платы перезагружаются при достижении :
i.MX IRAM pool: 28 KB@0xc4808000
usb: DR gadget (utmi) registered
bio: create slab <bio-0> at 0
SCSI subsystem initialized
Switching to clocksource mxs clock source
Bus freq driver module loaded
mxs_cpu_init: cpufreq init finished
0x80508002 (момент перезагрузки)