dde29 0 20 февраля, 2019 Опубликовано 20 февраля, 2019 · Жалоба Всем привет! давненько меня тут не было...) В данный момент знакомлюсь с MAX 10-м. А конкретно разбираюсь как использовать одну области CFM в качестве бутлодера для перепрошивки второй области CFM. Идея, надеюсь, понятна :) реализовать возможность смены основной прошивки плис удаленно, не используя программатор... На данный момент реализовал переключение между двумя образами командой по УАРТ, читаю Status и Control Register используя OnChip Flash IP-Core и соответственно стирать определенные области памяти UFM и CFM. Осталось реализовать запись по тому же УАРТ другой основной прошивки, но не могу разобраться какой из форматов образов нужно генерить и передавать - POF, SOF или RPD??? Насколько я понял, нужно что-то откуда генерить используя различные настройки, но что именно так и не разобрался... Может кто-нить занимался данной проблемой P.S. Ниос не перевариваю... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Вася0 0 26 февраля, 2019 Опубликовано 26 февраля, 2019 · Жалоба Если dual image то в cfm 1 и 2 хранится pof, который вы генерируете совмещая 2 sof в quartus, по сути это 2 сжатых sof, но чем сжаты я не нашёл. Можно прочитать cfm и сравнить с pof. И самое главное в cfm байты перевернуты. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Вася0 0 26 февраля, 2019 Опубликовано 26 февраля, 2019 · Жалоба NIOS II Processor Booting Methods in MAX 10 Devices pdf страница 22 там написано как сгенерировать pof Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dde29 0 27 февраля, 2019 Опубликовано 27 февраля, 2019 · Жалоба 23 hours ago, Вася0 said: Если dual image то в cfm 1 и 2 хранится pof, который вы генерируете совмещая 2 sof в quartus, по сути это 2 сжатых sof, но чем сжаты я не нашёл. Можно прочитать cfm и сравнить с pof. И самое главное в cfm байты перевернуты. Да, в CFM0 хранится один образ, а в CFM1 и 2 хранится второй. Естественно, когда я зашиваю первый раз через JTAG я так и делаю - из двух SOF генерю один POF и зашиваю. Но а что делать потом) Когда уже по не JTAG, а по какому-то основному интерфейсу, в моем случае, UART необходимо передать только один образ, в каком-то формате (вопрос в каком и как его сделать!) и правильно его запилить по нужному адресу. Про то, что в CFM байты перевернуты я учту, спасибо. 18 hours ago, Вася0 said: NIOS II Processor Booting Methods in MAX 10 Devices pdf страница 22 там написано как сгенерировать pof Посмотрю, а по поводу чтения - я сейчас как раз и пишу прошивку и софт, чтобы по основному интерфейсу хотя бы прочитать CFMы... Дело идет не очень быстро из-за большой загруженности). Но результат обязательно опубликую Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dde29 0 13 апреля, 2019 Опубликовано 13 апреля, 2019 · Жалоба Наконец-то добился того, что удалось считать записанную область CFM0, соответствующую одному образу. Полученный файл очень похож на искусственно сгенерированный файл *.rpd. Но, чтобы его сгенерировать, необходимо каждый раз указывать второй образ CFM1, хотя какое он отношение имеет с независимому от него образу в CFM0 пока не разобрался... Буду копать дальше. Попробую данный сгенерированный *.rpd записать насильно в CFM0 используя свой УАРТ и OnFlashChip, и посмотрю что получится... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 21 июля, 2019 Опубликовано 21 июля, 2019 · Жалоба On 4/13/2019 at 7:07 PM, dde29 said: Наконец-то добился того, что удалось считать записанную область CFM0, соответствующую одному образу. Полученный файл очень похож на искусственно сгенерированный файл *.rpd. Но, чтобы его сгенерировать, необходимо каждый раз указывать второй образ CFM1, хотя какое он отношение имеет с независимому от него образу в CFM0 пока не разобрался... Буду копать дальше. Попробую данный сгенерированный *.rpd записать насильно в CFM0 используя свой УАРТ и OnFlashChip, и посмотрю что получится... в том то и дело что сгенерированный файл *.rpd похож на область CFM1 но не идентичен. поэтому когда я заливаю cfm1.rpd в CFM1-2 сериально второй образ не поднимается. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
v0idname 0 27 июля, 2020 Опубликовано 27 июля, 2020 · Жалоба 21.07.2019 в 11:35, jenya7 сказал: в том то и дело что сгенерированный файл *.rpd похож на область CFM1 но не идентичен. поэтому когда я заливаю cfm1.rpd в CFM1-2 сериально второй образ не поднимается. Здравствуйте. Столкнулся с похожей проблемой, что сгенерированный rpd файл не идентичен тому, что я получаю при считывании зашитого бластером pof файла. Вы смогли сгенерировать рабочий rpd файл? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 28 июля, 2020 Опубликовано 28 июля, 2020 (изменено) · Жалоба 19 hours ago, v0idname said: Здравствуйте. Столкнулся с похожей проблемой, что сгенерированный rpd файл не идентичен тому, что я получаю при считывании зашитого бластером pof файла. Вы смогли сгенерировать рабочий rpd файл? у меня был баг в генерации записываемого слова. у вас галка Big Endian в Options/Boot info выставлена? Изменено 28 июля, 2020 пользователем jenya7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
v0idname 0 28 июля, 2020 Опубликовано 28 июля, 2020 · Жалоба 4 часа назад, jenya7 сказал: у меня был баг в генерации записываемого слова. у вас галка Big Endian в Options/Boot info выставлена? После Вашего сообщения заметил, что сгенерированный rpd и считанная память, зашитая через pof, отличаются порядком байт в каждом 32-битном слове файла прошивки (я прошиваю flash побайтно). После перестановки байт и прошивки через UART всё заработало. Спасибо! Перед этим попробовал опцию Big Endian в Options/Boot info и оказалось, что она делает реверс бит в каждом байте (!), а не меняет порядок байт, т.е. это не то, что нужно было для решения проблемы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Paramedic 0 9 апреля, 2021 Опубликовано 9 апреля, 2021 · Жалоба Чтобы не открывать новую тему по схожему вопросу, напишу здесь. С ПЛИСами опыта мало, читаю документацию и статьи и наблюдаю противоречия. Написал конфигурацию для своей задачи - всё работает, возникла идея заложить возможность обновления конфигурации 10M04SCU с контроллера по любому доступному интерфейсу (UART, SPI, I2C). Судя по даташиту , версия Compact (как у меня) не поддерживает 2 образа, хотя по ссылке https://embeddedfpgadesign.wordpress.com/2016/08/04/extending-effective-density-on-altera-max10-fpga-for-free/ пишут , что только 10M02 ограничена одним образом. Из таблицы 3 документа https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/hb/max-10/ug_m10_config.pdf следует, что в compact только single image. Когда полез в настройки Quartus, понял , что всё же только один образ мне доступен. Возможно ли как-то разбить конфигурацию на две части фиксированного размера, одна из которых будет загрузчиком , а вторая стираемая и обновляемая? Ведь у меня, судя по таблице 1 из https://www.intel.com/content/www/us/en/programmable/documentation/vgo1395753117436.html доступны все три CFM! Для обращения к CFM, как я понял, мне нужно использовать On-Chip Flash Intel FPGA IP. На сайте Intel говорят, что IP в версии Quartus Lite платные, но, попробовав открыть IP из Tools->IP catalog всё получилось. Доступен он в Lite или при дальнейшем использовании (сборке проекта) у меня будут проблемы? Для контроллеров загрузчики делал, а вот для ПЛИС ещё нет :) Заранее спасибо за советы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dde29 0 25 апреля, 2021 Опубликовано 25 апреля, 2021 · Жалоба On 4/9/2021 at 9:22 PM, Paramedic said: Когда полез в настройки Quartus, понял , что всё же только один образ мне доступен. Возможно ли как-то разбить конфигурацию на две части фиксированного размера, одна из которых будет загрузчиком , а вторая стираемая и обновляемая? Ведь у меня, судя по таблице 1 из https://www.intel.com/content/www/us/en/programmable/documentation/vgo1395753117436.html доступны все три CFM! On 4/9/2021 at 9:22 PM, Paramedic said: Судя по даташиту , версия Compact (как у меня) не поддерживает 2 образа, хотя по ссылке https://embeddedfpgadesign.wordpress.com/2016/08/04/extending-effective-density-on-altera-max10-fpga-for-free/ пишут , что только 10M02 ограничена одним образом. Из таблицы 3 документа https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/hb/max-10/ug_m10_config.pdf следует, что в compact только single image. Compact → базовое исполнение; Flash → имеется возможность реализации двух конфигурационных схем с самообновлением и инициализация встроенной RAM при подаче питания; Analog → все то же что и в варианте Flash, плюс встроенный блок АЦП. Разбить в исполнении Campact не получится точно, но можно попробовать реализовать boot-модуль в основном проекте и перешивать как бы самого себя. Но я так не пробовал, интересная мысль, но я думаю Ква не даст скомпилить IP-корку... Будет время - попробую. А вообще, я сейчас занимаюсь написанием статьи на тему бутлодера на 10м Максе... Там может быть данную тему затрону... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться