|
Изменение конфигурационной флэш, Для fpga Altera и Xilinx |
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 27)
|
Aug 18 2015, 12:28
|
Частый гость
 
Группа: Участник
Сообщений: 136
Регистрация: 3-09-09
Пользователь №: 52 178

|
Цитата(Golikov A. @ Aug 18 2015, 14:50)  Всем привет!
Есть Xilinx sprtan6 и Altera cyclon IV. Испытываю непреодолимое желание изменить содержимое конфигурационных флэшек из самой FPGA.
1. Правильно ли я понимаю что в Xilinx после окончания конфигурации ножки идущие на память становятся доступны как пользовательские IO и я могу ими спокойно дергать читая, записывая флэш? 2. Правильно ли я понимаю что в Altera конфигурационная память доступна только через ALTASMI_PARALLEL и я не могу никаким образом получить самостоятельный доступ к конфигурационной флэш напрямую на уровне подергать ножки?
Заранее спасибо! В четвертом циклоне ноги дергались с помощью cycloneii_asmi, если я ничего не путаю. Тема уже поднималась на форуме.
|
|
|
|
|
Aug 18 2015, 12:43
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(Golikov A. @ Aug 18 2015, 14:50)  2. Правильно ли я понимаю что в Altera конфигурационная память доступна только через ALTASMI_PARALLEL и я не могу никаким образом получить самостоятельный доступ к конфигурационной флэш напрямую на уровне подергать ножки? Ещё для Ниос ядро epcs_flash_controller умеет писать/читать EPCS/EPCQ флэшку. А самый простой вариант, если Вам пока не нужно удалённо обновлять прошивку, используйте Serial Flash Loader (см. an370).
|
|
|
|
|
Aug 18 2015, 17:39
|
Местный
  
Группа: Свой
Сообщений: 301
Регистрация: 18-09-07
Из: Украина
Пользователь №: 30 647

|
Добрый день Golikov A., еще раз. Был реализован проект на базе Virtex5FX70T (внутри PowerPC), в качестве конфигурационной флэшки XCF128XFTG64C, подключенная по параллельной шине. В программе PowerPC была реализована функция приема новой прошивки по PCIe, сохранение ее в DDR2, а потом перепрошивки флэш. Реально работает. Думаю, аналогично можно что-то похожее реализовать и на Спартане6, вставив в проект, например Microblaze простенькой конфигурации. С Альтерой не работал, советовать не берусь. Удачи.
|
|
|
|
|
Aug 18 2015, 19:11
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(Andrew Su @ Aug 18 2015, 21:57)  Добрый день. В XPS есть IP XPS Multi-Channel External Memory Controller. Сконфигурировать его так, чтобы его внешние выводы подошли для подключения внешней конфигурационной флэш. Можно посмотреть в разделе SelectMAP Configuration Interface файла ug380.pdf (Spartan-6 FPGA Configuration User Guide) и на стр.10 файла ds617.pdf (Platform Flash XL High-Density Configuration and Storage Device), там правда для Virtex5 схема, но, наверное, можно и под спартан подправить. Удачи. Спасибо, посмотрю. Думаю, скоро должно понадобиться, но интересно это применительно к Virtex 7 и Vivado 2015.x.
|
|
|
|
|
Aug 19 2015, 05:26
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
Надо обойтись без микроблайзов и ниосов, и по возможности без IP корок. В инструкции на ксалинкс как-то мутно написано, вроде как после конфигурации ножки что идут на флешку можно задействовать в проекте, буржуйские форумы это тоже упоминают, думал может кто-то уже делал, и скажет уверено - да так и есть! Ладно это проверю. Ниос и flash_controller решительно не подходят, потому что этот контроллер как минимум за собой потянет шину авалон и прочие гадости. Ниос не желателен по архитектуре ваще%), практически строго запрещен. Нашел что есть мегафункция ALTASMI_PARALLEL подходящая для этих целей. Но она немного не удобная, много что сама делает, а хотелось бы больше контроля. видел где-то на враждебных форумах народ что-то писал про то что дергал ножки напрямую, но через что и как непонятно... Тоже надеялся на готовое пройденное кем то решение  Цитата cycloneii_asmi, спасибо почитаю что это, но что-то мне говорит что это и есть ALTASMI_PARALLEL или ее производная Цитата А самый простой вариант, если Вам пока не нужно удалённо обновлять прошивку, используйте Serial Flash Loader (см. an370). ну а для чего же еще работать с конфигурационной флешкой то  ?
|
|
|
|
|
Aug 19 2015, 06:01
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(Golikov A. @ Aug 19 2015, 08:26)  ну а для чего же еще работать с конфигурационной флешкой то  ? Ну из первого поста этого не следует (что нужно удалённое обновление ПО), ясно только, что хотите залить новую прошивку в конфигурационный девайс. Вот и ответ - можно залить/считать через JTAG (используем Serial Flash Loader). Если нужно удалённо обновлять ПО, тогда варианта два: 1) EPCS Flash Controller + Nios II 2) Ядро ASMI
|
|
|
|
|
Aug 19 2015, 08:04
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
Цитата Испытываю непреодолимое желание изменить содержимое конфигурационных флэшек из самой FPGA. JTAG не подходит... Цитата для Spartan-6 параллельная и последовательная флэш доступна после загрузки. Пишите свой проект и работайте с ними. Ага спасибо, принято! Цитата 1) EPCS Flash Controller + Nios II 2) Ядро ASMI 1. не подходит из-за ниоса 2. Насколько я пока нарыл ASMI не документировано, документирован только верхний уровень ALTASMI_PARALLEL, вы его имели ввиду, или все-же есть где то официальные доки на ASMI?
|
|
|
|
|
Aug 19 2015, 08:40
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(Golikov A. @ Aug 19 2015, 11:04)  2. Насколько я пока нарыл ASMI не документировано, документирован только верхний уровень ALTASMI_PARALLEL, вы его имели ввиду, или все-же есть где то официальные доки на ASMI? Имел ввиду его, но чем оно Вас не устраивает? Если хотите отказаться от IP, то надо получить доступ к ногам (должна быть настройка, сейчас не вспомню), а там реализуете SPI и протокол общения из документации на флэшку. Но зачем это?
|
|
|
|
|
Aug 19 2015, 18:53
|
Частый гость
 
