Устранение неполадок предзагрузчика платы Atlas-SoC - PullRequest
0 голосов
/ 08 марта 2019

Я только что купил новую плату Cyclone V от Terasic (Atlas-SoC) и планировал создать голое металлическое приложение.Сначала я использовал GSRD, предоставленный Terasic.Пример проекта от версии 14.0, и мой 17.1 Quartus попросил меня запустить обновление для этих 14.0 IP, но я увидел, что они уже все скомпилировали, и у меня была папка с файлом передачи обслуживания.Все, что мне нужно было сделать, это просто сделать preloader и uboot.Затем я выполнил следующие действия (из ракеты и во многих других местах):

  1. Создать файл .rbf.
  2. Я сделал предварительный загрузчик, используя инструмент bsp-editor из EDS-SoC.
  3. Успешно скомпилируйте preloader и получите preloader-mkpimage.bin.
  4. Создайте файл сценария uboot и uboot.
  5. Загрузите preloader на SD-карту с помощью alt-boot-disk-util.
  6. Скопируйте все файлы rbf, сценарии uboot и uboot на SD-карту.В этот момент я не делал никаких приложений, потому что хотел проверить, загружен ли предзагрузчик или нет.
  7. Подключите SD-карту к плате и включите питание 8. В Putty я увидел U-boot spl и Uboot работал нормально.

С первым успехом я попыталсясделать свой собственный дизайн HPS-FPGA.Я на основе конфигурации HPS сделал свой собственный HPS (инициализировал I2C, UART, не SDRAM и т. Д.).Для части FPGA я поместил несколько светодиодов PIO, JTAG UART, периферийный идентификатор системы и т. Д.

После завершения работы над конструктором платформы (Qsys) я создал верхний файл VHDL и подключил все узлы (точно так же, как GSRD).дизайн).На этом этапе я не добавил никаких IP-адресов, таких как сброс HPS, отладка и т. Д., Потому что я просто хотел посмотреть, работает ли предзагрузчик.

Затем я выполнил именно эти шаги.как и в случае с дизайном GSRD, на этот раз на Putty я ничего не получил.U-Boot SPL даже не появился.Чувствуя себя странно, я вернулся в ГСРД, чтобы проверить.Я скопировал всю папку с дизайном GSRD и сделал ее своим новым проектом.Затем я запустил обновление для этих IP и скомпилировал все заново.После этого preloader и uboot были сделаны одинаковыми шагами, и результат меня поразил: на терминале Putty у меня была только одна строка

U-Boot SPL 2013.01.01 (Mar 08 2019 - 10:28:04)

и больше ничего не происходило.Я думаю, что что-то не так с прелоадером, что-то не соответствует моему дизайну Quartus, или я допустил ошибки при сборке прелоадера.

Я искал во многих местах, выдвинул много гипотез и попробовалчтобы исправить это.Я даже связался с Terasic и посетил форум сообщества Intel, но у меня до сих пор нет ответа.

1 Ответ

0 голосов
/ 30 марта 2019

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

Если U-boot запускается и вы можете вводить в нее команды, это означает, что ваш прелоадер работает нормально. Вы можете вручную вводить команды при загрузке u-boot для настройки FPGA (включить мосты, загрузить rbf и перейти к начальному адресу программного приложения). Если, следуя этому методу, вы запустите приложение и FPGA, это означает, что все ваши файлы корректны сгенерировано, но вам нужно написать сценарий необходимых команд u-boot и запустить скрипт для автоматической настройки FPGA и запуска приложения из u-boot.

Вот ссылка на репозиторий github для DE1-SoC, где вы можете найти полное руководство по загрузке системы HPS-FPGA в baremetal: https://github.com/sahandKashani/SoC-FPGA-Design-Guide/blob/master/DE1_SoC/SoC-FPGA%20Design%20Guide/SoC-FPGA%20Design%20Guide%20%5BDE1-SoC%20Edition%5D.pdf

Надеюсь, это поможет!

...