|
s3c2416 начальная загрузка, подробности... |
|
|
|
 |
Ответов
(1 - 75)
|
Sep 3 2010, 19:23
|
Частый гость
 
Группа: Участник
Сообщений: 84
Регистрация: 22-03-10
Пользователь №: 56 131

|
Беру свои слова обратно. Ковырялся сегодня в гугле, наткнулся на новую инфу. S3C2450 IROM Application NoteВ ней есть красивые диаграммки где должен располагаться загрузчик. Т.к. 2450 и 2416 это почти одно и то же, должно сработать.  Ещё нашёлся код под винды для копирования бутлоадера на карточку. Конкретно этот вроде 6340, но можно адаптировать, поменяв пару дефайнов.
Сообщение отредактировал igorsk - Sep 3 2010, 19:32
|
|
|
|
|
Feb 9 2011, 11:57
|
Местный
  
Группа: Свой
Сообщений: 420
Регистрация: 22-12-04
Пользователь №: 1 608

|
Я тоже начал борьбу с 2416. Конкретно модуль от "Boardcon". В основную плату втыкается модуль 2440. С ним вопросов нет - все путем. А якобы в эту же плату можно вставить модуль на 2416. И тут проблема с загрузкой. С фабрики в NAND есть и u-boot, и Linux. И это работает. А вот как поменять kernel пока не придумал. С платой пришла прилада uboot-writer.exe которая записывает uboot, zImage и образ файловой системы на MMC карточку. Проверил - записано в конце и 2 сектора пустые. Но не работает. Точнее на терминал пишется ОК но он врет - ничего не ОК и больше ничего не происходит. Если не вставлять ММЦ или вставить пустую, то и ОК не напишет. Один самый первый раз u-boot сработал с MMC, но больше ни разу. Такие вот проблемы. А теперь вопросы: как запускать через USB? можно ли под Linux переписать kernel? Я могу читать с форматированной MMC карты и наверное смогу сделать dd if=/mnt/sd/zImage of=/dev/mtdblock1 Но страшно, поскольку если не сработает то не знаю как его запускать. U-boot MMC не читает. Команда mmcinit его подвешивает навсегда
|
|
|
|
|
Feb 9 2011, 21:41
|
Местный
  
Группа: Свой
Сообщений: 420
Регистрация: 22-12-04
Пользователь №: 1 608

|
Цитата(Dron_Gus @ Feb 9 2011, 08:21)  В крайнем случае будете долго и нудно лить образ по x-modem'у в убут. JTAG то есть. Целая коллекция. В том числе кабель на пар порт от этой платы. Но еще не подключал: для 2440 было не надо. А вот xmodem (вернее Ymodem) - идея неплохая. 3 минуты можно потерпеть. Но все же Вы писали что загружали через USB. Как? В моем убуте есть команда "dnw" которая должна включать USB, но не похоже чтобы работала... И неужели никто не научился писать MMC чтобы загружались? Я даже подозреваю что из за другой главной платы какие то конигурационные ножки не туда подключены. Только какие?
|
|
|
|
|
Feb 10 2011, 09:48
|
Местный
  
Группа: Свой
Сообщений: 420
Регистрация: 22-12-04
Пользователь №: 1 608

|
Цитата(Dron_Gus @ Feb 10 2011, 00:58)  Я грузил через жтаг во внутреннюю память програмку, она уже принимала файло по 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Тот же результат
|
|
|
|
|
Feb 10 2011, 11:13
|
Местный
  
Группа: Свой
Сообщений: 420
Регистрация: 22-12-04
Пользователь №: 1 608

|
Послал. Цитата(Dron_Gus @ Feb 10 2011, 02:58)  А утилита по вашей ссылке несколько сложнее, чем та, что у меня.  она записывает не только u-boot но еще и ядро и образ диска по физическим секторам на MMC. Еще бы 2416 это читал...
|
|
|
|
|
Feb 10 2011, 11:55
|
Местный
  
Группа: Свой
Сообщений: 420
Регистрация: 22-12-04
Пользователь №: 1 608

|
Цитата(Dron_Gus @ Feb 10 2011, 03:36)  Да. Только загркзчика, чтобы это все читать я не находил. А если писать свой, то можно к нему 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-а.
|
|
|
|
|
Feb 10 2011, 21:11
|
Местный
  
Группа: Свой
Сообщений: 420
Регистрация: 22-12-04
Пользователь №: 1 608

|
Цитата(Dron_Gus @ Feb 10 2011, 04:22)  У-бут занимает от 100 Кб. А iROM грузит во внутреннюю память 8 Кб. Так что есть еще промежуточный загрузчик. Я так понял что u-boot на MMC разбит на 2 части. 8К живет на последних секторах (кроме 2х совсем последних). Она инициализирует память и должна загружать основную часть u-boot. Не исключено (надо смотреть исходники) что у меня именно эти 8К грузятся и пишут ОК, а остальное не работает. Теперь еще вопрос. А как собственно через jtag грузить код? Если бы я пользовался KEIL или IAR тулзами то наверное там есть опция загрузки через jtag. У меня пока установлен H-JTAG который успешно видит процессор, но дальше нужна какая то прилада. Существует программа sjf2410 которая пишет через jtag прямо в флеш. А как в память? Может OPEN OCR надо? Или что посоветуете?
|
|
|
|
|
Feb 11 2011, 10:42
|
Местный
  
Группа: Свой
Сообщений: 420
Регистрация: 22-12-04
Пользователь №: 1 608

|
Цитата(Dron_Gus @ Feb 11 2011, 01:42)  Я OpenOCD + GDB пользую. Инициализируете внешнюю память и грузите прямо туда. Примеры смотрите, например, в инит-скриптах от mini2440. И я к тому же пришел. С процессором говорю через OpenOCD. load_image тоже вроде работает. Расскажу если будет полный успех. Спасибо.
|
|
|
|
|
Feb 13 2011, 11:42
|

Профессионал
    
Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861

|
Цитата(alexf @ Feb 13 2011, 02:01)  Зато нарыл совсем простой код "vboot" который собирается легко. Буду его запускать с ММС а там посмотрим. Это что-то специализированное? Не поделитесь? Вчера тоже добился нормальной загрузки spl и u-boot на 6410. Грабли на которые я наступал: повторная инициализация памяти в основном у-буте (вызывало падение без отладчика, под отладчиков все было ок), повторная инициализация клоков, неправильный релокэйт (это появилось в последних у-бутах). Кстати, прошивалка rom_flush_tool просит файл (.nb0) в формате .sre. Я посмотрел, у тех файлов, что шли с различными отладками,перед началом самого образа идет небольшой заголовок. Может в этом проблема? З.Ы. то еще развлечение.
--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
|
|
|
|
|
Feb 13 2011, 22:39
|
Местный
  
Группа: Свой
Сообщений: 420
Регистрация: 22-12-04
Пользователь №: 1 608

|
>>Это что-то специализированное? Не поделитесь? Охотно. Это простая как веник программа для загрузки Линукса не задавая вопросов. Тупо читает образ из NAND, инициализирует параметры и вперед. Я думаю не составит особого труда поменять чтение образа с NAND на SD. Прога собирается по простому GCC который мы знаем и любим  Бинарник 2К так что не надо даже грузить второй части в SDRAM. План такой: 1. вместо загрузки ядра вставить примитивный "монитор" чтобы убедиться что загрузка работает. 2. добавить инициализацию SDRAM -почему то там нет. Сделано для какой то системы со статической памятью похоже. Добавление: сделал. Работает. Т.е. кладу слегка поправленый vboot на SD карточку с помощью uboot_writer.exe и оно грузится при холодном старте и инициализирует SDRAM и пишет на консоль. Может будет полезно в окончательном варианте в качестве максимально быстрого загрузчика. А пока наверное наиболее продуктивно будет разобраться с jtag+gdb почему u-boot умирает. А KIT6410 у меня тоже есть но еще руки не дошли. Сначала 2416. Может хватит пока скорости.
vboot_20100106.zip ( 17.65 килобайт )
Кол-во скачиваний: 213Кстати поставил CrossWorks который собрал Ваш код, естественно, только в нем нет симулятора. Или его надо где то отдельно искать? Жаловался на отсуствие DLL в targets. Из всем моей коллекции JTAG коробочек ни одну он не поддерживает. Заказал еще J-LINK до кучи... >>то еще развлечение. Ага. Особенно в выходной
|
|
|
|
|
Feb 15 2011, 09:27
|
Местный
  
Группа: Свой
Сообщений: 420
Регистрация: 22-12-04
Пользователь №: 1 608

|
Цитата(Dron_Gus @ Feb 15 2011, 00:37)  По поводу повторной инициализации: в у-буте используется один файл start.S и для SPL и для основного u-boot'а. И вызывает одну и ту же ф-ю lowlevel_init. Я заметил. У меня похоже другая проблема. Оказывается MMU не включается а почему то если смотреть на 0xc3е00000 то там то же что и в статической памяти на 0х40000000. Это меня и сбило с толку - вижу там "правильный" код, но только часть. А оказывается туда же отображается статическая память. Китайцы вернулись с нового года и обещали прислать рабочии MMC карточки... А пока пытаюсь разобраться с MMU. uboot_writer.exe это тот же moviNAND_Fusing_Tool-512K-boot.exe на который я давал ссылку. Так его назвали на CD от платы. Могу скинуть на почту если надо. Дополнение: MMU не включается поскольку должен включаться после конца копирования кода из SD а он не копируется ни байта. А застрявает он в системной области IROM от которой сорса нет. Лениво разбираться. Такой вопрос: а можно U-boot загрузить самим же Uboot через Y-modem? Или через JTAG? Наверное можно...
|
|
|
|
|
Feb 15 2011, 10:16
|
Местный
  
Группа: Свой
Сообщений: 420
Регистрация: 22-12-04
Пользователь №: 1 608

|
Цитата(Dron_Gus @ Feb 15 2011, 02:02)  Скиньте, если не сложно. Все мои утилиты результата не дают.
А зачем Вам MMU в загрузчике? Только чтобы включить кэши? Послал. Мне MMU в загрузчике ни к чему. Я просто теперь только понял что ничего не грузилось а э думал что грузился кусок. Залил U-boot своей сборки через JTAG и он работает! Больше я ничего не боюсь  Процедура такая: записываем на SD карточку образ u-boot.bin (не для ММС), zImage и filesystem с их CD. Инициализируем SDRAM например моей версией vboot , JTAGом грузим u-boot собраный MMC/SD и стартуем с 0x33e00000 Он сам берет с MMC все образы и прожигает в NAND. После этого u-boot стартует с NAND. Правда он и с самого начала это делал но я его случайно затер.
|
|
|
|
|
Feb 15 2011, 16:45
|
Группа: Участник
Сообщений: 10
Регистрация: 6-11-08
Из: Нижний Новгород
Пользователь №: 41 420

|
Присоединяюсь к обсуждению, у меня схожая задача поставить линукс на китайскую плату с S3C2416, изначально установлена wince. Скиньте мне тоже, пжалуйста, утилиту uboot_writer.exe , пробовал заливать с помощью moviNAND_Fusing_Tool-512K-boot.exe , в результате "OK" в терминалке. У кого нибудь загрузился u-boot с sd/mmc? Сейчас прикручиваю jtag, буду разбираться...
|
|
|
|
|
Feb 15 2011, 17:41
|
Группа: Участник
Сообщений: 10
Регистрация: 6-11-08
Из: Нижний Новгород
Пользователь №: 41 420

|
bvvlab на yandex.ru , не знал что мой ящик закрыт для других.
|
|
|
|
|
Feb 15 2011, 18:59
|
Группа: Участник
Сообщений: 10
Регистрация: 6-11-08
Из: Нижний Новгород
Пользователь №: 41 420

