Перейти к содержанию
    

Проблемы при прошивке ArriaV Soc FPGA по JTAG

Доброго времени суток.

 

Имеется удалённый доступ к Arria V SoC Development Board. Собираю в Quartus 14.0, пытаюсь прошить FPGA. В JTAG цепочке 3 устройства: SOCVHPS -> FPGA -> CPLD. За основу прокета взят GHRD (Golden Hardware Reference Design), добавлены свои IP в QSys (и в частности используются 2 FPGA Hard Memory Controllers). Когда прошиваю FPGA *.sof файлом из GHRD (Golden Hardware Reference Design) - всё корректно. Когда пытаюсь прошить FPGA *.sof файлом своего проекта - процесс останавливается на 96%, и JTAG цепочка ломается (необходмо ресетать плату). JTAG Debugger рапортует:

!Error: The TDI connection to the first detected device 5ASTFD5(G3|K3|K3ES)/.. might be shorted to VCC or is an open circuit
!Error: The TCK and TMS connections to the device before the first detected device 5ASTFD5(G3|K3|K3ES)/.. might have a problem

Пытаясь найти причины проблемы, удалось обнаружить только то, что как только из QSys подсистемы выкидываю HPS компонент - проблема исчезает, и FPGA программируется успешно. Перепробовал уже кучу модификаций и проектных настроек, но с HPS программирование фэйлится. При этом проект GHRD, в котором HPS компонент имеется, программируется корректно.

 

Собственно вопрос: может есть у кого идеи, что не так? Сам я с HPS до этого не работал. Из мануалов вижу, что Boot Process там многоступенчатый, но вроде это больше относится к загрузке из Flash (а по JTAG можно как обычно FPGA залить и отлаживаться).

FPGA_JTAG_programming_failure.jpg

Изменено пользователем Vengin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Продолжая копать в поисках причины проблемы, случайно обнаружил такой Warning в *.asm.rpt репорте Quartus Assembler-а (т.е. на этапе создания файла *.sof прошивки FPGA):

Warning (11713): The configuration of the Hard Processor Subsystem (HPS) within this design has changed.
The Preloader software that initializes the HPS requires an update.
Using hps_isw_handoff/<name>/, run the Preloader Support Package Generator to update your Preloader software

В этой папке снегерены какие-то *.c, *.h, *.xml файлы и *.hiof.

Может ли это быть причиной проблемы? Пока ещё не совсем представляю как этот Preloader обновить (статически во Flash?), и нужно ли это будет делать каждый раз при изменении HPS компонента?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Продолжая копать в поисках причины проблемы, случайно обнаружил такой Warning в *.asm.rpt репорте Quartus Assembler-а (т.е. на этапе создания файла *.sof прошивки FPGA):

Warning (11713): The configuration of the Hard Processor Subsystem (HPS) within this design has changed.
The Preloader software that initializes the HPS requires an update.
Using hps_isw_handoff/<name>/, run the Preloader Support Package Generator to update your Preloader software

В этой папке снегерены какие-то *.c, *.h, *.xml файлы и *.hiof.

Может ли это быть причиной проблемы? Пока ещё не совсем представляю как этот Preloader обновить (статически во Flash?), и нужно ли это будет делать каждый раз при изменении HPS компонента?

Нет, это исходники для генерации загрузчика (прелоадера) (с помощью BSP-Editor, который входит в пакет SoC EDS).

Да, его нужно обновлять каждый раз, когда вносятся изменения в HPS компонент.

Но к ошибкам программирования по JTAG это не должно приводить.

Вы ведь не пытаетесь загрузить систему с помощью загрузчика пока что.

 

Если GHRD успешно прошивается, тогда возможно проблема в созданном вами компоненте HPS.

Попробуйте взять за основу GHRD, и на его базе создать свою систему.

Оставьте непосредственно HPS, удалите ненужные модули и добавьте свои.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если GHRD успешно прошивается, тогда возможно проблема в созданном вами компоненте HPS.

Попробуйте взять за основу GHRD, и на его базе создать свою систему.

Оставьте непосредственно HPS, удалите ненужные модули и добавьте свои.

Да в общем-то всё так и делал. Добавли QSys подсистему из GHRD в свой проект и в неё добалял разрабатываемые компоненты. А позже (когда пытался устранить проблему) максимально приблизил все известные параметры к GHRD (и в QSys подситсеме, и в настройках Квартуса *.qsf файле). Пока ещё не испробованный вариант (из-за нехватки времени) - начать полностью с GHRD проекта, и поэтапно туда добалять компоненты своего проекта. пытаясь обнаружить/решить проблему этим способом.

 

А вообще мне непонятно, разве можно так "настроить" HPS (или другие подсистемы), что FPGA даже не сможет прошиваться по JTAG? Я понимаю если после прошивки (в User Mode) уже всё не заведётся, но чтобы сам процесс прошивки сломался - это мне непонятно. Даже если какой-то reset/watchdog подвешивает HPS, разве это влияет на процез прошивки FPGA? Единственное что приходит в голову, это влияние HPS (он ведь даже присутствует отдельным элементом в JTAG цепочке), и как-то косвенно всё это взаимосвязано.

Изменено пользователем Vengin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А вообще мне непонятно, разве можно так "настроить" HPS (или другие подсистемы), что FPGA даже не сможет прошиваться по JTAG?

Да, всё это больше похоже на аппаратную проблему :05:

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, всё это больше похоже на аппаратную проблему :05:

В смысле "аппаратную"? Проблемы с платой (с настройкой платы)? Но тогда ИМХО все проекты нельзя было бы прошить. А тут какие-то да, а какие-то нет... И уж если это какие-то "стахостические" аппаратные вещи, то (учитывая что работаю я с платой удалённо) обнаружить/решить это на практике маловероятно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В JTAG цепочке 3 устройства: SOCVHPS -> FPGA -> CPLD

FPGA вторая в цепочки, возможно, что во время прошивки SOCVHPS начинает взаимодействовать с JTAG и тем самым сбивает процесс прошивки. Думаю где то здесь собака зарылась

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

FPGA вторая в цепочки, возможно, что во время прошивки SOCVHPS начинает взаимодействовать с JTAG и тем самым сбивает процесс прошивки. Думаю где то здесь собака зарылась

Гм. Мне казалось, что когда делается файл прошивки *.sof в Quartus-е, разве это не чисто прошивка FPGA (т.е. для 2-го устройства в цепочке)? А SOCVHPS прошивается не каким-то отдельным образом (т.е. компилится в DS-5 Development Studio) и там свой отдельный файл?

Как я и говорил с HPS раньше не работал, поэтому могу ошибаться - учусь по ходу дела.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гм. Мне казалось, что когда делается файл прошивки *.sof в Quartus-е, разве это не чисто прошивка FPGA

Нет, если в прошивке есть HPS - он частично конфигурируется аппаратно.

 

Выше правильно написали - в процессе прошивки встревает HPS и нарушает обмен.

Надо копать, почему.

 

В QSys в настройках HPS есть что нибудь, относящееся к JTAG?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нет, если в прошивке есть HPS - он частично конфигурируется аппаратно.

 

Выше правильно написали - в процессе прошивки встревает HPS и нарушает обмен.

Надо копать, почему.

 

В QSys в настройках HPS есть что нибудь, относящееся к JTAG?

 

Терзает смутное чувство, что проблема связана с FPGA Manager System / Manager блоками, там и JTAG Host имеется

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Терзает смутное чувство, что проблема связана с FPGA Manager System / Manager блоками, там и JTAG Host имеется

У меня плата с Cyclone V SoC - завелась с полоборота что с HPS, что без.

Проект свой с нуля.

Настройки HPS в QSys у ArriaV и CycloneV почти один в один - ничего особенного по части JTAG там нет.

 

Непонятно, в общем.

 

Попробуйте обновить Квартус, может бага какая-то.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Терзает смутное чувство, что проблема связана с FPGA Manager System / Manager блоками, там и JTAG Host имеется

Вот только вопрос, как это настраивается. В QSys ничего такого не наблюдается.

 

У меня плата с Cyclone V SoC - завелась с полоборота что с HPS, что без.

Проект свой с нуля.

Настройки HPS в QSys у ArriaV и CycloneV почти один в один - ничего особенного по части JTAG там нет.

 

Непонятно, в общем.

 

Попробуйте обновить Квартус, может бага какая-то.

По-моему в QSys вообще никаких явных настроек HPS JTAG интрефейса нет. Мне тоже кажется, что всё должно работать. Попробую обновить до 14.1.1 (и ещё может в 15.1.0 собрать). Обидно будет конечно если это баг софта - столько времени потрачено.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня схожая проблема была, тоже кастомная плата на ArriaV, процесс фейлился в самом конце. Пытаясь затолкать в FPGA прошивку в виде SVF файла пришли к мнению что в самом конце происходит верификация залитой прошивки, и если что-то во время загрузки пошло не так (аппаратно) то процесс фейлится. Конкретно у меня была проблема в грязном питании.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня схожая проблема была, тоже кастомная плата на ArriaV, процесс фейлился в самом конце. Пытаясь затолкать в FPGA прошивку в виде SVF файла пришли к мнению что в самом конце происходит верификация залитой прошивки, и если что-то во время загрузки пошло не так (аппаратно) то процесс фейлится. Конкретно у меня была проблема в грязном питании.

Ну тут всё-таки не кастомная плата, а весьма недешёвая Arria V SoC Development Board. Хотелось бы верить, что там проблем уровня "грязного питания" быть не должно. Если не удастся победить "программным" путём, будем копать глубже (по мере возможностей удалённого доступа).

На данный момент плата временно недоступна, хардварный дебаг приостановлен, и идёт процесс дальнейшего девелопмента. Как будут какие-то подвижки - расскажу. Ну или если у кого есть ещё мысли/догадки/решения - милости прошу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...