alexf 0 February 9, 2011 Posted February 9, 2011 · Report post В крайнем случае будете долго и нудно лить образ по x-modem'у в убут. JTAG то есть. Целая коллекция. В том числе кабель на пар порт от этой платы. Но еще не подключал: для 2440 было не надо. А вот xmodem (вернее Ymodem) - идея неплохая. 3 минуты можно потерпеть. Но все же Вы писали что загружали через USB. Как? В моем убуте есть команда "dnw" которая должна включать USB, но не похоже чтобы работала... И неужели никто не научился писать MMC чтобы загружались? Я даже подозреваю что из за другой главной платы какие то конигурационные ножки не туда подключены. Только какие? Quote Share this post Link to post Share on other sites More sharing options...
Dron_Gus 4 February 10, 2011 Posted February 10, 2011 · Report post В у-буте вроде есть функция загрузки. Не пробовал. Я грузил через жтаг во внутреннюю память програмку, она уже принимала файло по USB через DNW. Програмка на базе SMDK2450_2416_2451_TEST.zip. Пины для конфигурации типа загрузки: GPC[5:7] и OM[4:0], смотрите Table 1-5. S3C2416X Operation Mode Description в User Manual'е. Флешку должна уметь писать программа IROM_Fusing_Tool.exe . Я не пробовал толком. Но предстоит. Quote Share this post Link to post Share on other sites More sharing options...
alexf 0 February 10, 2011 Posted February 10, 2011 · Report post Я грузил через жтаг во внутреннюю память програмку, она уже принимала файло по USB через DNW. Програмка на базе SMDK2450_2416_2451_TEST.zip. Попробовал через ymodem и все состоялось - свой kernel загрузил. С сожалению под линуксом NAND не пишется. dd ругается. Видимо первые два раздела определены только на чтение. А где раздобыть SMDK2450_2416_2451_TEST.zip? Может поделитесь? Перечисленные конфигурационные ножки вроде в порядке. Стоят на все резисторы на модуле, так что не понятно каким образом у меня ровно один раз сработало... Дополнение: Нашел 114453SMDK2450_2416_2451_TEST.zip Но если не жалко поделиться работающей приладой, буду признателен. Дополнение 2: нашел программу moviNAND_Fusing_Tool-512K-boot.exe и KIT2416-uboots-zImage.rar здесь: http://openembed.org/wiki/KIT2416-Linux_Porting Тот же результат :( Quote Share this post Link to post Share on other sites More sharing options...
Dron_Gus 4 February 10, 2011 Posted February 10, 2011 · Report post Киньте мне письмо на dron_gus(at)mail.ru Если у Вас все эти ноги притянуты резисторами, то надо перепаивать. :) Я поставил кнопку и перетягивал пины GPC5 и GPC7 (кажется) 100-Омными резисторами. А утилита по вашей ссылке несколько сложнее, чем та, что у меня. :) Quote Share this post Link to post Share on other sites More sharing options...
alexf 0 February 10, 2011 Posted February 10, 2011 · Report post Послал. А утилита по вашей ссылке несколько сложнее, чем та, что у меня. :) она записывает не только u-boot но еще и ядро и образ диска по физическим секторам на MMC. Еще бы 2416 это читал... Quote Share this post Link to post Share on other sites More sharing options...
Dron_Gus 4 February 10, 2011 Posted February 10, 2011 · Report post она записывает не только u-boot но еще и ядро и образ диска по физическим секторам на MMC. Да. Только загркзчика, чтобы это все читать я не находил. А если писать свой, то можно к нему FAT прикрутить. Чтобы проще было. Quote Share this post Link to post Share on other sites More sharing options...
alexf 0 February 10, 2011 Posted February 10, 2011 · Report post Да. Только загркзчика, чтобы это все читать я не находил. А если писать свой, то можно к нему FAT прикрутить. Чтобы проще было. Должен u-boot это читать. Инструкция такая: 1. Burn the u-boot.bin, zImage, rootfs.yaffs to the sd card with the uboot_write.exe tools. The method is the same as that i told you last time. 2. Copy qt-4.6-image-ok.tar.bz2 to Sd card. 3. Insert the SD card, and then boot into uboot command mode. 4. Run the follow command in uboot command: nand scrub nand erase movi read 3800000# 40000 c0000000 nand write c0000000 0 40000 movi read kernel c0000000 nand write c0000000 40000 200000 movi read 3600000# 3C65040 c0000000 nand write.yaffs c0000000 400000 3C65040 set bootcmd "movi read kernel 0xc0200000;bootm 0xc0200000" set bootargs "noinitrd console=ttySAC0,115200 root=/dev/mtdblock2 rootfstype=yaffs2 init=/linuxrc" saveenv 5.reboot the board, and enter the linux system command mode. От себя добавлю что делать nand scrub и nand erase до того как все гарантировано читается с MMC - прямой путь к форсированному изучению JTAG-а. Quote Share this post Link to post Share on other sites More sharing options...
Dron_Gus 4 February 10, 2011 Posted February 10, 2011 · Report post У-бут занимает от 100 Кб. А iROM грузит во внутреннюю память 8 Кб. Так что есть еще промежуточный загрузчик. Quote Share this post Link to post Share on other sites More sharing options...
alexf 0 February 10, 2011 Posted February 10, 2011 · Report post У-бут занимает от 100 Кб. А iROM грузит во внутреннюю память 8 Кб. Так что есть еще промежуточный загрузчик. Я так понял что u-boot на MMC разбит на 2 части. 8К живет на последних секторах (кроме 2х совсем последних). Она инициализирует память и должна загружать основную часть u-boot. Не исключено (надо смотреть исходники) что у меня именно эти 8К грузятся и пишут ОК, а остальное не работает. Теперь еще вопрос. А как собственно через jtag грузить код? Если бы я пользовался KEIL или IAR тулзами то наверное там есть опция загрузки через jtag. У меня пока установлен H-JTAG который успешно видит процессор, но дальше нужна какая то прилада. Существует программа sjf2410 которая пишет через jtag прямо в флеш. А как в память? Может OPEN OCR надо? Или что посоветуете? Quote Share this post Link to post Share on other sites More sharing options...
Dron_Gus 4 February 11, 2011 Posted February 11, 2011 · Report post Я OpenOCD + GDB пользую. Инициализируете внешнюю память и грузите прямо туда. Примеры смотрите, например, в инит-скриптах от mini2440. Quote Share this post Link to post Share on other sites More sharing options...
alexf 0 February 11, 2011 Posted February 11, 2011 · Report post Я OpenOCD + GDB пользую. Инициализируете внешнюю память и грузите прямо туда. Примеры смотрите, например, в инит-скриптах от mini2440. И я к тому же пришел. С процессором говорю через OpenOCD. load_image тоже вроде работает. Расскажу если будет полный успех. Спасибо. Quote Share this post Link to post Share on other sites More sharing options...
Dron_Gus 4 February 11, 2011 Posted February 11, 2011 · Report post Ок. Буду ждать. Меня тоже интересует загрузка с SD. Правда для s3c6410, но суть та же. Quote Share this post Link to post Share on other sites More sharing options...
alexf 0 February 12, 2011 Posted February 12, 2011 · Report post JTAG - мощное оружие в руках пролетариата умственного труда. Удалось пока установить что u-boot таки загружается в память. Обе части - сначала 8К которые инициализируют SDRAM и прочее а потом и остальное. Оказалось что схема приложенная к модулю не правильная и тумблер который для 2440 переключал ОМ0 здесь честно включает iROM. Как уже писал с ММС загрузкой пишет ОК и все. Но JTAG говорит что при этом в основной памяти (0xc3e0xxxx) успешно сидит U-boot, только у меня ничего кроме ОК не пишет. Буду разбираться дальше. Ваша утилита к сожалению как есть не работает а пересобрать ее на GCC оказалось большой головняк из за ассемблера. Зато нарыл совсем простой код "vboot" который собирается легко. Буду его запускать с ММС а там посмотрим. Quote Share this post Link to post Share on other sites More sharing options...
Dron_Gus 4 February 13, 2011 Posted February 13, 2011 · Report post Зато нарыл совсем простой код "vboot" который собирается легко. Буду его запускать с ММС а там посмотрим. Это что-то специализированное? Не поделитесь? Вчера тоже добился нормальной загрузки spl и u-boot на 6410. Грабли на которые я наступал: повторная инициализация памяти в основном у-буте (вызывало падение без отладчика, под отладчиков все было ок), повторная инициализация клоков, неправильный релокэйт (это появилось в последних у-бутах). Кстати, прошивалка rom_flush_tool просит файл (.nb0) в формате .sre. Я посмотрел, у тех файлов, что шли с различными отладками,перед началом самого образа идет небольшой заголовок. Может в этом проблема? З.Ы. то еще развлечение. :) Quote Share this post Link to post Share on other sites More sharing options...
alexf 0 February 13, 2011 Posted February 13, 2011 · Report post >>Это что-то специализированное? Не поделитесь? Охотно. Это простая как веник программа для загрузки Линукса не задавая вопросов. Тупо читает образ из NAND, инициализирует параметры и вперед. Я думаю не составит особого труда поменять чтение образа с NAND на SD. Прога собирается по простому GCC который мы знаем и любим :) Бинарник 2К так что не надо даже грузить второй части в SDRAM. План такой: 1. вместо загрузки ядра вставить примитивный "монитор" чтобы убедиться что загрузка работает. 2. добавить инициализацию SDRAM -почему то там нет. Сделано для какой то системы со статической памятью похоже. Добавление: сделал. Работает. Т.е. кладу слегка поправленый vboot на SD карточку с помощью uboot_writer.exe и оно грузится при холодном старте и инициализирует SDRAM и пишет на консоль. Может будет полезно в окончательном варианте в качестве максимально быстрого загрузчика. А пока наверное наиболее продуктивно будет разобраться с jtag+gdb почему u-boot умирает. А KIT6410 у меня тоже есть но еще руки не дошли. Сначала 2416. Может хватит пока скорости. vboot_20100106.zip Кстати поставил CrossWorks который собрал Ваш код, естественно, только в нем нет симулятора. Или его надо где то отдельно искать? Жаловался на отсуствие DLL в targets. Из всем моей коллекции JTAG коробочек ни одну он не поддерживает. Заказал еще J-LINK до кучи... >>то еще развлечение. Ага. Особенно в выходной :) Quote Share this post Link to post Share on other sites More sharing options...