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

 
 
> Проблема с romboot-ом, Народ помогите разобраться
tiky
сообщение Apr 10 2008, 12:49
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 10-04-08
Пользователь №: 36 654



Народ, помогите разобраться в чем дело smile3046.gif Есть плата rainbow 1.1 и есть u-boot, который упорно не хочет вставать на эту плату unsure.gif Отправляю по x-modem-у образ u-boot-а, вроде бы все проходит удачно, далее чуток жду и вылетает "Verify Dataflash: Failed". Начал копать, и первое что сделал, посмотрел что прописалось на флешку...
Цитата
ATMEL LOADER VER 1.01 Apr 10 2008 16:03:20
*----------------------------------------*
DataFlash:AT45DB161
Nb pages: 004096
Page Size: 000528
Size=02162688 bytes
Logical address: 0xC0000000
*----------------------------------------*
1: Download Dataflash [addr]
2: Read Dataflash [addr]
3: Start U-BOOT
4: Clear bootloader section in Dataflash
5: Memory test

*----------------------------------------*
Enter: 2 C0000000
c0000000: 00000000 00000000 00000000 00000000 ................
c0000010: 00000000 00000000 00000000 00000000 ................
c0000020: 00000000 00000000 00000000 00000000 ................
c0000030: 00000000 00000000 00000000 00000000 ................
c0000040: 00000000 00000000 00000000 00000000 ................
c0000050: 00000000 00000000 00000000 00000000 ................
c0000060: 00000000 00000000 00000000 00000000 ................
c0000070: 00000000 00000000 00000000 00000000 ................
c0000080: 00000000 00000000 00000000 00000000 ................
c0000090: 00000000 00000000 00000000 00000000 ................
c00000a0: 00000000 00000000 00000000 00000000 ................
c00000b0: 00000000 00000000 00000000 00000000 ................
c00000c0: 00000000 00000000 00000000 00000000 ................
c00000d0: 00000000 00000000 00000000 00000000 ................
c00000e0: 00000000 00000000 00000000 00000000 ................
c00000f0: 00000000 00000000 00000000 00000000 ................

Здесь я пропущу часть вывода, т.к. там тоже нули
Цитата
c0000400: fffffff fffffffff ffffffff ffffffff ................
c0000410: ffffffff ffffffff ffffffff ffffffff ................
c0000420: ffffffff ffffffff ffffffff ffffffff ................
c0000430: ffffffff ffffffff ffffffff ffffffff ................
c0000440: ffffffff ffffffff ffffffff ffffffff ................
c0000450: ffffffff ffffffff ffffffff ffffffff ................
c0000460: ffffffff ffffffff ffffffff ffffffff ................
c0000470: ffffffff ffffffff ffffffff ffffffff ................
c0000480: ffffffff ffffffff ffffffff ffffffff ................
c0000490: ffffffff ffffffff ffffffff ffffffff ................
c00004a0: ffffffff ffffffff ffffffff ffffffff ................
c00004b0: ffffffff ffffffff ffffffff ffffffff ................
c00004c0: ffffffff ffffffff ffffffff ffffffff ................
c00004d0: ffffffff ffffffff ffffffff ffffffff ................
c00004e0: ffffffff ffffffff ffffffff ffffffff ................
c00004f0: ffffffff ffffffff ffffffff ffffffff ................
Ну здесь такая же картина...
Вообщем получается что килобайт нормальных данных. килобайт 0xFFFFFFFF (нули стоят т.к. я очистил загрузочный сектор, если смотреть далее, то заместо нулей будут нормальные данные, вообщем так и болжно быть) и все поновой.

Дальше стал думать в чем причина, первое что пришло в голову это SDRAM. Внимательно прошелся по плате со линзой посмотрел на наличие непропаев. Вроде бы нет unsure.gif Написал простенькую подпрограмку тестирования памяти, вроде бы тоже все ок.
Вот навсякий случай ее код:
Код
printf("Starting memory test...\n\r");
            while (1){
            
           pSDRAM = (unsigned int *) 0x20000000;
    
        for (wCount = 0;wCount < 0x1FFFFFF;wCount++){
            wWrite=0x20000000+wCount;
            *pSDRAM = wWrite;
            wRead = *pSDRAM;
            //delay
            for(s_time=0;s_time<1000;s_time++);
            if (wRead != wWrite)
                   printf ("!\n\rAddress [0x%08X] = Write: 0x%08X, Read: 0x%08X\n\r",wWrite,wWrite,wRead );
            pSDRAM++;
        }

Потом попробовал поиграться с настройками SDRAM контроллера, безрезультатно sad.gif
Следующее, что подверглось тестированию это флешка, поменял флешки местами на плате, результат тот же, но зато теперь есть точно уверенность что он оби рабочие.
Далее, что стал проверять, это непосредственно данные которые брались из SPI. Дошел до функции AT91F_SpiWrite(), в ней есть два указателя на массив в памяти куда PDC будет кидать данные из SPI.
Код
        /* Initialize the Transmit and Receive Pointer */

        AT91C_BASE_SPI->SPI_RPR = (unsigned int)pDesc->rx_cmd_pt;

        AT91C_BASE_SPI->SPI_TPR = (unsigned int)pDesc->tx_cmd_pt;

Если считывать эту память то действительно считываемые символы лежат там, но к моему разочарованию там же оказались и 0xFFFFFFFF crying.gif Посмотрел на какой же адрес указывают эти указатели оказалось, что на rx_cmd_pt=0x000029FE, tx_cmd_pt=0x000029FE, т.е. куда-то в начало адресного пространства(странно как-то ведь SDRAM у нас находится совсем в другом месте, как собстно и SRAM).Может я где-то косяк допустил? Подскажите в каком направлении двигаться?

З.Ы. Да к стати думал о том что неправильно заданна частота PLL и соответстно памяти, но потом глянул в код и увидел, что PLL инициализируется только на шаге загрузке U-Boota, а у меня до этого даже не доходит. Выходит что пока вся система работает с частотой кварца. Исходник romboota брал с heavy.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
tiky
сообщение Apr 10 2008, 14:17
Сообщение #2





Группа: Новичок
Сообщений: 4
Регистрация: 10-04-08
Пользователь №: 36 654



Цитата
Т.е. ромбут Вы во флеш записали. После чего у Вас плата нормально стартует со флеши ?
Далее вы х-модемом заливаете Ю-Бут (уже не помню с какого адреса) и он пишется, но не корректно ?
Ошибки повторяющиеся или случайные ?

В начале по DBGU я заливаю в контроллер romboot он попдает во внутренний SRAM, далее я попадаю в меня romboot-а где выбираю команду "1: Download Dataflash [addr]" точнее "1 С0000000". Потом снова по x-modemu, заливаю U-boot. U-Boot попадает в sdram откуда переписывается во flash. Но у меня во флеш пишется килобайт нормально килобайт FFFFFFFF и т.д. Так происходит постоянно. sad.gif Щас буду пробовать новый тест памяти возможно это что-то прояснит.

Сообщение отредактировал tiky - Apr 10 2008, 14:19
Go to the top of the page
 
+Quote Post
AlexMad
сообщение Apr 10 2008, 14:34
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 262
Регистрация: 18-02-05
Из: SPb
Пользователь №: 2 743



Цитата(tiky @ Apr 10 2008, 18:17) *
В начале по DBGU я заливаю в контроллер romboot он попдает во внутренний SRAM, далее я попадаю в меня romboot-а где выбираю команду "1: Download Dataflash [addr]" точнее "1 С0000000". Потом снова по x-modemu, заливаю U-boot. U-Boot попадает в sdram откуда переписывается во flash. Но у меня во флеш пишется килобайт нормально килобайт FFFFFFFF и т.д. Так происходит постоянно. sad.gif Щас буду пробовать новый тест памяти возможно это что-то прояснит.

После заливки ромбута в рам, надо залить его ЕЩЕ раз (команда 1 0xC0000000) для записи во флешь, стартануть из флеши и только потом заливать у-бут
Go to the top of the page
 
+Quote Post
tiky
сообщение Apr 10 2008, 15:31
Сообщение #4





Группа: Новичок
Сообщений: 4
Регистрация: 10-04-08
Пользователь №: 36 654



Цитата(AlexMad @ Apr 10 2008, 18:34) *
После заливки ромбута в рам, надо залить его ЕЩЕ раз (команда 1 0xC0000000) для записи во флешь, стартануть из флеши и только потом заливать у-бут

Да действительно все оказалось куда проще чем я думал biggrin.gif Ромбут залился нормально, и ю-бут тоже. Вот правда ю-бут не стартует пока что sad.gif Буду с этим копаться smile.gif
З.Ы. Инетерсно по какой причине ю-бут отказывался нормально заливаться на флешку? Ведь по сути при старте загрузчик тянет ромбут в туже самую SRAM как и при заливке по DBGU unsure.gif

А к стати говоря, ктоньть может подсказать что сейчас за грабли с ю-бутом? Память, plla куда бы глянуть? 07.gif
Go to the top of the page
 
+Quote Post
slava2005
сообщение Apr 11 2008, 07:24
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 168
Регистрация: 26-05-05
Из: Москва
Пользователь №: 5 423



Цитата(tiky @ Apr 10 2008, 19:31) *
А к стати говоря, ктоньть может подсказать что сейчас за грабли с ю-бутом? Память, plla куда бы глянуть? 07.gif


Осторожнее. Ю-бут НЕ должен настраивать перефирию.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- tiky   Проблема с romboot-ом   Apr 10 2008, 12:49
- - АДИКМ   попробуйте залить самбой.   Apr 10 2008, 13:02
|- - slava2005   Цитата(АДИКМ @ Apr 10 2008, 17:02) попроб...   Apr 10 2008, 13:08
|- - AlexMad   Цитата(slava2005 @ Apr 10 2008, 17:08) То...   Apr 10 2008, 13:26
- - tiky   Цитатапопробуйте залить самбой. Ну по поводу самбы...   Apr 10 2008, 13:43
|- - slava2005   Цитата(tiky @ Apr 10 2008, 17:39) Нули ид...   Apr 10 2008, 13:43
- - Dron_Gus   Чтобы не плодить лишних тем, задам свой глупый воп...   Jul 16 2008, 10:11
|- - slava2005   Цитата(Dron_Gus @ Jul 16 2008, 14:11) Что...   Jul 16 2008, 14:55
- - sergeeff   На сайте Atmel'a буквально вчера, видать по мн...   Jul 16 2008, 17:01
- - Dron_Gus   Цитата(slava2005 @ Jul 16 2008, 18:55) Да...   Jul 16 2008, 17:41
|- - Alex2172   Цитата(Dron_Gus @ Jul 16 2008, 21:41) Пон...   Aug 27 2008, 11:23
- - sergeeff   Посмотри http://www.atmel.com/dyn/products/app_not...   Jul 16 2008, 18:13
- - Dron_Gus   Там опять же готовый бинарник и исходники, но не п...   Jul 16 2008, 18:55
- - Cadavre   У меня та же самая проблема: после повторной залив...   May 26 2011, 06:54


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

 


RSS Текстовая версия Сейчас: 30th July 2025 - 04:11
Рейтинг@Mail.ru


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