Группа: Свой
Сообщений: 75
Регистрация: 10-12-04
Из: spb
Пользователь №: 1 435

|
Да как к обычным, только нужно понимать что у вас там сидит конфигурационная EPCS (EEPROM). И НИОСОМ дрыгая этими ножками я обновлял прошивку. Почему не нашли, приложил картинки.
|
|
|
|
|
Aug 20 2015, 19:15
|
Знающий
   
Группа: Свой
Сообщений: 642
Регистрация: 15-11-07
Пользователь №: 32 353

|
Цитата(Andrew Su @ Aug 18 2015, 21:39)  Добрый день Golikov A., еще раз. Был реализован проект на базе Virtex5FX70T (внутри PowerPC), в качестве конфигурационной флэшки XCF128XFTG64C, подключенная по параллельной шине. В программе PowerPC была реализована функция приема новой прошивки по PCIe, сохранение ее в DDR2, а потом перепрошивки флэш. Реально работает. Думаю, аналогично можно что-то похожее реализовать и на Спартане6, вставив в проект, например Microblaze простенькой конфигурации. С Альтерой не работал, советовать не берусь. Удачи. 2Andrew Su: Virtex5FX70T и XCF128XFTG64C были в одной JTAG-цепочке? Служебными ножками ПЛИС дергала при записи в XCF?
--------------------
Правильно сформулированый вопрос содержит в себе половину ответа. P.S.: Некоторые модераторы в качестве ответа так навязчиво предлагают посетить свой сайт, что иначе как саморекламу такие действия интерпретировать сложно.
|
|
|
|
|
Aug 23 2015, 12:39
|
Местный
  
Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056

|
Цитата(Golikov A. @ Aug 19 2015, 12:44)  Пока я только видел предложения из исходников ALTASMI_PARALLEL выдрать подключение самого ASMI, и через него работать, но это типа не документировано. А чем сам ALTASMI_PARALLEL не устраивает? Там же вроде всё предельно просто.
|
|
|
|
|
Aug 24 2015, 06:30
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
Просто, даже слишком. То есть запись, чтение, верификация и прочее превращены в отдельные законченные, самостоятельные операции и каждую надо поддержать (а у нас есть еще семейство ксалинкс, где такого нет, то есть там еще и дописать такое же). Опустившись на уровень обмена по SPI, мне надо поддержать команды опустить/поднять чипселект и передать/считать байт по SPI, причем для всех семейств. А вопрос формирования данных выноситься на уровень выше, в процессор, где делать это удобнее. Прошивка ПЛИС упрощается, и какие-бы функции работы с флэш не понадобились бы в будущем (защита секторов и так далее) нет шансов их не сделать.
|
|
|
|
|
Jul 12 2017, 13:04
|
Местный
  
Группа: Свой
Сообщений: 244
Регистрация: 4-03-08
Из: Москва
Пользователь №: 35 621

|
Возникла задача, похожая на сформулированную автором темы. А именно: заливать в Xilinx Plastform Flash XL прошивку для Virtex 5, действуя из самой ПЛИС через штатные ноги связи со флэш (подключение в режиме slave SelectMAP). JTAG при этом доступен только до ПЛИС, но не до флэш. Посему, вопросы: 1) Как вообще сгенерировать mсs-файл для Platform Flash XL? В Impact 14.7 всё так, как описано в UG161, список доступных устройств заканчивается xcf32, xcf128 там просто нет. 2) В UG161 (Xilinx Platform Flash PROM User Guide) описано множество специальных регистров во флэш, которые нужно записывать при записи в неё прошивки. А в DS617 (на саму Platform Flash XL) они не упоминаются. Нужно ли что-то кроме самой прошивки записывать в исходно чистую флэш, чтоб с неё загрузиться?
С тем, использовать ли Microblaze + LogiCORE IP XPS Multi-channel External Memory Controller или же изобретать велосипеды на КА - ещё предстоит разбираться.
--------------------
...а Сила, Брат - она - в несиловых решениях.
|
|
|
|
|
Jul 12 2017, 14:15
|
Местный
  
Группа: Свой
Сообщений: 301
Регистрация: 18-09-07
Из: Украина
Пользователь №: 30 647

|
Цитата(Intekus @ Jul 12 2017, 16:04)  Возникла задача, похожая на сформулированную автором темы. А именно: заливать в Xilinx Plastform Flash XL прошивку для Virtex 5, действуя из самой ПЛИС через штатные ноги связи со флэш (подключение в режиме slave SelectMAP). JTAG при этом доступен только до ПЛИС, но не до флэш. Посему, вопросы: 1) Как вообще сгенерировать mсs-файл для Platform Flash XL? В Impact 14.7 всё так, как описано в UG161, список доступных устройств заканчивается xcf32, xcf128 там просто нет. 2) В UG161 (Xilinx Platform Flash PROM User Guide) описано множество специальных регистров во флэш, которые нужно записывать при записи в неё прошивки. А в DS617 (на саму Platform Flash XL) они не упоминаются. Нужно ли что-то кроме самой прошивки записывать в исходно чистую флэш, чтоб с неё загрузиться?
С тем, использовать ли Microblaze + LogiCORE IP XPS Multi-channel External Memory Controller или же изобретать велосипеды на КА - ещё предстоит разбираться. Добрый день. 1) Надеюсь по картинке понятно, как выбрать xcf128. Или для SPI Flash
Прикрепленные файлы
1.pdf ( 284.77 килобайт )
Кол-во скачиваний: 17
2.pdf ( 574.15 килобайт )
Кол-во скачиваний: 15
|
|
|
|
|
Jul 12 2017, 14:55
|
Местный
  
Группа: Свой
Сообщений: 244
Регистрация: 4-03-08
Из: Москва
Пользователь №: 35 621

|
Цитата(Andrew Su @ Jul 12 2017, 17:15)  Добрый день. Надеюсь по картинке понятно, как выбрать xcf128. Или для SPI Flash Выбрать получилось, благодарю! Правда, потребовался вариант с несколькими ревизиями. А что по второму вопросу, на счёт записи особых регистров (USERCODE, например)? Есть они в Platform Flash XL? И возник ещё один вопрос: при выбранном варианте iMpact запрашивает начальные адреса ревизий; их лучше указать ровно по границам четвертей, чтоб иметь возможность выбирать нужную ревизию исключительно двумя старшими битами адреса - верно?
--------------------
...а Сила, Брат - она - в несиловых решениях.
|
|
|
|
|
Aug 18 2017, 14:02
|
Местный
  
Группа: Свой
Сообщений: 244
Регистрация: 4-03-08
Из: Москва
Пользователь №: 35 621

|
Посмотрел генерируемый iMpact файл mcs - по-моему, там расположена вся необходимая информация, так что дополнительных записей в некие регистры, о которых я спрашивал ранее, не нужно.
Возник следующий вопрос, отчасти по теме дистанционного обновления прошивок. В "Virtex-5 FPGA Configuration User Guide" (ug191.pdf) на стр. 153 внизу встретилась фраза "Fallback is disabled if AES is enabled and for Slave SelectMAP mode." Верно ли я понял, что загрузка в аварийную прошивку в случае ошибки при загрузке основной (механизм "Fallback MultiBoot") недоступна в варианте конфигурации Slave SelectMAP (даже для нешифрованных прошивок)? Т. е., если конфигурирование сделано по схеме Slave SelectMAP, то, чтоб воспользоваться загрузкой в аварийную прошивку при сбое, необходимо выбрать другую схему конфигурирования (а значит - и физически переделать печатную плату)?
--------------------
...а Сила, Брат - она - в несиловых решениях.
|
|
|
|
|
Aug 18 2017, 15:53
|

Частый гость
 
Группа: Свой
Сообщений: 164
Регистрация: 27-06-04
Пользователь №: 194

|
Цитата(Intekus @ Aug 18 2017, 17:02)  Посмотрел генерируемый iMpact файл mcs - по-моему, там расположена вся необходимая информация, так что дополнительных записей в некие регистры, о которых я спрашивал ранее, не нужно.
Возник следующий вопрос, отчасти по теме дистанционного обновления прошивок. В "Virtex-5 FPGA Configuration User Guide" (ug191.pdf) на стр. 153 внизу встретилась фраза "Fallback is disabled if AES is enabled and for Slave SelectMAP mode." Верно ли я понял, что загрузка в аварийную прошивку в случае ошибки при загрузке основной (механизм "Fallback MultiBoot") недоступна в варианте конфигурации Slave SelectMAP (даже для нешифрованных прошивок)? Т. е., если конфигурирование сделано по схеме Slave SelectMAP, то, чтоб воспользоваться загрузкой в аварийную прошивку при сбое, необходимо выбрать другую схему конфигурирования (а значит - и физически переделать печатную плату)? В слэйв режиме вы сами контролирует загрузку. Что хотите, то и грузите
--------------------
qwerty
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|