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

 
 
> Cyclone V HPS: программирование QSPI, после первой прошивки перестал читаться Silicon ID
serjj
сообщение Feb 3 2015, 09:47
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



Всем доброго времени суток.
Продолжение Циклониады V rolleyes.gif В свете последних событий по загрузке baremetal приложения из SD/MMC на радостях решил на отладочной плате отработать загрузку из QSPI флеша. Собрал preloader для этих целей, залил его HPS flash programmer'ом (quartus_hps) как положено в виде 4 копий, такой вот командой (из под soc eds, 4 копии он делает сам, какой молодец):
Код
quartus_hps -c 1 -o P -a 0x0 preloader-mkpimage.bin

Программа сказала, что флеш успешно прошит. Щелкнул питанием на плате, посмотрел, что preloader запускается вплоть до загрузки приложения, SDRAM проинитилось, можно в него подгружать что-нибудь. Следующим шагом хотелось залить на флеш простенькую прогу а-ля helloworld, чтобы preloader ее запустил. Но флеш перестала прошиваться! вот что в консоли пишет по этому поводу:
Прикрепленное изображение

Не читается ID флеша. wtf? 05.gif пробовал переключить BSEL на плате - тогда он не подключается к флешу, типа "BSEL не соответствует ни QSPI ни NAND boot'у". Еще пробовал запустить альтеровский пример Altera-SoCFPGA-HardwareLib-QSPI-CV-GNU, программа выдает ошибку, подключался дебагером, вроде тоже проблема в чтении ID (функция alt_qspi_device_rdid()) на этапе инициализации QSPI интерфейса и флеш контроллера.
Кто-нибудь уже работал с загрузкой из QSPI флешки? В чем может быть проблема и как можно эту беду победить? help.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
serjj
сообщение Feb 12 2015, 12:03
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



Нашёл решение своей проблемы!

Причина: ножка BSEL2 и NAND_WE физически находятся на одном пине процессора. Когда я с FPGA жёстко задаю значение BSEL2 как 0 или 1, контроллер не может управлять NAND. Когда я убираю из FPGA проекта ножки управления BSEL2, на линии по умолчанию tri-state, контроллер может выставить 0 или 1, NAND управляется.

Решение: на отладочной борде сделано так
Прикрепленное изображение

Как видно из схемы установленные резисторы не дают конфигурационному уровню заблокировать доступ контроллера NAND к линии.
На нашей плате ножка проца и ножка FPGA закорочены. Что бы освободить линию для NAND контроллера сделал следующую конструкцию:
Код
logic confsel;
logic [31:0] cnt;
always_ff@(posedge clock) begin
  if (pll_locked) begin
    if (~&cnt)     cnt <= cnt + 1'b1;
  end
  if (cnt==CONFSTART) begin
    confsel <= 1'b1;
  end
  else if (cnt==CONFEND) begin
    confsel <= 1'b0;
  end
end
assign BOOTSEL2 = confsel ? 1'b0/*1'b1*/ : 1'bz;

где CONFSTART и CONFEND выбираются таким образом, что бы сигнал confsel выставлялся в 1 перед подачей сброса на HPS и падал в 0 после снятия сброса с некоторой задержкой (у меня более 10000 тактов), т.к. инитный код процессора читает состояние BSEL в некоторый момент времени после снятия сброса.

После такой модификации проекта утилита quartus_hps определила NAND на плате, я смог зашить в неё образы preloader'a и простейшего baremetal приложения
Прикрепленное изображение


Когда я перешиваю sof, происходит сброс HPS и в терминале выводится статусная информация preloader'a и собственно вывод программы
Прикрепленное изображение


Есть автономный запуск простейшего baremetal приложения на кастомной борде! biggrin.gif

Сообщение отредактировал serjj - Feb 12 2015, 12:28
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- serjj   Cyclone V HPS: программирование QSPI   Feb 3 2015, 09:47
- - COMA   Была такая же проблема. Загрузился c SD карты, в u...   Feb 3 2015, 10:23
- - serjj   А как запустить именно u-boot? Я попробовал с SD з...   Feb 3 2015, 12:01
- - COMA   Все это делается в загрузчике u-boot. Загрузиться...   Feb 3 2015, 12:10
- - serjj   COMA, спасибо, запустил u-boot. Но вот, что пишет:...   Feb 3 2015, 13:16
- - COMA   У меня BSEL = 0x101, флешка доступна. Попробуй за...   Feb 4 2015, 05:27
- - serjj   Пишет: КодSOCFPGA_CYCLONE5 # sf erase No SPI flash...   Feb 4 2015, 07:16
- - COMA   Остаётся выпаять и заменить.   Feb 4 2015, 11:37
- - serjj   R.I.P... Надо понять в чём была фатальная ошибка, ...   Feb 4 2015, 12:17
|- - alexPec   Цитата(serjj @ Feb 4 2015, 16:17) R.I.P.....   Feb 4 2015, 23:19
- - tvcam   serjj Можно попробывать отключить QSPI в QSYS и на...   Feb 4 2015, 16:24
- - WitFed   А как вообще работоспособность контролера QSPI мож...   Feb 5 2015, 08:53
- - serjj   ЦитатаЖесть... Думал уж на отладках то должно быть...   Feb 5 2015, 09:22
- - gosu-art   У меня пишет КодNo SPI flash selected. Please run ...   Feb 5 2015, 14:13
- - serjj   Ну это нормальный октлик на команду, флеш читается...   Feb 5 2015, 14:37
- - WitFed   Всё-таки надо все факты заново собрать и изложить ...   Feb 5 2015, 16:15
- - serjj   Good news everyone! ЦитатаЖесть... Думал уж на...   Feb 6 2015, 10:17
|- - alexPec   Спасибо за информацию!   Feb 9 2015, 17:21
- - serjj   Не хочу плодить темы, пишу тут, сейчас осваиваю вз...   Feb 10 2015, 07:55
- - serjj   Немного шаманства и мракобесия.. Ковыряю пробл...   Feb 10 2015, 13:18
|- - Stewart Little   Цитата(serjj @ Feb 10 2015, 16:18) Так во...   Feb 10 2015, 15:16
- - serjj   Холодный сброс генерируется как задержанный сигнал...   Feb 10 2015, 15:28
- - COMA   Ура!   Feb 12 2015, 12:26
- - shurikman   Добрый день. У меня стоит задача реализовать автон...   Aug 18 2016, 14:59
- - sonycman   Я u-boot не использую, юзаю MPL (mlnimal preloader...   Aug 19 2016, 03:42
- - shurikman   sonycman, спасибо. Скачал 16 версию,там есть приме...   Aug 19 2016, 13:49
|- - sonycman   Цитата(shurikman @ Aug 19 2016, 17:49) ER...   Aug 19 2016, 14:19
- - shurikman   По поводу автономной загрузки приложения из QSPI в...   Apr 28 2017, 12:03
|- - Jury093   Цитата(shurikman @ Apr 28 2017, 15:03) По...   Apr 28 2017, 12:21
|- - shurikman   Цитата(Jury093 @ Apr 28 2017, 15:21) я из...   May 16 2017, 14:56
- - shurikman   Вот мой алгоритм: 1. В версии для Jtag инициализир...   Apr 28 2017, 12:40
- - Sulley   День добрый! У меня несколько более странная ...   Jun 3 2017, 11:52
- - Sulley   Вопрос по-прежнему актуален.   Jun 16 2017, 05:34


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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 17:42
Рейтинг@Mail.ru


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