реклама на сайте
подробности

 
 
> Изменение конфигурационной флэш, Для fpga Altera и Xilinx
Golikov A.
сообщение Aug 18 2015, 11:50
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Всем привет!

Есть Xilinx sprtan6 и Altera cyclon IV. Испытываю непреодолимое желание изменить содержимое конфигурационных флэшек из самой FPGA.

1. Правильно ли я понимаю что в Xilinx после окончания конфигурации ножки идущие на память становятся доступны как пользовательские IO и я могу ими спокойно дергать читая, записывая флэш?
2. Правильно ли я понимаю что в Altera конфигурационная память доступна только через ALTASMI_PARALLEL и я не могу никаким образом получить самостоятельный доступ к конфигурационной флэш напрямую на уровне подергать ножки?

Заранее спасибо!
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 27)
goodsoul
сообщение Aug 18 2015, 12:28
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 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, если я ничего не путаю. Тема уже поднималась на форуме.
Go to the top of the page
 
+Quote Post
doom13
сообщение Aug 18 2015, 12:43
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 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).
Go to the top of the page
 
+Quote Post
Andrew Su
сообщение Aug 18 2015, 17:39
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 301
Регистрация: 18-09-07
Из: Украина
Пользователь №: 30 647



Добрый день Golikov A., еще раз.
Был реализован проект на базе Virtex5FX70T (внутри PowerPC), в качестве конфигурационной флэшки XCF128XFTG64C,
подключенная по параллельной шине.
В программе PowerPC была реализована функция приема новой прошивки по PCIe, сохранение ее в DDR2, а потом перепрошивки флэш.
Реально работает.
Думаю, аналогично можно что-то похожее реализовать и на Спартане6, вставив в проект, например Microblaze простенькой конфигурации.
С Альтерой не работал, советовать не берусь.
Удачи.
Go to the top of the page
 
+Quote Post
doom13
сообщение Aug 18 2015, 18:05
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Andrew Su @ Aug 18 2015, 20:39) *
в качестве конфигурационной флэшки XCF128XFTG64C,
подключенная по параллельной шине.
В программе PowerPC была реализована функция приема новой прошивки по PCIe, сохранение ее в DDR2, а потом перепрошивки флэш.
Реально работает.
Думаю, аналогично можно что-то похожее реализовать и на Спартане6, вставив в проект, например Microblaze простенькой конфигурации.

Что за IP ядро можно использовать для этих целей (прошивки параллельной флэшки) с MicroBlaze?
Go to the top of the page
 
+Quote Post
Andrew Su
сообщение Aug 18 2015, 18:57
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 301
Регистрация: 18-09-07
Из: Украина
Пользователь №: 30 647



Добрый день.
В 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 схема, но, наверное, можно и под спартан подправить.
Удачи.
Go to the top of the page
 
+Quote Post
doom13
сообщение Aug 18 2015, 19:11
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 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.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Aug 19 2015, 05:26
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Надо обойтись без микроблайзов и ниосов, и по возможности без IP корок.

В инструкции на ксалинкс как-то мутно написано, вроде как после конфигурации ножки что идут на флешку можно задействовать в проекте, буржуйские форумы это тоже упоминают, думал может кто-то уже делал, и скажет уверено - да так и есть! Ладно это проверю.

Ниос и flash_controller решительно не подходят, потому что этот контроллер как минимум за собой потянет шину авалон и прочие гадости. Ниос не желателен по архитектуре ваще%), практически строго запрещен. Нашел что есть мегафункция ALTASMI_PARALLEL подходящая для этих целей. Но она немного не удобная, много что сама делает, а хотелось бы больше контроля. видел где-то на враждебных форумах народ что-то писал про то что дергал ножки напрямую, но через что и как непонятно... Тоже надеялся на готовое пройденное кем то решениеsm.gif

Цитата
cycloneii_asmi,

спасибо почитаю что это, но что-то мне говорит что это и есть ALTASMI_PARALLEL или ее производная

Цитата
А самый простой вариант, если Вам пока не нужно удалённо обновлять прошивку, используйте Serial Flash Loader (см. an370).

ну а для чего же еще работать с конфигурационной флешкой тоsm.gif?
Go to the top of the page
 
