|
Плата на am335x. Проблемы с u-boot |
|
|
|
Nov 8 2012, 06:48
|

Участник

Группа: Участник
Сообщений: 18
Регистрация: 10-04-10
Пользователь №: 56 549

|
Добрый день.
Сделали плату на процессоре TI am3359zcz. Основный компоненты (memory, nand, power managent) как у фирменного Evaluation Module. Не установили I2C EEPROM, содержащую конфигурационную информацию платы. Взяли исходники u-boot 2011.09 из SDK, убрали чтение этой EEPROM, на всякий случай присвоив соответствующей идентификационной структуре все значения, которые должны считываться в случае платы am335x EVM.
Получившиеся после сборки MLO (spl) и u-boot.img образы прекрасно грузятся на beaglebone, наличие каких-то конфигов под nand, видимо, его не волнуют. В случае собственной борды SPL загружается внутренней прошивкой проца, выполняется, но неверно. При загрузке с MMC0 симптомы у spl проявляются в виде ругани на файловую систему FAT самой карточки. При загрузке по UART spl пишет в терминал CCC.., но образ u-boot по ymodem отправить не получается.
Портировал ли кто-нибудь с u-boot вообще, или конкретно работал с этим процессором? Есть ли идеи на счет того, что было сделано неправильно? Спасибо.
|
|
|
|
|
Nov 10 2012, 14:17
|
Знающий
   
Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050

|
Цитата(BrotherRabbit @ Nov 8 2012, 10:48)  Получившиеся после сборки MLO (spl) и u-boot.img образы прекрасно грузятся на beaglebone, наличие каких-то конфигов под nand, видимо, его не волнуют. В случае собственной борды SPL загружается внутренней прошивкой проца, выполняется, но неверно. При загрузке с MMC0 симптомы у spl проявляются в виде ругани на файловую систему FAT самой карточки. При загрузке по UART spl пишет в терминал CCC.., но образ u-boot по ymodem отправить не получается. Портировал ли кто-нибудь с u-boot вообще, или конкретно работал с этим процессором? я возился с китом am3359-iceboard.. взял с их сайта ближайший по идеологии BSP и путем пилежки и заточки успешно запустил линукс, к сожалению этот кит (ice) проектировался под другие задачи и поднять сетевые интерфейсы не удалось.. и дальнейшие исследования были свернуты.. финальная цепочка по загрузке - через xmodem грузил MLO, который через ymodem тянул u-boot, который интил sd-карточку, с которой грузил ядро и содержал рутовую.. iceboard был слегка подпилен аппаратно.. у техасовцев есть тред с ребятами, которые стартовые бинарники сложили в spi-flash и грузятся с него.. Цитата Есть ли идеи на счет того, что было сделано неправильно? это к телепатам..
|
|
|
|
|
Nov 12 2012, 10:01
|

Участник

Группа: Участник
Сообщений: 18
Регистрация: 10-04-10
Пользователь №: 56 549

|
Цитата(Jury093 @ Nov 10 2012, 18:17)  финальная цепочка по загрузке - через xmodem грузил MLO, который через ymodem тянул u-boot, который интил sd-карточку, с которой грузил ядро и содержал рутовую.. С этим-то всё ясно. Путем отладки u-boot'а вроде бы выяснили, проблемы при записи в sdram. Например функция int omap_mmc_init() из файла omap_hsmmc.c содержит такую строку: sprintf(mmc->name, "OMAP SD/MMC");После этого проверка вышеупомянутой в контексте функции sprintf() стуктуры, находящейся по адресу 0x80000500 не дает ожидаемого результата. Вместо нормальной строки там появляется мусор. Продолжаю разбираться. Цитата(Jury093 @ Nov 10 2012, 18:17)  поднять сетевые интерфейсы не удалось.. Как не удалось? ICE - это же сетевой девайс.
|
|
|
|
|
Nov 14 2012, 18:05
|
Знающий
   
Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050

|
Цитата(BrotherRabbit @ Nov 12 2012, 14:01)  С этим-то всё ясно. Путем отладки u-boot'а вроде бы выяснили, проблемы при записи в sdram. не очень уловил. юбут таки стартует или нет? если стартует, то у него есть встроенный тест памяти - надо "на совесть" погонять оперативку если юбут не стартует, то возможно битая/неправильно_подключенная память или тайминги неправильные в загрузчике 0-го уровня.. еще немаловажный фактор - тулчейн для сборки, был прецендент (для pxa270) - собирался неработоспособный бутлоадер, анализ показал рандомную работу с хипом, смена тулчейна на более старую версию волшебным образом исправила ситуацию..
|
|
|
|
|
Nov 18 2012, 11:21
|
Знающий
   
Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050

|
Цитата(BrotherRabbit @ Nov 17 2012, 21:16)  Главный u-boot не стартует - первый лоадер, который должен грузить основную часть, виснет при копировании образа u-boot из SD/MMC в SDRAM, а так же при получении u-boot.bin по UART. Написал небольшой код, который выполняется во внутренней RAM, гружу из него во внешнюю память (0х80000000 и выше) несколько ассемблерных команд и передаю им управление - это выполняется. Компилятор нормальный, если тот же загрузчик спокойно работает на BeagleBone. я бы поделил задачу - на железо и софт, с приоритетом на железо: если можно запустить свою бинарь, то написать примитивный тест памяти на асме - заполнение нулем - проверка, заполнение единицей - проверка, "бегающая" единица и тыпы - и поднимал уровень на определенном пине в зависимости от результата следующий этап - втиснуть в SPL отладочный вывод - куда грузим, сколько приняли, дамп первых и последних 16 байт, адрес куда передаем управление.. отсюда уже можно делать дальнейшие выводы..
|
|
|
|
|
Nov 23 2012, 17:17
|
Знающий
   
Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050

|
Цитата(BrotherRabbit @ Nov 21 2012, 11:34)  Сделал тест, только на Си. Ошибок не обнаружено. Могут ли быть какие-то другие аппаратные причины, например флешка? легко и запросто - от ошибок чтения из-за питания до ошибок при обмене между флешкой и АРМом.. еще неплохо для мажоритарности попробовать сменить флешечку.. поэтому я и посоветовал вывести на консоль то, что читает SPL - хоть пару байт.. можно для подстраховки потыкать осциллом по пинам MMC кроватки в момент обмена - мало ли питание грязное или контакт не припаян.. Цитата По иронии судьбы так вышло, что статикой повредил рабочий девайс - beaglebone. У него появились проблемы с SDRAM, которые этот тест находит. ого! как удалось столько статики набрать для запаянной платы?
|
|
|
|
|
Jun 14 2013, 05:17
|

Частый гость
 
Группа: Свой
Сообщений: 132
Регистрация: 10-10-07
Из: Новосибирск
Пользователь №: 31 229

|
Цитата(Jury093 @ Jun 13 2013, 13:52)  выставляете режим загрузки через УАРТ и подпихиваете бинарники через xmodem - сначала MLO, потом U-BOOT, потом из юбута размечаете НАНД и по сетке подтягиваете ядро и рутовую, которые заливаете в НАНД.. Благодарю! Используя утилиту TeraTerm удалось залить SPL и U-boot. Однако возникла проблема, не определяется NAND: Цитата U-Boot 2011.09 (Jun 14 2013 - 11:42:14) I2C: ready DRAM: 256 MiB WARNING: Caches not enabled Varisciye AM33 SOM revision 1.1 detected NAND: HW ECC Hamming Code selected No NAND device found!!! 0 MiB MMC: OMAP SD/MMC: 0 Причем U-boot собирал из LSP packages, предоставленного фирмой изготовителя модуля, строго по инструкции и для обозначенной целевой платформы. На http://e2e.ti.com нашел аналогичную проблему, по видимому, проблемам в PIN mux. Другими словами, на ножки процессора, ответственные за работу с NAND назначены по умолчанию другие (альтернативные) функции. А вот где в исходника U-boot настраивается PIN mux я найти не могу. Нужна помощь.
--------------------
|
|
|
|
|
Jun 14 2013, 07:22
|
Знающий
   
Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050

|
Цитата(shamrel @ Jun 14 2013, 09:17)  Благодарю! Используя утилиту TeraTerm удалось залить SPL и U-boot. Однако возникла проблема, не определяется NAND: Причем U-boot собирал из LSP packages, предоставленного фирмой изготовителя модуля, строго по инструкции и для обозначенной целевой платформы. На http://e2e.ti.com нашел аналогичную проблему, по видимому, проблемам в PIN mux. Другими словами, на ножки процессора, ответственные за работу с NAND назначены по умолчанию другие (альтернативные) функции. А вот где в исходника U-boot настраивается PIN mux я найти не могу. Нужна помощь. поздравляю, половина дела сделана.. в теории может нанд погореть - всякое бывает.. будем надеятся на лучшее.. посмотрите в include/configs/конфиг-платыпрописан ли там нанд, мало ли.. мукс пинов вроде вот тут лежит board/ti/am335x/mux.cсмотрите логику дефайнов и инита нужных веток подсистем АРМа исходников для som-var у меня нет, смотрю в юбутские 2012 от BeagleBone - поэтому могу где-то заблуждаться.. секас с варисайтовским сомом у меня впереди - д.б. полный комплект исходников от производителя, иначе пойдут лесом..
|
|
|
|
|
Jun 17 2013, 05:17
|

Частый гость
 
Группа: Свой
Сообщений: 132
Регистрация: 10-10-07
Из: Новосибирск
Пользователь №: 31 229

|
Цитата(Jury093 @ Jun 14 2013, 11:22)  поздравляю, половина дела сделана.. в теории может нанд погореть - всякое бывает.. будем надеятся на лучшее.. посмотрите в include/configs/конфиг-платы прописан ли там нанд, мало ли.. мукс пинов вроде вот тут лежит board/ti/am335x/mux.c смотрите логику дефайнов и инита нужных веток подсистем АРМа
исходников для som-var у меня нет, смотрю в юбутские 2012 от BeagleBone - поэтому могу где-то заблуждаться..
секас с варисайтовским сомом у меня впереди - д.б. полный комплект исходников от производителя, иначе пойдут лесом.. Спасибо за ответ! Проверил мукс ножек, ошибок не нашел. Вычитал файл конфигурации \include\configs\var_am335x.h, сравнил с am335x_evm.h, принципиальных различий в конкурировании NAND не нашел. Сам чип NAND скорее жив, чем мертв. Взял другую плату с предустановленным U-boot, если грузится с NAND, то NAND определяется (логично), если загружаю свой U-boot через UART, то "No NAND device found!!!". Вопрос остается открытым. Как получить рабочий U-boot? Еще помогите разобраться, в чем отличие файла MLO(36477байт) от u-boot-spl.bin (35927 байт). Спрашиваю, потому как в SDK от Variscite лежит помимо u-boot-var-som-am33.img еще файл MLO-var-som-am33. Через UART MLO запустить не удается. При компиляции U-boot получается и файл MLO, и файл u-boot-spl.bin. P.S.: написал в техподдержку Variscite, жду ответа.
Сообщение отредактировал shamrel - Jun 17 2013, 05:25
--------------------
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|