Jump to content
    

s3c2416 начальная загрузка

В крайнем случае будете долго и нудно лить образ по x-modem'у в убут.

 

JTAG то есть. Целая коллекция. В том числе кабель на пар порт от этой платы. Но еще не подключал: для 2440 было не надо.

А вот xmodem (вернее Ymodem) - идея неплохая. 3 минуты можно потерпеть. Но все же Вы писали что загружали через USB. Как?

В моем убуте есть команда "dnw" которая должна включать USB, но не похоже чтобы работала...

И неужели никто не научился писать MMC чтобы загружались? Я даже подозреваю что из за другой главной платы какие то конигурационные ножки не туда подключены. Только какие?

 

Share this post


Link to post
Share on other sites

В у-буте вроде есть функция загрузки. Не пробовал.

Я грузил через жтаг во внутреннюю память програмку, она уже принимала файло по 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 . Я не пробовал толком. Но предстоит.

Share this post


Link to post
Share on other sites

Я грузил через жтаг во внутреннюю память програмку, она уже принимала файло по 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

 

Тот же результат :(

Share this post


Link to post
Share on other sites

Киньте мне письмо на dron_gus(at)mail.ru

 

Если у Вас все эти ноги притянуты резисторами, то надо перепаивать. :) Я поставил кнопку и перетягивал пины GPC5 и GPC7 (кажется) 100-Омными резисторами.

 

А утилита по вашей ссылке несколько сложнее, чем та, что у меня. :)

Share this post


Link to post
Share on other sites

Послал.

 

А утилита по вашей ссылке несколько сложнее, чем та, что у меня. :)

 

она записывает не только u-boot но еще и ядро и образ диска по физическим секторам на MMC.

Еще бы 2416 это читал...

 

Share this post


Link to post
Share on other sites

она записывает не только u-boot но еще и ядро и образ диска по физическим секторам на MMC.

Да. Только загркзчика, чтобы это все читать я не находил. А если писать свой, то можно к нему FAT прикрутить. Чтобы проще было.

Share this post


Link to post
Share on other sites

Да. Только загркзчика, чтобы это все читать я не находил. А если писать свой, то можно к нему 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-а.

 

Share this post


Link to post
Share on other sites

У-бут занимает от 100 Кб. А iROM грузит во внутреннюю память 8 Кб. Так что есть еще промежуточный загрузчик.

Share this post


Link to post
Share on other sites

У-бут занимает от 100 Кб. А iROM грузит во внутреннюю память 8 Кб. Так что есть еще промежуточный загрузчик.

Я так понял что u-boot на MMC разбит на 2 части. 8К живет на последних секторах (кроме 2х совсем последних).

Она инициализирует память и должна загружать основную часть u-boot. Не исключено (надо смотреть исходники) что у меня именно эти 8К грузятся и пишут ОК, а остальное не работает.

 

Теперь еще вопрос. А как собственно через jtag грузить код? Если бы я пользовался KEIL или IAR тулзами то наверное там есть опция загрузки через jtag. У меня пока установлен H-JTAG который успешно видит процессор, но дальше нужна какая то прилада.

Существует программа sjf2410 которая пишет через jtag прямо в флеш. А как в память? Может OPEN OCR надо? Или что посоветуете?

 

Share this post


Link to post
Share on other sites

Я OpenOCD + GDB пользую. Инициализируете внешнюю память и грузите прямо туда. Примеры смотрите, например, в инит-скриптах от mini2440.

Share this post


Link to post
Share on other sites

Я OpenOCD + GDB пользую. Инициализируете внешнюю память и грузите прямо туда. Примеры смотрите, например, в инит-скриптах от mini2440.

 

И я к тому же пришел. С процессором говорю через OpenOCD. load_image тоже вроде работает. Расскажу если будет полный успех. Спасибо.

 

Share this post


Link to post
Share on other sites

Ок. Буду ждать. Меня тоже интересует загрузка с SD. Правда для s3c6410, но суть та же.

Share this post


Link to post
Share on other sites

JTAG - мощное оружие в руках пролетариата умственного труда. Удалось пока установить что u-boot таки загружается в память.

Обе части - сначала 8К которые инициализируют SDRAM и прочее а потом и остальное.

Оказалось что схема приложенная к модулю не правильная и тумблер который для 2440 переключал ОМ0 здесь честно включает iROM. Как уже писал с ММС загрузкой пишет ОК и все. Но JTAG говорит что при этом в основной памяти (0xc3e0xxxx) успешно сидит U-boot, только у меня ничего кроме ОК не пишет. Буду разбираться дальше.

Ваша утилита к сожалению как есть не работает а пересобрать ее на GCC оказалось большой головняк из за ассемблера. Зато нарыл совсем простой код "vboot" который собирается легко. Буду его запускать с ММС а там посмотрим.

 

Share this post


Link to post
Share on other sites

Зато нарыл совсем простой код "vboot" который собирается легко. Буду его запускать с ММС а там посмотрим.

Это что-то специализированное? Не поделитесь?

 

Вчера тоже добился нормальной загрузки spl и u-boot на 6410. Грабли на которые я наступал: повторная инициализация памяти в основном у-буте (вызывало падение без отладчика, под отладчиков все было ок), повторная инициализация клоков, неправильный релокэйт (это появилось в последних у-бутах).

 

Кстати, прошивалка rom_flush_tool просит файл (.nb0) в формате .sre. Я посмотрел, у тех файлов, что шли с различными отладками,перед началом самого образа идет небольшой заголовок. Может в этом проблема?

 

З.Ы. то еще развлечение. :)

Share this post


Link to post
Share on other sites

>>Это что-то специализированное? Не поделитесь?

 

Охотно. Это простая как веник программа для загрузки Линукса не задавая вопросов. Тупо читает образ из 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 до кучи...

 

 

 

 

>>то еще развлечение.

Ага. Особенно в выходной :)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...