Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: MAXII Parallel Flash Loader - формат данных в ПЗУ
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
ISK
Есть проект, в котором Stratix IV конфигурируется посредством PFL, расположенного в MAXII, по схеме FPP(fast passive parallel). Конфигурационные данные хранятся в параллельной 1-гигабитной 16-битной ПЗУ (CFI). Есть задача удалённого обновления фирмваре. При программировании CFI через JTAG из .pof - файла - всё ОК, конфигурируется, работает. Теперь пытаюсь запрорграммировать флешку собственным софтом, для чего использую сгенерированный квартусом .rbf - файл. Проблема в том, что нужно правильно расположить данные из этого файла в адресном пространстве флешки. Как написано в "Parallel Flash Loader Megafunction User
Guide" нужно также записать т.н. "Option bits". В этих "Option bits" есть 4-х байтные поля с координатами расположения страниц конфигурационных данных, а по смещению 0x80 расположен т.н. ".pof version", который может принимать значения 0x3 и 0x4 (компрессированный битстрим или нет). Больше ничего в этом описании нет. Но когда я записал .rbf во флешку, конфигурация не происходит. Когда я сравнил свой вариант, и тот, который прошивал из .pof через itag, вижу что есть отличия в данных. Причём не в option битах, а в самом битстриме. Там в самом начале и в конце дописываются ещё 4 байта. О них я ничего в описании не нашёл. Кто нибудь с таким сталкивался?


doom13
У Вас отличаются данные в .pof и .rbf или результаты прошивки во флэш-памяти? У меня под Cyclone 5 в q13.0.1 .rbf файл формируется неправильно, тут обсуждалось.
На форуме альтеры также обсуждался вопрос неправильного генерирования .rbf, но, если не ошибаюсь, тоже под Cyclone 5. Может у Вас та же проблема и со Stratix 4.

Вот тема с форума Альтеры.
ISK
Цитата(doom13 @ Apr 18 2014, 13:45) *
У Вас отличаются данные в .pof и .rbf или результаты прошивки во флэш-памяти?


отличаются и те и другие. У меня проблема не в том, что rbf формируется неправильно. У меня он правильный. Проблема в том, чтобы имея сгенерированный квартусом rbf (или hexout) файл запрограммировать ПЗУ так, чтобы PFL мог сконфигурировать ПЛИС. Просто так записать голый rbf файл нельзя, для PFL нужны ещё дополнительные служебные биты. Альтера предлагает генерировать pof файл, и программировать его. Но pof содержит в себе образ всей флешки, а мне это не подходит, так как у меня в ПЗУ содержится ещё другая информация, которую нельзя перезатирать. Можно конечно выдрать из pof файла только нужный кусок и его прошивать, но это некрасивое решение. Неужели нет у альтеры решения на такой случай? Или никто дистанционно ПО не обновляет?
doom13
Цитата(ISK @ Apr 22 2014, 23:13) *
Просто так записать голый rbf файл нельзя, для PFL нужны ещё дополнительные служебные биты. Альтера предлагает генерировать pof файл, и программировать его. Но pof содержит в себе образ всей флешки, а мне это не подходит, так как у меня в ПЗУ содержится ещё другая информация, которую нельзя перезатирать. Можно конечно выдрать из pof файла только нужный кусок и его прошивать, но это некрасивое решение.


Всегда использовался rbf-файл для удалённой перезаливки флэша, правда, это был либо PS-mode либо AS-mode, проблемы возникли только с q13.1 + Cyclone V + epcq.
Тут вот пишут, что rbf может использоватьться для программирования перед установкой флэша на плату, но разницы быть не должно. Только не совсем понял зачем смещать адрес.


Что-то мне подсказывает, что Ваши "Option bits" должны уже содержаться в rbf-файле при условии, что он был сгенерирован с правильными настройками (FPP и т.д.)
ISK
Нет, Option Bits там нет точно. В общем я уже понял что вопрос можно решить с помощью

sof2flash --input=sof_file.sof --output=flash_file.flash --offset=0x20000 --pfl --optionbit=0x0 --programmingmode=FPP

из командной строки. Тогда при выполнении команды автоматически создаётся .pof, и из него затем генерируется .flash. Потом можно с помощью nios2-elf-objcopy сгенерить .bin. Тогда полученный файл содержит всё что нужно для загрузчика, кроме всё тех же Option Bit, но их можно вычислить самому, в PFL User Guide это расписано. Не написано только почему-то про все эти телодвижения с генерацией правильного .rbf (или .bin)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.