|
Результат тот же "OK" значит дело в бинарнике, брал от kit2416, будем разбираться...
|
|
|
|
|
Feb 15 2011, 21:06
|
Местный
  
Группа: Свой
Сообщений: 420
Регистрация: 22-12-04
Пользователь №: 1 608

|
Цитата(bvvlab @ Feb 15 2011, 10:59)  Результат тот же "OK" значит дело в бинарнике, брал от kit2416, будем разбираться... Так и у меня этот же ОК. На самом деле ничего магического в uboot_writer.exe нет. Она просто записывает uboot в последние сектора MMC карточки и остальные образы (ядро и filesystem) по другим физическим адресам (3600000, и т.д.). Это нетрудно сделать например DD. У меня судя по всему проблема в том что встроеный код в 2416 не хочет вообще читать с MMC после первых 8К. Китайцы сказали что не все карточки работают и посоветовали Kingston 2 GB. Надо попробовать но не очень верю что поможет. Может правда перетащить процедуру чтения с MMC из основной части uboot в первые 8К и пользоваться ей.
|
|
|
|
|
Feb 16 2011, 09:28
|
Группа: Участник
Сообщений: 10
Регистрация: 6-11-08
Из: Нижний Новгород
Пользователь №: 41 420

|
Я испытывал утилиту на разных трех 2 гиговых картах, SD ADATA, MicroSD Kingston и Transcend, результат тот же. Вначале предположил что отличие от kit2416 в подключении памяти ddr, ведь проц поддерживает 2 банка( 2 пина чип селект). Подкорректил исходники убута, вместо 0x30000000 перевел на 0x38000000, перекомпилил- результат тот же -"ОК". Далее решил что дело скорее всего в сигнатуре BL1. В документе 896554S3C2450_IROM_ApplicationNote_Rev003 есть flow chart что делает BL0 IROM'а, Verify integrity of BL1 Success? типа проверяет сигнатуру, независимо откуда бутится с nand или sd. И неясно отрубается как либо эта проверка или нет. В комплекте с платой идет диск, там есть утилита заливки образа винды на sd, решил проверить делает ли она подпись в предпоследнем секторе, но программа не запускается вообще ни на xp ни на убунте, так что проверить не могу. Могу проверить через отладчик пишет ли туда moviNAND_Fusing_Tool-512K-boot, но думаю что нет. В доке на иром еще написано, что если есть ошибки ECC или integrity то на линии GPC5 появятся импульсы, может ли кто это проверить? Мне нужно проц поднять чтоб это проверить.
|
|
|
|
|
Feb 16 2011, 10:50
|

Профессионал
    
Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861

|
Цитата(alexf @ Feb 16 2011, 00:06)  У меня судя по всему проблема в том что встроеный код в 2416 не хочет вообще читать с MMC после первых 8К. У меня та же проблема. Пытаюсь выпилить драйвер из u-boot'а. Цитата(bvvlab @ Feb 16 2011, 12:28)  Подкорректил исходники убута, вместо 0x30000000 перевел на 0x38000000, перекомпилил- результат тот же -"ОК". Далее решил что дело скорее всего в сигнатуре BL1. Если есть "OK" значит iROM грузит 8 Кб (BL1) с карты и передает туда управление. На этом все функции iROM заканчиваются. Значит надо разбираться с дальнейшими этапами загрузки.
--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
|
|
|
|
|
Feb 17 2011, 06:30
|
Местный
  
Группа: Свой
Сообщений: 420
Регистрация: 22-12-04
Пользователь №: 1 608

