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

    

Левые данные в прошивке через пограмматор Квартуса

Приветствую всех, две головы хорошо, а помощь сообщества лучше.

 

Итак понадобилось нашему заказчику поиметь контроль того, что же записано в загрузочную флешку ПЛИС. Подцепили альтеровскую мегафункцию и опа, ни jic(что понятно), ни pof, ни даже sof-файлы не совпадают с тем, что оказывается в загрузочной флешке.

 

Отличия имеем в заголовке файла, затем идёт блок идентичный тому, что находится в pof(sof) файлах, затем какая-то ещё информаци и в конце контрольная сумма.

 

Пробовали генерировать и прошивать различные виды файлов, результат один, куча левой информации.

 

Прикупили программатор на FTDI от проекта Марсоход и использовали их софт для прошивки по Active Serial и о чудо, файл зашитый и файл которым зашивали совпадают полностью без левых вставок. Проверяли на Картусах от 15.1 до 17.1.

 

Никто не сталкивался с таким?

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


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

Тоже сталкивался с этим при записи и чтении прошивки файлы отличались заголовками. Даже не стал заморачиваться видно-же что квартус просто формирует новый файл со считанной прошивкой, соответственно и заголовок другой. При проверке прошивки всё совпадало и работало как положено.

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


Ссылка на сообщение
Поделиться на другие сайты
Тоже сталкивался с этим при записи и чтении прошивки файлы отличались заголовками. Даже не стал заморачиваться видно-же что квартус просто формирует новый файл со считанной прошивкой, соответственно и заголовок другой. При проверке прошивки всё совпадало и работало как положено.

Отличия не только в заголовке и CRC, есть непонятные данные в середине файла.

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


Ссылка на сообщение
Поделиться на другие сайты
Отличия не только в заголовке и CRC, есть непонятные данные в середине файла.
На родном форуме никто таким вопросом не озадачивался?

 

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


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

При конвертации файла вам нужно поставить галочку Create config data RPD. Это будет бинарный образ фрешки.

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


Ссылка на сообщение
Поделиться на другие сайты
При конвертации файла вам нужно поставить галочку Create config data RPD. Это будет бинарный образ фрешки.

И получаем тоже самое, через сторонний софт и сторонний программатор всё чисто.

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


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

Я так и не понял, что именно требуется. Если нужен образ того, что будет зашито в ПЗУ - можно достать соответствующий раздел из pof-файла, там несложная разборка. Если проконтролировать правильность - это quartus и так делает.

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


Ссылка на сообщение
Поделиться на другие сайты
Я так и не понял, что именно требуется. Если нужен образ того, что будет зашито в ПЗУ - можно достать соответствующий раздел из pof-файла, там несложная разборка. Если проконтролировать правильность - это quartus и так делает.

Нужно периодически вычитывать данные из ПЗУ и сравнивать с файлом, например pof, в общем случае это не возможно, т.к. при прошивке Квартус и/или программатор кидает свои данные, отсечь можно только заголовок и CRC, остальные данные случайным образом гуляют по файлу и просто так их не отбросить.

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


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

Программатор Quartus'а не пишет ничего лишнего, только то, что лежит в соответствующем разделе pof'а. Если сравнивать две последовательные одинаковые трансляции, то они могут различаться, но если смотреть на прошивку из одного pof'а - все совпадает, опять же, контроль бы не работал. Считанный программатором pof может не совпадать с исходным, но только в части заголовка, хвоста и time stamp.

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


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

Блин, вроде бы по русски пишу.

 

Ещё раз, берём программатор квартуса, чистим загрузочную микросхему, зашиваем pof. Вычитываем квартусом, вычитываем альтеровской мегафункцией. Результат одинаковый, разница в заголовке и CRC. Далее без отдельной очистки записываем тот же самый pof и вуаля, что квартусом, что через мегафункцию, вычитываем данные, которых нет в pof-файле и которые находятся в середине.

 

Далее берём сторонний программатор и сторонее ПО для прошивки, подсовываем тот же самый pof-файл, зашиваем, вычитываем через мегафункцию и через стороннее ПО и вуаля, вычитанное полностью совпадает с pof-файлом. Аналогично с другими форматами.

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти