Перейти к содержанию
    

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Помогите пожалуйста. Пытаюсь загрузить U-boot из NAND (проц. AM1705), по UART грузится нормально, в NAND по tftp тоже все передается, в NAND пишится. Переставляю пины на загрузку из NAND, и ничего не получается. В консоле тишина, потребление по току не меняется в сети не появляется, с перефирийе не общоятся. Проверял осциллографом ножки NAND (CS и данные), какие-то попытки чтения есть. Собираюсь поменять процессор, думаю что я его подпортил, так как других обьяснений нет. Бинарник подготавливал при помощи AisGen (отдельно для UART и отдельно для NAND).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в NAND пишится

А если прочитать-сравнить?

 

Собираюсь поменять процессор, думаю что я его подпортил, так как других обьяснений нет.

Не торопитесь: вероятность "подпортить" процессор так, чтобы с NAND проходили любые операции, кроме загрузки, практически нулевая.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А если прочитать-сравнить?

Сравнивал, и при помощи комманды cpm и просто глазками читал, нмкаких ошибок, все совпадает.

Настройки CE3CFG регистра тоже проверял и перепроверял, когда делал прошивку для NAND.

 

Не торопитесь: вероятность "подпортить" процессор так, чтобы с NAND проходили любые операции, кроме загрузки, практически нулевая.

Дело в том, что несколько дней назад каратнул питание, после чего плата стала много кушать. Только в режеми простоя порядка 140 мА до этого было 50 мА. (хотя проверял пальцем, никакой из чипов не греется).

И проверенный u-boot, который до этого работал без проблем стал почему-то зависать где-то после 10 минут работы или простоя. Поэтому и грешу на железо... хотя мне только что пришла в голову мысль, что могла испортится NAND...

Изменено пользователем PavelG

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

только что пришла в голову мысль, что могла испортится NAND...

Но при этом пишется, читается и данные совпадают? Как-то сомнительно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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) все - вроде нормально.

Уже идеи кончились.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

PavelG таже проблема. Если гружу по UART все ок, все работает. NAND пишется/читается нормально как из под u-boot, так и в linux...

А у Вас, DenchikS, уже и ядро лежит во флешке?

Изменено пользователем PavelG

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нет. ядро и файловая подтягиваются u-bootом по сети с tftp сервера. Тут проблем нет.

ПС: Если не стартует u-boot, то смысл писать во флешку ядро?

 

 

Изменено пользователем DenchikS

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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 >

Изменено пользователем Arischenko Ivan

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

DenchikS PavelG

Из лога видно, что писать он начинает с блока 1, у моей памяти размер блока 16К, т.е. смещение от начала NAND памяти 0х4000

...

 

4. Ресет и плата не стратует (биты OOB не заполнены!)

...

Спасибо Иван, видно тоже придется через JTAG шить, заодно я узнал как все-таки начальный адрес выбирать, а то я считал, что он должен быть 0x20000 (читал старый мануал по U-boot, и там была карта памяти NAND).

Есть один вопрос к Вам, какую версию U-boot Вы используете? Дело в том, что последнюю версию как-то модифицировали, и при компиляции elf файл другого формата получается и AisGen (тот что в GUI) уже не может с ними работать, а с консольным прощивальщиком я так и не познакомился. Можно-ли у Вас попросить inf файл для консоли, с настройками, или совет по его созданию?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за информацию. Однако прискорбно. Обнаружил еще один момент:

1) загрузка u-boot - обнаруживает отсутствие таблицы bad block и создает ее.

2) если перезагрузится из того же u-boot, то при следующей загрузке таблицы находятся. Но если загрузить ядро, то оно типа тоже определяет отсутствие таблицы (хотя u-boot как бы ее создал) и создает ее, а при перезагрузке уже u-boot не видит таблицу созданую ядром.

Чувствую косяк в настройках, но u-boot или kernel?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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 должна решить эту проблему. Обсуждалось ТУТ

Изменено пользователем Arischenko Ivan

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поправил таблицу как описано в http://processors.wiki.ti.com/index.php/DM...Nand_ECC_layout. Стал запускаться такт на SDRAM. Но UART вообще ничего не передает в линию.

Все же интересно было бы глянуть Ваш ini.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что еще любопытно, когда запускал плату были проблемы с загрузкой по UART (у меня используется UART0). Если включить настройку LPCS, вообще не грузится. Отсюда сделал вывод, что модули UART по умолчанию включены. Возможно, что начальный загрузчик после определения источника загрузки выключает остальную периферию?

 

То PavelG: Если я правильно понимаю, то адрес куда кладется u-boot определяется геометрией самой флеш. У меня каждый блок это 64 страницы по 2048 байт каждая, таким образом адрес должен быть 64*2048=131072= 0х20000.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Изменено пользователем Arischenko Ivan

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...