ivan1180 0 13 января, 2012 Опубликовано 13 января, 2012 · Жалоба am1808, sasamy Спасибо! Взял стабильное ядро с кернел.орг, добавил опцию earlyprintk, стало видно, что валится при попытке инициализации пинов I2C MUX: initialized I2C0_SDA MUX: Setting register I2C0_SDA PINMUX8 (0x00000020) = 0x21111111 -> 0x21112111 Выкинул инициализацию i2c, и ядро загрузилось, теперь буду rootfs over NFS подключать. Uncompressing Linux... done, booting the kernel. Linux version 3.2.1 (ivan@ivan-VirtualBox) (gcc version 4.5.3 (Buildroot 2012.02-git) ) #3 PREEMPT Fri Jan 13 22:06:11 MSK 2012 CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177 CPU: VIVT data cache, VIVT instruction cache Machine: DaVinci DA830/OMAP-L137/AM17x EVM bootconsole [earlycon0] enabled Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
J.Joker 0 29 февраля, 2012 Опубликовано 29 февраля, 2012 · Жалоба Помогите пожалуйста. Пытаюсь загрузить U-boot из NAND (проц. AM1705), по UART грузится нормально, в NAND по tftp тоже все передается, в NAND пишится. Переставляю пины на загрузку из NAND, и ничего не получается. В консоле тишина, потребление по току не меняется в сети не появляется, с перефирийе не общоятся. Проверял осциллографом ножки NAND (CS и данные), какие-то попытки чтения есть. Собираюсь поменять процессор, думаю что я его подпортил, так как других обьяснений нет. Бинарник подготавливал при помощи AisGen (отдельно для UART и отдельно для NAND). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 29 февраля, 2012 Опубликовано 29 февраля, 2012 · Жалоба в NAND пишится А если прочитать-сравнить? Собираюсь поменять процессор, думаю что я его подпортил, так как других обьяснений нет. Не торопитесь: вероятность "подпортить" процессор так, чтобы с NAND проходили любые операции, кроме загрузки, практически нулевая. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
J.Joker 0 29 февраля, 2012 Опубликовано 29 февраля, 2012 (изменено) · Жалоба А если прочитать-сравнить? Сравнивал, и при помощи комманды cpm и просто глазками читал, нмкаких ошибок, все совпадает. Настройки CE3CFG регистра тоже проверял и перепроверял, когда делал прошивку для NAND. Не торопитесь: вероятность "подпортить" процессор так, чтобы с NAND проходили любые операции, кроме загрузки, практически нулевая. Дело в том, что несколько дней назад каратнул питание, после чего плата стала много кушать. Только в режеми простоя порядка 140 мА до этого было 50 мА. (хотя проверял пальцем, никакой из чипов не греется). И проверенный u-boot, который до этого работал без проблем стал почему-то зависать где-то после 10 минут работы или простоя. Поэтому и грешу на железо... хотя мне только что пришла в голову мысль, что могла испортится NAND... Изменено 29 февраля, 2012 пользователем PavelG Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 29 февраля, 2012 Опубликовано 29 февраля, 2012 · Жалоба только что пришла в голову мысль, что могла испортится NAND... Но при этом пишется, читается и данные совпадают? Как-то сомнительно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Denchik 0 1 марта, 2012 Опубликовано 1 марта, 2012 · Жалоба PavelG таже проблема. Если гружу по UART все ок, все работает. NAND пишется/читается нормально как из под u-boot, так и в linux. Согласно документации NAND висит на CS3. Пины установлены для загрузки из NAND и при старте корректно считываются (JTAG у меня нет поэтому контролировал наличие обращение к NAND по CS3). Осциллографом контролирую тактовый сигнал на SDRAM и собственно он так и не появляется. А теперь по порядку: 1) подготовка файла u-boot. Согласно документации возможна загрузка сразу u-boot без использования UBL. Для этого необходимо обработать бинарный файл U-boot при помощи утилиты AisGen. Причем, если испльзуется оконный AisGen, то берется u-boot (файл без расширения, находится в директории куда собирался u-boot) к нему нужно добавить расширение .out. Можно использовать и u-boot.bin, но только с HexAIS и указанием адреса входа. Делал: HexAis-OMAP-L137.exe -i <файл .ini> -o u-boot.ais -entrypiont 0xc1080000 u-boot.bin@0xc1080000 Редактировал файл ini... Прчем в ini режим загрузки всегда NONE. Включал/отключал настройки переферии. Ничего не помогает. 2) Загружаю по UART рабочий образ u-boot. Далее по tftp скачиваю образ для nand и записываю его. #tftp 0xc0700000 u-boot-nand.bin #nand erase #nand write 0xc0700000 0x20000 0x40000 То, что nand пишется - проверено. 3) Выключаю питание 4) Устанавливаю перемычки для загрузки из nand 5) Включаю питание 6) Активность на CS3 есть (по документации должен считываться блок), тактовой на SDRAM нет, UART молчит как рыба об лед. Что не так? - NAND из поддерживаемых. Код по таблице 0xF1 (Micron 128MiB 2048 на страницу, 64 страницы на блок). Может адрес 0х20000 (куда кладу образ) не верен? - Мне кажется, что застревает где-то на обработке сценария Ais загрузчиком RBL. - Делал парсинг образа (aisparse.exe) все - вроде нормально. Уже идеи кончились. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
J.Joker 0 1 марта, 2012 Опубликовано 1 марта, 2012 (изменено) · Жалоба PavelG таже проблема. Если гружу по UART все ок, все работает. NAND пишется/читается нормально как из под u-boot, так и в linux... А у Вас, DenchikS, уже и ядро лежит во флешке? Изменено 1 марта, 2012 пользователем PavelG Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Denchik 0 1 марта, 2012 Опубликовано 1 марта, 2012 (изменено) · Жалоба Нет. ядро и файловая подтягиваются u-bootом по сети с tftp сервера. Тут проблем нет. ПС: Если не стартует u-boot, то смысл писать во флешку ядро? Изменено 1 марта, 2012 пользователем DenchikS Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ivan1180 0 3 марта, 2012 Опубликовано 3 марта, 2012 (изменено) · Жалоба DenchikS PavelG Для процессора 1705 у меня получилось записать u-boot в NAND память и загрузиться из NAND памяти : 1. Собрал u-boot 2. Обработал elf файл u-boot AISGen-ном, получил AIS образ 3. Записал образ в NAND при помощи Code Composer Studio и проекта NANDWriter (из пакета OMAP-L137_FlashAndBootUtils_2_20) Если писать образ u-boot самим u-boot то не заполняются биты OOB: (не работает ECC?). Я очень хочу отказаться от ССS, но пока не получается. Лог записи образа в NAND память при помощи Code Composer Stodio (через программатор BlackHawk): Starting OMAP-L137 NANDWriter. Do you want to global erase NAND flash?n Enter the binary AIS file name to flash (enter 'none' to skip) : C:\linuxubuntu\u-boot_ti_1705_test.bin Number of blocks needed for data: 0xC Writing image data to block 0x1, page 0x0 Writing image data to block 0x1, page 0x1 ..... Writing image data to block 0xC, page 0x1 Writing image data to block 0xC, page 0x2 NAND boot preparation was successful! Из лога видно, что писать он начинает с блока 1, у моей памяти размер блока 16К, т.е. смещение от начала NAND памяти 0х4000 После старта u-boot я посмотрел дамп NAND U-Boot > nand dump 0x4000 Page 00004000 dump: 54 49 50 41 0d 59 53 58 00 00 02 00 02 09 01 18 ... 00 00 00 00 ff ff ff ff 88 21 11 11 0d 59 53 58 07 00 03 00 01 00 00 00 ff ff ff ff 11 11 11 11 OOB: ff ff ff ff ff ff 98 a3 40 7a 37 a0 21 97 c2 a3 U-Boot > Если я пишу образ u-boot средствами u-boot, дамп отличается и процессор не стартует. Как я пишу в u-boot 1. Гружу u-boot через uart slh_OMAP-L137.exe -v -waitForDevice -p COM1 u-boot_ti_1705_test.bin 2. Загружаю образ u-boot по сети, протокол tftp setenv netmask 255.0.0.0 setenv ipaddr 192.168.0.10 setenv serverip 192.168.0.5 tftp u-boot_ti_1705_test.bin 3. Пишу в NAND nand erase 0x4000 0x40000 nand write.e 0xc0700000 0x4000 0x40000 4. Ресет и плата не стратует (биты OOB не заполнены!) U-Boot > nand dump 0x4000 Page 00004000 dump: 54 49 50 41 0d 59 53 58 00 00 02 00 02 09 01 18 .... 00 00 00 00 ff ff ff ff 88 21 11 11 0d 59 53 58 07 00 03 00 01 00 00 00 ff ff ff ff 11 11 11 11 OOB: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff U-Boot > Изменено 3 марта, 2012 пользователем Arischenko Ivan Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
J.Joker 0 4 марта, 2012 Опубликовано 4 марта, 2012 · Жалоба DenchikS PavelG Из лога видно, что писать он начинает с блока 1, у моей памяти размер блока 16К, т.е. смещение от начала NAND памяти 0х4000 ... 4. Ресет и плата не стратует (биты OOB не заполнены!) ... Спасибо Иван, видно тоже придется через JTAG шить, заодно я узнал как все-таки начальный адрес выбирать, а то я считал, что он должен быть 0x20000 (читал старый мануал по U-boot, и там была карта памяти NAND). Есть один вопрос к Вам, какую версию U-boot Вы используете? Дело в том, что последнюю версию как-то модифицировали, и при компиляции elf файл другого формата получается и AisGen (тот что в GUI) уже не может с ними работать, а с консольным прощивальщиком я так и не познакомился. Можно-ли у Вас попросить inf файл для консоли, с настройками, или совет по его созданию? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Denchik 0 4 марта, 2012 Опубликовано 4 марта, 2012 · Жалоба Спасибо за информацию. Однако прискорбно. Обнаружил еще один момент: 1) загрузка u-boot - обнаруживает отсутствие таблицы bad block и создает ее. 2) если перезагрузится из того же u-boot, то при следующей загрузке таблицы находятся. Но если загрузить ядро, то оно типа тоже определяет отсутствие таблицы (хотя u-boot как бы ее создал) и создает ее, а при перезагрузке уже u-boot не видит таблицу созданую ядром. Чувствую косяк в настройках, но u-boot или kernel? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ivan1180 0 4 марта, 2012 Опубликовано 4 марта, 2012 (изменено) · Жалоба PavelG Сейчас я использую версию из sdk_1_10_00_01, uboot-03.20.00.12. Более новые версии у меня не получалось конвертировать в AIS образ, но сегодня я нашел следующий способ : HexAIS_OMAP-L137.exe -ini config.ini -entrypoint 0xc1080000 -otype binary -o u-boot.ais uboot.bin@0xC1080000 Попробую свежую версию запустить, вроде там больше команд для работы с NAND памятью. Особенно меня интересует команда "nandecc hw". DenchikS Да, есть такое дело. Как я думаю это проблема в том что в ядре и u-boot разные таблицы ECC. По идее более свежая версия u-boot должна решить эту проблему. Обсуждалось ТУТ Изменено 4 марта, 2012 пользователем Arischenko Ivan Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Denchik 0 4 марта, 2012 Опубликовано 4 марта, 2012 · Жалоба Поправил таблицу как описано в http://processors.wiki.ti.com/index.php/DM...Nand_ECC_layout. Стал запускаться такт на SDRAM. Но UART вообще ничего не передает в линию. Все же интересно было бы глянуть Ваш ini. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Denchik 0 5 марта, 2012 Опубликовано 5 марта, 2012 · Жалоба Что еще любопытно, когда запускал плату были проблемы с загрузкой по UART (у меня используется UART0). Если включить настройку LPCS, вообще не грузится. Отсюда сделал вывод, что модули UART по умолчанию включены. Возможно, что начальный загрузчик после определения источника загрузки выключает остальную периферию? То PavelG: Если я правильно понимаю, то адрес куда кладется u-boot определяется геометрией самой флеш. У меня каждый блок это 64 страницы по 2048 байт каждая, таким образом адрес должен быть 64*2048=131072= 0х20000. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ivan1180 0 5 марта, 2012 Опубликовано 5 марта, 2012 (изменено) · Жалоба DenchikS Спасибо за ссылку, очень помогло! У есть проверенный u-boot, который работает через UART0, могу переслать на почту. До меня дошло сегодня фразы с форума что uboot-тов должно быть два, а именно : первый чтобы загрузиться, второй который пишется во флеш память. Для генерации AIS образа я использовал AISGen for D800K003, он имеет GUI интерфейс, также при работе он создает ini файл настроек, который я использовал как пример для HexAIS_OMAP-L137.exe; Тут есть одна тонкость : если брать последний u-boot, то AISGen отказывается делать для него AIS образ и приходится пользоваться HexAIS_OMAP-L137.exe Как писать AIS образ в NAND память, при помощи консольных утилит 1. По ссылке на первой странице этой ветки нужно пересобрать консольные утилиты Как пересобрать flash утилиты 2. Нужно собрать u-boot, в котором поправить таблицы по ссылке постом выше nand_ecclayout nand_davinci_4bit_layout_oobfirst 3. Подготовить ДВА образа AIS, первый с загрузкой по UART, второй по NAND 4. Загрузить образ первый образ по UART (выставить правильно конфигурацию загрузки bootmode pins) slh_OMAP-L137.exe -v -waitForDevice -p COM1 u-boot_ti_1705_test.bin 5. В uboot записать второй образ в NAND память. ais_reg_am1705.txt - настройки для AISGen config.txt - конфигурация для HexAIS_OMAP-L137.exe Изменено 5 марта, 2012 пользователем Arischenko Ivan Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться