Jump to content

    

tiky

Новичок*
  • Content Count

    4
  • Joined

  • Last visited

Community Reputation

0 Обычный
  1. Да действительно все оказалось куда проще чем я думал Ромбут залился нормально, и ю-бут тоже. Вот правда ю-бут не стартует пока что :( Буду с этим копаться :) З.Ы. Инетерсно по какой причине ю-бут отказывался нормально заливаться на флешку? Ведь по сути при старте загрузчик тянет ромбут в туже самую SRAM как и при заливке по DBGU :unsure: А к стати говоря, ктоньть может подсказать что сейчас за грабли с ю-бутом? Память, plla куда бы глянуть? :07:
  2. В начале по DBGU я заливаю в контроллер romboot он попдает во внутренний SRAM, далее я попадаю в меня romboot-а где выбираю команду "1: Download Dataflash [addr]" точнее "1 С0000000". Потом снова по x-modemu, заливаю U-boot. U-Boot попадает в sdram откуда переписывается во flash. Но у меня во флеш пишется килобайт нормально килобайт FFFFFFFF и т.д. Так происходит постоянно. :( Щас буду пробовать новый тест памяти возможно это что-то прояснит.
  3. Ну по поводу самбы, имхо неважно чем заливать DBGU или самбой результат будет один и тот же. Ну по поводу непропаев, насчет этого я смотрел и дома(с линзой) и на работе(с микроскопом,) такой вариан конечно возможен но маловероятен. А по поводу неправильной инициализации, ведь тест памяти проходит же, ну и кроме того я сидел специально расчитывал значение регистров для корректной инициализации. Ошибку не исключаю, но мне кажется тут она тоже маловероятна. Ну на всякий случай у меня hynix HY57V641620HG, если комуньть будет не лень написать правильные значения для данной памяти буду признателен. :) Нули идут т.к. я сделал "4: Clear bootloader section in Dataflash". Эта секция находится в самом начале флешки, собстно она и очистилась. Если просмотреть содержимое флешки дальше то там за место нулей появится U-Boot: У меня щас нет под рукой образа U-Boot-a, так бы залил снова и показал что заместо нулей будут записанны некоторые данные.. Да согласен, пока руки до нормального теста не дошли... :unsure: Спасибо за исходник! :) Щас попробую его потестить на своей плате ;)
  4. Народ, помогите разобраться в чем дело :smile3046: Есть плата rainbow 1.1 и есть u-boot, который упорно не хочет вставать на эту плату :unsure: Отправляю по x-modem-у образ u-boot-а, вроде бы все проходит удачно, далее чуток жду и вылетает "Verify Dataflash: Failed". Начал копать, и первое что сделал, посмотрел что прописалось на флешку... Здесь я пропущу часть вывода, т.к. там тоже нули Ну здесь такая же картина... Вообщем получается что килобайт нормальных данных. килобайт 0xFFFFFFFF (нули стоят т.к. я очистил загрузочный сектор, если смотреть далее, то заместо нулей будут нормальные данные, вообщем так и болжно быть) и все поновой. Дальше стал думать в чем причина, первое что пришло в голову это SDRAM. Внимательно прошелся по плате со линзой посмотрел на наличие непропаев. Вроде бы нет :unsure: Написал простенькую подпрограмку тестирования памяти, вроде бы тоже все ок. Вот навсякий случай ее код: 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 контроллера, безрезультатно :( Следующее, что подверглось тестированию это флешка, поменял флешки местами на плате, результат тот же, но зато теперь есть точно уверенность что он оби рабочие. Далее, что стал проверять, это непосредственно данные которые брались из 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: Посмотрел на какой же адрес указывают эти указатели оказалось, что на rx_cmd_pt=0x000029FE, tx_cmd_pt=0x000029FE, т.е. куда-то в начало адресного пространства(странно как-то ведь SDRAM у нас находится совсем в другом месте, как собстно и SRAM).Может я где-то косяк допустил? Подскажите в каком направлении двигаться? З.Ы. Да к стати думал о том что неправильно заданна частота PLL и соответстно памяти, но потом глянул в код и увидел, что PLL инициализируется только на шаге загрузке U-Boota, а у меня до этого даже не доходит. Выходит что пока вся система работает с частотой кварца. Исходник romboota брал с heavy.