|
Altera remote update, Кто разбирался с обновлением прошивки? Механизм загрузки... |
|
|
|
Sep 22 2015, 09:09
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
Всем привет! Надо мне на циклоне 4 реализовать механизм смены конфигураций и обновления прошивки. Читаю доку по altremote и вот что меня напрягает Цитата Factory configuration is the default configuration setup ..... Upon power-up in remote update in the AP configuration scheme, Cyclone IV devices load the default factory configuration located at the following address: boot_address[23:0] = 24'h010000 = 24'b1 0000 0000 0000 0000. То есть в начале своей работы в режиме remote update ПЛИС грузиться не с 0 адреса? А как она блин узнает что она в этом режиме? А как мне делать файл прошивки? Когда делаешь файл прошивки для записи во флэш через Convert Progrmming File он что по умолчанию прошивку кладет в этот адрес? Или мне надо переводить ПЛИС руками в режим удаленной смены конфигураций? Проясните этот момент кто в курсе, пожалуйста.
|
|
|
|
|
Sep 22 2015, 10:30
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
Да я почти все готов сделать руками  только бы понять точно как оно работает. Если я не поставлю эту опцию, и дерну altremote в перезагрузку, она просто не начнет процесс или просто не вернется обратно в случае чего? Или не даст мне менять какие-то регистры в altremote? И еще непонятно про user watchdog Он должен вернуть нас в фактори если что-то не получилось во время загрузки. Самый вероятный сценарий как я вижу, это если флешка пуста, а мы пытаемся грузиться. Так вот вопрос после того как приложение пользователя все же загрузиться, в нем надо будет этот таймер остановить? Или он только на время смены конфигурации?сторожевой таймер включается после завершения конфигурации... А на время конфигурации есть что-то подобное? То есть при старте с пустой флешки, как процесс остановить? Кстати кто может еще раскроет тайну бита AnF, это который определяет апликайшин или фактори, его надо ставить до перезагрузки или сразу после? И как я понимаю именно этот бит определит куда полетит программа после следующего рывка сигнала перезагрузки, в фактори или дальше, да?
|
|
|
|
|
Sep 23 2015, 07:15
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
QUOTE (Golikov A. @ Sep 22 2015, 16:30)  Да я почти все готов сделать руками  только бы понять точно как оно работает. Если я не поставлю эту опцию, и дерну altremote в перезагрузку, она просто не начнет процесс или просто не вернется обратно в случае чего? Или не даст мне менять какие-то регистры в altremote? Для использования RSU вам нужно включить в опциях проекта (где Device Options) режим REMOTE и в сам проект включить мегафункцию altremote (мегавизардом сгенерить надо). Потом надо будет написать свой прикладной код, который работает с этим модулем - считывает из него состояния, устанавливает режим работы. QUOTE (Golikov A. @ Sep 22 2015, 16:30)  И еще непонятно про user watchdog Он должен вернуть нас в фактори если что-то не получилось во время загрузки. Самый вероятный сценарий как я вижу, это если флешка пуста, а мы пытаемся грузиться. Так вот вопрос после того как приложение пользователя все же загрузиться, в нем надо будет этот таймер остановить? Или он только на время смены конфигурации? сторожевой таймер включается после завершения конфигурации... А на время конфигурации есть что-то подобное? То есть при старте с пустой флешки, как процесс остановить?
На Cyclone4 происходит так: сперва стартует прошивка по умолчанию, для Active Serial (AS) режима - это загрузка с адреса 0, это будет Factory загрузка, в чём можно убедиться, прочитать из модуля RSU состояние главного автомата RSU. В этом режиме Watchdog не работает. Тут уже пользовательская логика (ниос или специальный КА) программирует дальнейшие действия: настраивает адрес загрузки Application, опции, Watchdog (если надо) и даёт команду на переконфигурацию. После этого происходит загрузка прикладной конфигурации. Если во время конфигурации и/или после неё что-то не так, то происходит автоматический откат на Factory, в которой можно посмотреть статус и понять, по какой причине произошла перезагрузка в Factory. Начало. Сперва грузим sof, который умеет программировать конфигурационную флешку (ну, или jic, но мы от него ушли), зашиваются factory и application образы. QUOTE (Golikov A. @ Sep 22 2015, 16:30)  Кстати кто может еще раскроет тайну бита AnF, это который определяет апликайшин или фактори, его надо ставить до перезагрузки или сразу после? И как я понимаю именно этот бит определит куда полетит программа после следующего рывка сигнала перезагрузки, в фактори или дальше, да? Насколько помню, AnF в Cyclone4 нету.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Sep 23 2015, 09:01
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
Вопрос: что надо сделать для перезагрузки из рабочей апликейшен прошивки в фактори? Как я понял просто напросто дернуть тот же сигнал в altremote что и для перезагрузки из фактори в апликайшен. При этом адрес я уже не настраиваю, он сам полетит по 0, так? Есть ли у меня какие-то способы передать данные между прошивками? Есть какой-то регистр который можно читать - писать и из фактори и из апликайшена, и он не меняется при переконфигурациях? Цитата Насколько помню, AnF в Cyclone4 нету. По описанию походу есть, и даже просят его в 1 ставить а то какой-то статус будет не так читаться. И вот вопрос его надо ставить до перезагрузки прошивки или после? То есть я его в фактори ставлю в 1 и дергаю сигнал начать, или в апликейшене я его ставлю в 1 чтобы при сигнале начать вернуться в фактори, а в фактори при этом он обязан быть 0, а то я не полечу куда хочу? И еще битик проверка прошивка до загрузки как работает? После старта перезагрузки прошивка считается 1 раз, провериться и если хорошая начнет процесс еще раз? То есть фактически считает данные 2 раза и загрузка будет в 2 раза помедленнее? Как определяется начало прошивки, пустая флешка сразу вернется в фактори или ее долго будут сначала читать?
|
|
|
|
|
Sep 23 2015, 11:17
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(Golikov A. @ Sep 23 2015, 12:01)  Вопрос: что надо сделать для перезагрузки из рабочей апликейшен прошивки в фактори? Как я понял просто напросто дернуть тот же сигнал в altremote что и для перезагрузки из фактори в апликайшен. При этом адрес я уже не настраиваю, он сам полетит по 0, так? Так и есть. Цитата(Golikov A. @ Sep 23 2015, 12:01)  Есть ли у меня какие-то способы передать данные между прошивками? Есть какой-то регистр который можно читать - писать и из фактори и из апликайшена, и он не меняется при переконфигурациях? Только регистры ядра RSU. Цитата(Golikov A. @ Sep 23 2015, 12:01)  По описанию походу есть, и даже просят его в 1 ставить а то какой-то статус будет не так читаться. И вот вопрос его надо ставить до перезагрузки прошивки или после? То есть я его в фактори ставлю в 1 и дергаю сигнал начать, или в апликейшене я его ставлю в 1 чтобы при сигнале начать вернуться в фактори, а в фактори при этом он обязан быть 0, а то я не полечу куда хочу? Перед переходом в application устанавливаете данный бит и дёргаете реконфигурацию. Цитата(Golikov A. @ Sep 23 2015, 12:01)  И еще битик проверка прошивка до загрузки как работает? После старта перезагрузки прошивка считается 1 раз, провериться и если хорошая начнет процесс еще раз? То есть фактически считает данные 2 раза и загрузка будет в 2 раза помедленнее? Загрузится factory, настроит ядро RSU и стартанёт application. Если application загрузился, он должен сбросить (держать в сбросе) WDT. Цитата(Golikov A. @ Sep 23 2015, 12:01)  Как определяется начало прошивки, пустая флешка сразу вернется в фактори или ее долго будут сначала читать? Будет работать аналогично работе с битой прошивкой - останется в factory.
|
|
|
|
|
Sep 23 2015, 13:16
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
Цитата Так и есть. ок, спасибо понятно Цитата Только регистры ядра RSU. которые не фига не доступны на запись из апликайшина, то есть фактически мне останется адрес прошивки в которую я грузился перед тем как вернутся, и биты статуса. Цитата Перед переходом в application устанавливаете данный бит и дёргаете реконфигурацию. ок, спасибо понятно Цитата Загрузится factory, настроит ядро RSU и стартанёт application. Если application загрузился, он должен сбросить (держать в сбросе) WDT. не про то, по описанию вочь дог если его запустить, начинает считать после того как перешли в юзер моде. Это у ксалинкса вочьдог на время поиска начала прошивки. Тут есть еще бит проверить прошивку перед конфигурацией. То есть реконфиг запуститься, если есть исправная прошивка. Но как я понимаю это потребует 2 чтения, 1 раз чтение прошивки для проверки, 2 раз для реконфигурации. То есть если мне важнее быстрее начать, то лучше этот битик снять, и сразу пытаться грузиться, фактори прошивка все равно не может управлять, и смысла в ней находиться пока проверяется боевая для меня нет, так что быстрее перегружусь без проверки, а если боевой нет, то по ошибке вернусь в фактори. Правильно я понимаю процесс? Цитата Будет работать аналогично работе с битой прошивкой - останется в factory. Это понятно, вопрос как быстро оно поймет что прошивка битая, у ксалинкса есть на этот счет вочь дог, не нашли начало за заданное число тактов, все - нет прошивки. А у альтеры, тоже самое, только задать число тактов нельзя? То есть не будет она шерстить всю флешку прежде чем догадается что прошивки нет?
|
|
|
|
|
Sep 23 2015, 13:48
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(Golikov A. @ Sep 23 2015, 16:16)  не про то, по описанию вочь дог если его запустить, начинает считать после того как перешли в юзер моде. Это у ксалинкса вочьдог на время поиска начала прошивки. Тут есть еще бит проверить прошивку перед конфигурацией. То есть реконфиг запуститься, если есть исправная прошивка. Но как я понимаю это потребует 2 чтения, 1 раз чтение прошивки для проверки, 2 раз для реконфигурации. То есть если мне важнее быстрее начать, то лучше этот битик снять, и сразу пытаться грузиться, фактори прошивка все равно не может управлять, и смысла в ней находиться пока проверяется боевая для меня нет, так что быстрее перегружусь без проверки, а если боевой нет, то по ошибке вернусь в фактори. Правильно я понимаю процесс? Похоже, что так, но этой опцией не пользовался. Цитата(Golikov A. @ Sep 23 2015, 16:16)  Это понятно, вопрос как быстро оно поймет что прошивка битая, у ксалинкса есть на этот счет вочь дог, не нашли начало за заданное число тактов, все - нет прошивки. А у альтеры, тоже самое, только задать число тактов нельзя? То есть не будет она шерстить всю флешку прежде чем догадается что прошивки нет? Для WDT задаётся значение Watchdog Timeout Value, так что всё можно.
|
|
|
|
|
Sep 24 2015, 07:52
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
И какой код говорит о Цитата Если причина - отсутствие прошивки, будет один флаг, И главное когда наступит это событие? То есть представьте флешку 128 МБит, и скорость чтения прошивки стандартную 20 МБит, то есть флэш прошустриться за 6 секунд. Так вот я в фактори когда вернусь, когда флэш дочитаю или раньше? В главе конфигурации описано про CRC на какие-то блоки, и общую. То есть есть шанс что я прилечу после первого блока. Хорошо бы знать его размер.... Force early CONF_DONE (cd_early) check - флажок опять же остается загадочным... второй раз перечитал описание, и опять у меня появляются другие толкования этого флага... кто знает правду что он делает, на пальцах  )?
|
|
|
|
|
Sep 24 2015, 08:38
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
QUOTE (Golikov A. @ Sep 24 2015, 13:52)  И какой код говорит о И главное когда наступит это событие? То есть представьте флешку 128 МБит, и скорость чтения прошивки стандартную 20 МБит, то есть флэш прошустриться за 6 секунд. Так вот я в фактори когда вернусь, когда флэш дочитаю или раньше? В главе конфигурации описано про CRC на какие-то блоки, и общую. То есть есть шанс что я прилечу после первого блока. Хорошо бы знать его размер.... Force early CONF_DONE (cd_early) check - флажок опять же остается загадочным... второй раз перечитал описание, и опять у меня появляются другие толкования этого флага... кто знает правду что он делает, на пальцах  )? Сразу он отваливается - читает с указанного адреса, там заголовок должен быть, его нет, сразу ошибка.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|