+Quote Post
doom13
сообщение Aug 19 2015, 06:01
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Golikov A. @ Aug 19 2015, 08:26) *
ну а для чего же еще работать с конфигурационной флешкой тоsm.gif?

Ну из первого поста этого не следует (что нужно удалённое обновление ПО), ясно только, что хотите залить новую прошивку в конфигурационный девайс. Вот и ответ - можно залить/считать через JTAG (используем Serial Flash Loader). Если нужно удалённо обновлять ПО, тогда варианта два:
1) EPCS Flash Controller + Nios II
2) Ядро ASMI
Go to the top of the page
 
+Quote Post
Maksim
сообщение Aug 19 2015, 06:06
Сообщение #10


Частый гость
**

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



Для Spartan-6 параллельная и последовательная флэш доступна после загрузки. Пишите свой проект и работайте с ними.


--------------------
qwerty
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Aug 19 2015, 08:04
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 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?
Go to the top of the page
 
+Quote Post
doom13
сообщение Aug 19 2015, 08:40
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Golikov A. @ Aug 19 2015, 11:04) *
2. Насколько я пока нарыл ASMI не документировано, документирован только верхний уровень ALTASMI_PARALLEL, вы его имели ввиду, или все-же есть где то официальные доки на ASMI?

Имел ввиду его, но чем оно Вас не устраивает? Если хотите отказаться от IP, то надо получить доступ к ногам (должна быть настройка, сейчас не вспомню), а там реализуете SPI и протокол общения из документации на флэшку. Но зачем это?
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Aug 19 2015, 08:44
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



так можно в ПЛИС реализовать только SPI, а реализацию протокола вынести уровнем выше. Есть ощущение что так оно будет лучше.

Пока я только видел предложения из исходников ALTASMI_PARALLEL выдрать подключение самого ASMI, и через него работать, но это типа не документировано.
Go to the top of the page
 
+Quote Post
doom13
сообщение Aug 19 2015, 09:16
Сообщение #14


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Golikov A. @ Aug 19 2015, 11:44) *
так можно в ПЛИС реализовать только SPI, а реализацию протокола вынести уровнем выше. Есть ощущение что так оно будет лучше.

Т.е. в Вашей системе есть ещё и процессор, spi которого хотите пробросить через FPGA на конфигурационную флэшку? Что-то больно извращённый подход к решению вопроса. Тогда уж вешайте конфигурационный девайс на процессор и используйте режим загрузки Passive Serial Configuration, где процессор будет рулить обновлением ПО и загрузкой FPGA.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Aug 19 2015, 11:39
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



У меня тоже мнение, что это немного не так как надо sm.gif
Но интерфейс приходит на ПЛИС, так что ей и рулить процессом. А данные в этот интерфейс может загрузить процессор снаружи, потому такое вот решение...
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Aug 19 2015, 13:54
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Если кто будет так же хотеть странного, то в настройках
ALTASMI_PARALLEL есть флажок
Disable dedicated Active Serial interface
который выводит наружу доступ к конфигурационным ножкам SPI, и можно уже городить самопальные времянки, и это уже документированная функция, ура

спасибо всем принявшим участие!:)
Go to the top of the page
 
+Quote Post
tvcam
сообщение Aug 19 2015, 14:57
Сообщение #17


Частый гость
**

Группа: Свой
Сообщений: 75
Регистрация: 10-12-04
Из: spb
Пользователь №: 1 435



Я чего то не понимаю, в Циклоне 3 включаете разрешение использовать ножки как I/O и используйте их. Assignment->Divice->Divice and Pin Options->Dual-Purpose Pins. Квартус 8.1 даже симулирует их. В Квартусе 14.1 проект тоже собрался для Циклона 4. Не нужна ALTASMI_PARALLEL.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Aug 19 2015, 18:16
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



не нашел такой опции, так даже лучше, наверное... проверю, спасибо!
А к ним сигналы также цепляются как к обычным ногам?
Go to the top of the page
 
+Quote Post
tvcam
сообщение Aug 19 2015, 18:53
Сообщение #19


Частый гость
**

Группа: Свой
Сообщений: 75
Регистрация: 10-12-04
Из: spb
Пользователь №: 1 435



Да как к обычным, только нужно понимать что у вас там сидит конфигурационная EPCS (EEPROM).
И НИОСОМ дрыгая этими ножками я обновлял прошивку.
Почему не нашли, приложил картинки.
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
Go to the top of the page
 
+Quote Post
eugen_pcad_ru
сообщение Aug 20 2015, 19:15
Сообщение #20


Знающий
****

Группа: Свой
Сообщений: 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.: Некоторые модераторы в качестве ответа так навязчиво предлагают посетить свой сайт, что иначе как саморекламу такие действия интерпретировать сложно.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Aug 21 2015, 07:07
Сообщение #21


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Цитата
Да как к обычным, только нужно понимать что у вас там сидит конфигурационная EPCS (EEPROM).
И НИОСОМ дрыгая этими ножками я обновлял прошивку.
Почему не нашли, приложил картинки.

да спасибо, я не так силен в интерфейсах квартусаsm.gif
Go to the top of the page
 
+Quote Post
BSACPLD
сообщение Aug 23 2015, 12:39
Сообщение #22


Местный
***

Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056



Цитата(Golikov A. @ Aug 19 2015, 12:44) *
Пока я только видел предложения из исходников ALTASMI_PARALLEL выдрать подключение самого ASMI, и через него работать, но это типа не документировано.

А чем сам ALTASMI_PARALLEL не устраивает?
Там же вроде всё предельно просто.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Aug 24 2015, 06:30
Сообщение #23


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Просто, даже слишком. То есть запись, чтение, верификация и прочее превращены в отдельные законченные, самостоятельные операции и каждую надо поддержать (а у нас есть еще семейство ксалинкс, где такого нет, то есть там еще и дописать такое же). Опустившись на уровень обмена по SPI, мне надо поддержать команды опустить/поднять чипселект и передать/считать байт по SPI, причем для всех семейств. А вопрос формирования данных выноситься на уровень выше, в процессор, где делать это удобнее. Прошивка ПЛИС упрощается, и какие-бы функции работы с флэш не понадобились бы в будущем (защита секторов и так далее) нет шансов их не сделать.
Go to the top of the page
 
+Quote Post
Intekus
сообщение Jul 12 2017, 13:04
Сообщение #24


Местный
***

Группа: Свой
Сообщений: 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 или же изобретать велосипеды на КА - ещё предстоит разбираться.


--------------------
...а Сила, Брат - она - в несиловых решениях.
Go to the top of the page
 
+Quote Post
Andrew Su
сообщение Jul 12 2017, 14:15
Сообщение #25


Местный
***

Группа: Свой
Сообщений: 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
 
Go to the top of the page
 
+Quote Post
Intekus
сообщение Jul 12 2017, 14:55
Сообщение #26


Местный
***

Группа: Свой
Сообщений: 244
Регистрация: 4-03-08
Из: Москва
Пользователь №: 35 621



Цитата(Andrew Su @ Jul 12 2017, 17:15) *
Добрый день.
Надеюсь по картинке понятно, как выбрать xcf128.
Или для SPI Flash

Выбрать получилось, благодарю! Правда, потребовался вариант с несколькими ревизиями.

А что по второму вопросу, на счёт записи особых регистров (USERCODE, например)? Есть они в Platform Flash XL?
И возник ещё один вопрос: при выбранном варианте iMpact запрашивает начальные адреса ревизий; их лучше указать ровно по границам четвертей, чтоб иметь возможность выбирать нужную ревизию исключительно двумя старшими битами адреса - верно?


--------------------
...а Сила, Брат - она - в несиловых решениях.
Go to the top of the page
 
+Quote Post
Intekus
сообщение Aug 18 2017, 14:02
Сообщение #27


Местный
***

Группа: Свой
Сообщений: 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, то, чтоб воспользоваться загрузкой в аварийную прошивку при сбое, необходимо выбрать другую схему конфигурирования (а значит - и физически переделать печатную плату)?


--------------------
...а Сила, Брат - она - в несиловых решениях.
Go to the top of the page
 
+Quote Post
Maksim
сообщение Aug 18 2017, 15:53
Сообщение #28


Частый гость
**

Группа: Свой
Сообщений: 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
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 12:51
Рейтинг@Mail.ru


Страница сгенерированна за 0.01637 секунд с 7
ELECTRONIX ©2004-2016