реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Cirrus + Flash + download + redboot, грабли
AlChi
сообщение Apr 12 2008, 07:39
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 23-03-08
Пользователь №: 36 156



Решили замутить тут систему на Cirrus (Arm9, 9301) и Flash(Samsung). Делюсь опытом.
Пройденные грабли:
1) Утилита download (версия 2007года) грузит по com порту 2048 байт стартового загрузчика в ethernet буфер arma и передает ему управление. Этот стартовый загрузчик грузит оставшуюся часть в ОЗУ. Следовательно, если дошли до этого этапа - с ОЗУ все тип-топ. После загрузки передает управление загруженной части в ОЗУ. Она проверяет наличие флэш. Появляется сообщение Program the nor FLASH. В нашем случае на этом жизнь останавливалась. Анализ исходников download выявяил следующее: какой-то циррусовский ламерюга в этом месте передергивает com порт на скорость 115200. Поэтому лезем в main.c и в main() и в самом начале функции коментим функцию SetBaud() и заодно enable_debugtimer().
2) Но жизнь все не налаживалась... Анализ исходников показал, что download заточена только под intel и AMD флэшки, никакого самсунга там не преполагалось. Так как голос разума подсказывает, что наша флэшка совместима с amd, делаем следующее: в файле amd.с меняем 3 на 4 в #define MAX_AMD_compatible, и в структуре под этим определением добавляем строчку {0x00EC,"samsung"}, где число носит смысл ManufactureID. После этого появился долгожданный процентный бегунок записи во флэш redboot.bin
3) Заметили неустойчивость в работе download - либо шьет как положено, либо вешается на Program the nor FLASH. повторный анализ исходников показал, что все тот же цируссовский ламерюга в download.c употребил такую конструкцию while((cChar=getChar(10))!=0){}. Смысл "10" тут наверно всем ясен (время ожидания), поэтому изменение его на "100" решает проблему.

Не пройденные грабли (это вопросы к участникам форума):
1) После прошивки redboot в флэш и старта - двойное мигание LED с интервалом около 2 сек. Игры с разными компиляциями redboot могут давать еще один случай, когда LED горит на постоянку, но при этом reset блокируется (т.е. спасает только передергивание питания). По com порту всегда тишина. Что за симптомы?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 12 2008, 08:53
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(AlChi @ Apr 12 2008, 11:39) *
Не пройденные грабли (это вопросы к участникам форума):
1) После прошивки redboot в флэш и старта - двойное мигание LED с интервалом около 2 сек. Игры с разными компиляциями redboot могут давать еще один случай, когда LED горит на постоянку, но при этом reset блокируется (т.е. спасает только передергивание питания). По com порту всегда тишина. Что за симптомы?

Симптомы указывают на то, что RedBoot не видит SDRAM.

Вам придется изменить инициализацию SDRAM в RedBoot и добавить свою флеш в список.

P.S. Что это всех так на самсунговские флеши потянуло, интересно?
Go to the top of the page
 
+Quote Post
AlChi
сообщение Apr 12 2008, 10:36
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 23-03-08
Пользователь №: 36 156



Цитата(aaarrr @ Apr 12 2008, 12:53) *
Вам придется изменить инициализацию SDRAM в RedBoot и добавить свою флеш в список.


Где именно править, исходники или конфигурационные файлы? (просто только приступил к этому вопросу)

Цитата(aaarrr @ Apr 12 2008, 12:53) *
P.S. Что это всех так на самсунговские флеши потянуло, интересно?


да они вроде не плохие уж совсем ... по описаниям cool.gif
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 12 2008, 13:11
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(AlChi @ Apr 12 2008, 14:36) *
Где именно править, исходники или конфигурационные файлы? (просто только приступил к этому вопросу)

Начать советую с конфигурации, хотя это дело на любителя. Если самсунговская флеш является полным аналогом какой-нибудь AMD'шной, то можно просто скопировать её данные и исправить IDs.

Еще, как я понимаю, у Вас подключение SDRAM отличается от китового.
Go to the top of the page
 
+Quote Post
AlChi
сообщение Apr 14 2008, 18:47
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 23-03-08
Пользователь №: 36 156



продолжаю:

Вопрос со SDRAM решился - оказалось достаточно было в файле edb93xx.patch, где задаются установки по умолчанию, прописать вместо SDCSn3 SDCSn0. И появилось долгожданное приглашение redboot. Кстати, вариант предлагаемый лимонниками - создать файл SDRAM.ecm, не знаю почему, но не прокатил. Спасибо aaarrr за совет- такое характерное мигание действительно указывает на проблемы с SDRAM

Новые грабли:
Опять проблема с FLASH (мать ее) - redboot пишет : FLASH : Driver init error. Нутром чую, что опять дело в ID.

попутно вопросик: имеет ли значение (для redboot) тип флэши: top или botom ?

Сообщение отредактировал AlChi - Apr 14 2008, 18:51
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 14 2008, 18:55
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(AlChi @ Apr 14 2008, 22:47) *
Новые грабли:
Опять проблема с FLASH (мать ее) - redboot пишет : FLASH : Driver init error. Нутром чую, что опять дело в ID.

Может быть, "FLASH: driver init failed"?

Цитата(AlChi @ Apr 14 2008, 22:47) *
попутно вопросик: имеет ли значение (для redboot) тип флэши: top или botom ?

Имеет, конечно. У них же разная конфигурация секторов.
Go to the top of the page
 
+Quote Post
AlChi
сообщение Apr 14 2008, 18:59
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 23-03-08
Пользователь №: 36 156