|
Цитата(Dron_Gus @ Feb 15 2011, 04:24)  Только теперь следующая проблема - при старте с SD скорость уарта в два раза меньше. Хотя из-под отладчика все стартует нормально. Еще один аргумент в пользу моей теории: uboot слишком рано переключает EPLL и клок на SD становится слишком быстрым. Попробую проверить эту теорию. ОК, с вас виртуальное пиво. Решил проблему. В u-boot есть lowlevel_init для каждой платы. У меня SMDK2416. Закоментировал инициализацию EPLL и сразу стало все грузиться с SD карточки. Если кому надо пришлю рабочий u-boot-movi.bin но лучше соберите сами под свои параметры. system_clock_init: ldr r0, =ELFIN_CLOCK_POWER_BASE ldr r1, [r0, #CLKDIV0CON_OFFSET] bic r1, r1, #0x37 /* clear HCLKDIV, PREDIV, PCLKDIV */ bic r1, r1, #(0xf<<9) /* clear ARMCLKDIV */ ldr r2, =CLK_DIV_VAL orr r1, r1, r2 str r1, [r0, #CLKDIV0CON_OFFSET] /*Set MPLL Locktime*/ ldr r1, =0xe10 str r1, [r0, #LOCKCON0_OFFSET] ldr r1, =MPLL_VAL str r1, [r0, #MPLLCON_OFFSET] #if 0 /*avf was 1*/ ldr r1, =0x1780 str r1, [r0, #LOCKCON1_OFFSET] ldr r1, =EPLL_VAL /*Set EPLL*/ str r1, [r0, #EPLLCON_OFFSET] ldr r1, [r0, #CLKSRCCON_OFFSET] orr r1, r1, #0x40 str r1, [r0, #CLKSRCCON_OFFSET] #endif
|
|
|
|
|
Feb 17 2011, 10:08
|
Группа: Участник
Сообщений: 10
Регистрация: 6-11-08
Из: Нижний Новгород
Пользователь №: 41 420

|
Вчера настроил H-JTAG и его флешер под свою плату( 2 гига samsung K9GAG08), сегодня загрузил убут в нанд от kit2416, результат тот же "OK"  Отлично, alexf, мой опыт в подтверждение вашей теории! Будете в Нижнем, угощю и невиртуально! Скиньте мне на почту бинарник протестировать, не могу щас перекомпилить, только дома, bvvlab(at)yandex.ru
|
|
|
|
|
Feb 17 2011, 10:28
|
Местный
  
Группа: Свой
Сообщений: 420
Регистрация: 22-12-04
Пользователь №: 1 608

|
Цитата(bvvlab @ Feb 17 2011, 02:08)  Скиньте мне на почту бинарник протестировать, не могу щас перекомпилить, только дома, bvvlab(at)yandex.ru Послал вместе с приладой "uboot_writer.exe". Если не остановить процесс то он автоматом считывает ядро, uboot для NAND и root_EM2416.yaffs2 с ММС, стирает NAND и пишет в него. Естественно если образов на ММС нет, то сотрет NAND и ничего не запишет толкового. Но раз загружается с ММС, то все легко поправимо. Кстати я собрал kernel с драйвером DM9000 и теперь монтирую root на NFS. Самое что надо для отладки.
|
|
|
|
|
Feb 17 2011, 10:44
|
Группа: Участник
Сообщений: 10
Регистрация: 6-11-08
Из: Нижний Новгород
Пользователь №: 41 420

|
Протестировал, u-boot грузится с SD, круть... теперь осталось аккуратно все настроить под свою железку. Как же работало у сообщества kit2416, релизы проца чтоль разные?
|
|
|
|
|
Feb 17 2011, 10:51
|
Местный
  
Группа: Свой
Сообщений: 420
Регистрация: 22-12-04
Пользователь №: 1 608

|
Цитата(bvvlab @ Feb 17 2011, 02:44)  Как же работало у сообщества kit2416, релизы проца чтоль разные? Либо уже была поправленная версия убута либо некоторые ММС карты могут работать на 50 МГц.
|
|
|
|
|
Feb 18 2011, 20:50
|
Местный
  
Группа: Свой
Сообщений: 420
Регистрация: 22-12-04
Пользователь №: 1 608

|
Цитата(Dron_Gus @ Feb 18 2011, 03:09)  Сделал загрузчик, который грузит u-boot.bin напрямую с fat раздела флешки. Если кому надо выложу. Было бы неплохо. Пригодится в следующем проекте на 6410.
|
|
|
|
|
Feb 19 2011, 13:50
|

Профессионал
    
Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861

|
Цитата(alexf @ Feb 18 2011, 23:50)  Было бы неплохо. Пригодится в следующем проекте на 6410. Если кто для него напишет Makefile - поставлю пиво  З.Ы. под 6410 тоже собираюсь портануть.
--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
|
|
|
|
|
Feb 19 2011, 21:41
|
Местный
  
Группа: Свой
Сообщений: 420
Регистрация: 22-12-04
Пользователь №: 1 608

|
Цитата(Dron_Gus @ Feb 19 2011, 05:50)  Если кто для него напишет Makefile - поставлю пиво  З.Ы. под 6410 тоже собираюсь портануть. Спасибо. В духе сотрудничества Makefile напишу. Не проблема. - А у меня новая загадка природы. Если я пытаюсь загрузиться целиком с SD (поправил команду в u-boot ) то kernel грузится и стартует, но умирает жалуюсь на ММС. А если пока он грузится и распаковывается ММС выдернуть то все работает. Чудеса. Рут монтирую через NFS. PS 6410 модуль умер смертью храбрых - воткнул модуль кверх ногами.
|
|
|
|
|
Feb 21 2011, 01:25
|
Местный
  
Группа: Свой
Сообщений: 420
Регистрация: 22-12-04
Пользователь №: 1 608

|
Makefile сделал, дело не хитрое. Для Линукса, естественно. Возникли две проблемы: 1. при линковке без стандартных библиотек не находился __aeabi_uidiv. Наверняка есть лучшие методы борьбы, но я больше по железу чем по програмам. Так что тупо скопировал процедуру из сорсов компилятора в crt0.S и все собралось. 2. Не влезло слегка в 8К с тем компилятором которым я пользовался (4.2.2-eabi). Поправка: я добавил -mthumb во флаги компилятора и все стало хорошо. Ну и пришлось в паре мест поменять названия файлов так как lower/upper case важен. Скажем фаил назывался system.h, а написано было "#include <System.h>"
minimal_loader.zip ( 5.46 килобайт )
Кол-во скачиваний: 140Цитата(Dron_Gus @ Feb 20 2011, 03:45)  По поводу MMC посмотрю в понедельник на работе. Были какие-то проблемы, сейчас уже не помню. Одна касалась отсутствия необходимых клоков, но патч я уже давно видел в arm-linux-kernel листе, должны были поправить. Еще был патч, который добавлял различные методы опроса Card Detect (до этого было только по прерыванию). У меня довольно старая версия 2.6.21 так что легко может не быть патчей.
|
|
|
|
|
Feb 21 2011, 21:40
|
Местный
  
Группа: Свой
Сообщений: 420
Регистрация: 22-12-04
Пользователь №: 1 608

|
Цитата(Dron_Gus @ Feb 21 2011, 05:28)  Нашел некий загрузчик под s3c6410 http://zenvoid.org/software/qi-smartq/ . Там же и скрипт для флешевания. Script выглядит разумно. Вычисляет с какого сектора писать и вперед. У меня есть прилада с диска от 6410 но работает или нет не знаю поскольку убил свой 6410.
|
|
|
|
|
Apr 7 2011, 14:38
|
Группа: Участник
Сообщений: 10
Регистрация: 6-11-08
Из: Нижний Новгород
Пользователь №: 41 420

|
Какие сделал правки u-boot под мою K9GAG08 (OOB=128, PAGE=4096, BLOCK=128PAGE): 1. nand_cp.c //page_size = 2048; page_size = 4096; //page_shift = 11; page_shift = 12; тогда убут будет верно стартовать с нанд независимо или в режиме IROM или выполнения с нанд.
Но для того чтоб его можно было в нанд прописать нужно подправить функции nand write/read 2.nand.c static struct nand_ecclayout s3c_nand_oob_mlc_128 = { .useecc = MTD_NANDECC_AUTOPLACE, /* Only for U-Boot *///the batoff .eccbytes = 64, .eccpos = { 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127}, .oobfree = { {.offset = 2, .length = 28+32}} };
//nand->ecc.layout = &s3c_nand_oob_mlc_64; nand->ecc.layout = &s3c_nand_oob_mlc_128;
3.nand_util.c //#define MAX_PAGE_SIZE 2048 //#define MAX_OOB_SIZE 64 #define MAX_PAGE_SIZE 4096 #define MAX_OOB_SIZE 128
if (!(meminfo->oobsize == 16 && meminfo->writesize == 512) && !(meminfo->oobsize == 8 && meminfo->writesize == 256) && !(meminfo->oobsize == 64 && meminfo->writesize == 2048) && !(meminfo->oobsize == 128 && meminfo->writesize == 4096)) { printf("Unknown flash (not normal NAND)\n"); return -1; } 4.nand_base.c static struct nand_ecclayout nand_oob_128 = { .eccbytes = 48, .eccpos = { 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127}, .oobfree = { {.offset = 2, .length = 78}} }; case 128: chip->ecc.layout = &nand_oob_128; break;
case 16: 5.nand.h //#define NAND_MAX_OOBSIZE 64 //#define NAND_MAX_PAGESIZE 2048 #define NAND_MAX_OOBSIZE 128 #define NAND_MAX_PAGESIZE 4096
после этих правок успешно стал шиться в нанд убут, кернел. Непонятки творятся с rootfs. ОБраз взял от kit2416 формат yaffs. В нанд заливается, но при старте ядро паникует, говорит что все блоки бэд. ядру передаю setenv bootargs noinitrd root=/dev/mtdblock2 console=ttySAC0,115200
Вывел в консоли nand dump первой странички фс, в начале блока OOB два байта нулевые и секция ECC тоже странная.
Кто нибудь сделайте nand dump первых 2 страниц фс ваших плат. И еще б глянуть начало бинарника rootfs.
Заранее благодарю.
|
|
|
|
|
Jun 2 2011, 08:39
|
Группа: Новичок
Сообщений: 2
Регистрация: 2-06-11
Пользователь №: 65 432

|
Сорри за офтоп: есть девайс на 2416(навигатор) не грузит ОС, хотел поставить ОС, да пока не знаю с какой стороны подойти. Как я понял из форума, рабочего решения нет пока. В Моём только загрузчик грузится, пишет "Aug 10 2009 v1.a12.b501.c0.d0". Есть полный дамп когдато рабочей винды, но нет инфо по прошивке. Интересует инфо по JTAG к этому процу ну и собственно прошивка с SD.
|
|
|
|
|
Jun 3 2011, 07:24
|
Группа: Новичок
Сообщений: 2
Регистрация: 2-06-11
Пользователь №: 65 432

|
Чётко обозначенного jtag нет. вероятно, как это обычно бывает, выводы разбросаны по плате.. но это только гипотетически. О том какая из SD разведена 1 или 2 можно проверить только вставив карточку с ВООТлоадером, хотя не факт что плата сконфигурирована для загрузки с SD. Нормально она грузится с NAND. По другому я не знаю как это узнать. Ну разве фото платы выложить. Как вариант можно снять проц и вызвонить ноги jtag и SD но нехотелось бы. На плате 2 кнопки вкл\выкл и резет... это всё Вопрос: -чем создать загрузочную SD? - Можно ли по дампу прошивки выяснить имя файла флага ? типа как для ("Prestigio GeoVision 430@"-(BootImg.cfg,xip.bin в корне SD) ) Как следствие, зная это, можно загрузить свою прошиву.
п.с. вопросов много , да вот ответы ...(( и выбросить жаль, и поднять нечем.
|
|
|
|
|
Jun 22 2011, 10:17
|
Частый гость
 
Группа: Участник
Сообщений: 75
Регистрация: 25-07-04
Из: Rostov-on-Don
Пользователь №: 382

|
Есть устройство с s3c2416 и нанд флэшкой k9gag08, хочу написать свой лоадер для этих девайсов. Если кто сталкивался и поможет прояснить следующие вопросы - буду благодарен.
1. Почему k9gag08 упорно приписываю геометрию в 2гб из страниц по 4096? Реальная геометрия этой странной флэшки 2076 блока, страницы 8192 + 436 spare, в блоке 128 страниц. Кто не верит, может посмотреть в мануале. Всякие непонятности возникают, например, когда я пробую читать 2ю страницу по адресу 0x2000 и вижу данные из 1-й страницы, а потом данные читаются нормально. Это они сделали для "совместимости", чтоб их s3c запускали первые 8к или есть свои хитрости?
2. Какое-то совсем вольное и непонятное обращение с регистрами, даже в примерах от самсунга, не говоря уже от творчестве народном. Чтение и контроль ECC сделано как кому нравится, биты ecc_lock перепутаны с ecc_unlock, по-разному выставляются адреса и команды при чтении, используются разные биты готовности... Я сделал все по мануалу для 8бит ECC, но почему-то у меня все время Uncorrectable ecc error, нет ошибок только на пустых блоках. Никто не подскажет проверенный исходник с ECC, желательно для s3c2416 и этой флэшки или просто свои наблюдения?
|
|
|
|
|
Jun 23 2011, 08:48
|
Частый гость
 
Группа: Участник
Сообщений: 75
Регистрация: 25-07-04
Из: Rostov-on-Don
Пользователь №: 382

|
Цитата(Dron_Gus @ Jun 22 2011, 16:17)  2) тут уже обсуждалось. формат spare области не "общепринятый". Байты ECC не на тех позициях и не в том порядке. Поэтому на флешке будут присутствовать два формата ECC и будут друг на друга ругаться. Загрузчик уже есть. Например этот. Ну или у-бут. Я тут тоже выкладывал первичный загрузчик (правда с SD карты). Функция чтения страницы с нандины есть в ROM. Как ее пользовать - есть в qi-boot'е, с поправкой на другие адреса. Если с 0 адреса формат будет не HWECC 8bit - то с нанд флэшки ничего не стартанет, просто не загрузятся первые 8кб. Как хранятся остальные данные - это уже кому как нравится, я говорю пока о первых 8кб, на всякий случай приаттачил первую страницу со spare.
|
|
|
|
|
Jun 23 2011, 11:24
|
Частый гость
 
Группа: Участник
Сообщений: 75
Регистрация: 25-07-04
Из: Rostov-on-Don
Пользователь №: 382

|
Цитата(Dron_Gus @ Jun 23 2011, 14:44)  А в чем вопрос то? Д я ж до этого вроде писал - вопрос в работе с k9gag08 c 8Kb страницами и кодом для чтения с HW ECC 8бит протестированным желательно на этой флэшке. В принципе вопрос снят - я нашел реализацию самсунгом NF8_ReadPage_Adv и еще пошагаю по загрузчику внутреннему для уверенности-) Если нетрудно - выложите плиз первые 8кб с областью spare, именно как все лежит во флэшке - интересно посмотреть. Спасибо.
|
|
|
|
|
Jul 22 2011, 09:49
|
Участник

Группа: Участник
Сообщений: 16
Регистрация: 10-01-06
Из: Украина
Пользователь №: 13 014

|
Коллеги, у кого есть KIT2416 с установленной на нем модулем SOM2416 ? Не могу понять как там пины GPC5/6/7 подсоединены? Наружу они вроде не выведены... Или может у кого есть схема от SOM2416? И еще вопрос, может пропустил в доках. Какой из хостов MMC используется IROM при копировании BL1?
Сообщение отредактировал serhio - Jul 22 2011, 10:45
|
|
|
|
|
Dec 19 2011, 04:31
|
Группа: Новичок
Сообщений: 6
Регистрация: 7-04-06
Пользователь №: 15 900

|
Уважаемые коллеги, поделитесь исходниками uboot свежей версии для SOM2416 для NAND. Для SD у меня есть бинарник и он работает, а бинарник для NAND прошивается, но после старта сразу следует рестарт. Мои попытки собрать uboot 1.1.6 даже под SD не увенчались успехом. Вобщем хэлп...
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|