Цитата(aaarrr @ Apr 14 2008, 22:55) *
Может быть, "FLASH: driver init failed"?

да

ok, попробую, отпишусь.

Цитата(aaarrr @ Apr 14 2008, 22:55) *
Имеет, конечно. У них же разная конфигурация секторов.


Если у нас top не стоит, можем ли мы полноценно работать только с bottom?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 14 2008, 19:02
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(AlChi @ Apr 14 2008, 22:59) *
Если у нас top не стоит, можем ли мы полноценно работать только с bottom?

Можете.
Go to the top of the page
 
+Quote Post
AlChi
сообщение Apr 15 2008, 18:05
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 23-03-08
Пользователь №: 36 156



продолжим. Есть такой файл: flash_am29xxxxx.inl В нем прописаны установки для flashей amd в виде последовательности структур. В нашем случае оказалось достаточно взять близкую по параметрам флэш amd и переписать некоторые ее параметры. А именно DeviceID и boot blockи и т.п. Все! Redboot поднят!

(надеюсь последние :-) ) грабли:
Не пашет Ethernet. Симптомы такие: после установки ip адресов MAC и т.п.(fconfig) и пересброса значок "+" замирает примерно на минуту, затем появляется оставшаяся часть redboota с приглашением. Никаких erroroв нет. Однако пингование не проходит. Сначала думал, что и здесь нужно прописывать что то типа ID, но порывшись в pdf на ethernet микросхему, ничего такого не нашел. 05.gif
Что думаете: физика или прога?

Сообщение отредактировал AlChi - Apr 15 2008, 18:07
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 15 2008, 19:20
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



RedBoot какой версии? Какой PHY, как сконфигурирован, видит ли кабель?
Go to the top of the page
 
+Quote Post
AlChi
сообщение Apr 17 2008, 18:13
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 23-03-08
Пользователь №: 36 156



Цитата(aaarrr @ Apr 15 2008, 23:20) *
RedBoot какой версии? Какой PHY, как сконфигурирован, видит ли кабель?

Redboot идет в составе дистрибутива для сборки linux от цитруссовых. если отдельно то качается отсюда http://arm.cirrus.com/files/index.php?path=linux%2Fpackages/
версия 2.0. от 29 января 2007 года.

По поводу ethernet дело оказалось в железе, поэтому сейчас с ним все ok.
Но вот теперь просто не нашутку пипец. Итак по порядку:
redboot работает без проблем: грузит, пишет, читает, запускает и нигде не спотыкается (ттт)
А проблема в том, что при запуске ядра после Uncompressing Linux.............................. тишина.
Лезем на форумы - полный бардак! Цитруссовый аналогичные вопросы игнорируют, поддержка отечественного аналога ТИОН-ПРО либо косит под дурачков, либо тоже откровенно игнорирует. А судя по количеству таких вопросов, тема то очень и очень актуальна!
Ну делать нечего - начинаем игры с различными сборками под различные процессоры (01, 02, 07, 12, 15), изучение исходников загрузчика линух и ядра 07.gif и вобщем можно было бы много писать впечатлений, но основные умозаключения такие:
1) судя по тому, что при комманде "exec" сообщение "Uncompressing Linux...." не появляется, а при "exec 0xc0080000" появляется, то загрузчик Linux стартует и даже запускает функцию gunzip()? а вот почему дальше не идет - не понимаю wacko.gif Такое ощущение, что происходят какие то игры с виртуальными и физическими адресами в момент перехода от первичного загрузчика ядра (в котором unzip) к основному (там должно быть сообщение "boot kernel")

Что это может быть? Спасибо

Сообщение отредактировал AlChi - Apr 17 2008, 18:28
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 17 2008, 18:33
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(AlChi @ Apr 17 2008, 22:13) *
1) судя по тому, что при комманде "exec" сообщение "Uncompressing Linux...." не появляется, а при "exec 0xc0080000" появляется, то загрузчик Linux стартует и даже запускает функцию gunzip()? а вот почему дальше не идет - не понимаю wacko.gif

Это уже очень хороший результат smile.gif А консоль-то прописали (console=ttyAM0)?
Go to the top of the page
 
+Quote Post
AlChi
сообщение Apr 17 2008, 18:39
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 23-03-08
Пользователь №: 36 156



Цитата(aaarrr @ Apr 17 2008, 22:33) *
Это уже очень хороший результат smile.gif А консоль-то прописали (console=ttyAM0)?

Да, я пробовал различные варианты, в том числе и с "console=ttyAM0,57600"

есть какая то сырая инфа (из форумов) о том, что redboot подготавливает табличку параметров для linux и поэтому версии linux от 2.6.17 не нужно специально компилить с указанием SDCS, CS и т.п. Толковых доков на это дело разумеетс нет 05.gif
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 17 2008, 19:12
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Как я понимаю, у Вас SDRAM висит на nSDCS3? Тогда должно запускаться ядро под EDB9302A.

Вот список файлов для правки под конкретную конфигурацию памяти:
Код
include/asm-arm/arch-ep93xx/memory.h
include/asm-arm/arch-ep93xx/hardware.h
arch/arm/mach-ep93xx/edb93??.c
arch/arm/mach-ep93xx/Makefile.boot
Go to the top of the page
 
+Quote Post
AlChi
сообщение Apr 17 2008, 19:22
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 23-03-08
Пользователь №: 36 156



Огромное спасибо! Завтра займусь.

p.s. небольшая поправка. для edb9302a -> sdcsn0, у нас на ней sdram
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th June 2025 - 18:19
Рейтинг@Mail.ru


Страница сгенерированна за 0.01501 секунд с 7
ELECTRONIX ©2004-2016