|
Xilinx bootloader, схематично: как сделать бут лоадер |
|
|
|
May 29 2013, 14:04
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
Всем привет!
Имею: Ксалинкс спартан 6, с микроблайзом, ДДР, и Езернетом
На данный момент программа работает из ДДР, чтобы ее туда запихать в плисину заливаю bootloop а потом через жетаг средой заливаю программку.
Хочу к этому всем приделать загрузчик, чтобы оно все могло из флеши само стартовать, а в лучшем случае чтобы еще по езернету можно было прошивку обновить.
Кто-то может схематично описать как это делается?
1. я так понимаю мне нужно в микроблайз запихать модуль чтения - записи конфигурационной флэши. Есть такие готовые? Или конфигурационная флэш доступна из микроблайза напрямую?
2. Потом мне надо сформировать файл для этой флэши, что мне надо взять, какие утилиты применить?
3. После того как у меня будет бутлоадер, можно ли как то сделать так чтобы софт отлаживался по старой схеме? То есть мне не надо было бы перезаписывать флэш для того чтобы стартануть проект. Или это делается только через бутлуп и жетаг, а в конце формируется файл прошивки для загрузчика?
Если отказаться от загрузки через езернет, такое чувство что должно быть стандартное решение. Ведь сделать проект работающий из ДДР можно просто иснтрументами среды, так же его можно туда запихать, неужели не предусмотрели стандартного загрузчика?
|
|
|
|
|
Jun 3 2013, 21:02
|

фанат Linux'а
    
Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008

|
Цитата(Golikov A. @ May 30 2013, 22:42)  Спасибо, да здорово что многое является стандартом, я так понимаю Linear Flash это как раз и есть интерфейс к конфигурационной флэшке... Скажите, на данный момент Вам удалось добиться загрузки из флэша? В общем, поставленная в первом посте темы - решена? Мне тоже это предстоит, хочу оценить насколько много времени требуется для решения проблемы, чтобы разобраться. Но вопрос: А для этого процесса сколько надо иметь памяти для программ и данных? Можно ограничиться минимальными 8 Кб ОЗУ и 8 Кб для программы загрузчика? P.S. Просто обидно что эта память нужна лишь на секунду работы и более не используется. Неужели нет функции авто-инициализации памяти, ведь DDR2/3 контроллер все равно сам настраивается при старте и работает сразу сам, если я правильно понимаю. Ну ясно что нет такой функции
--------------------
|
|
|
|
|
Jun 4 2013, 05:54
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
на данный момент возникли еще проблемы, так что попробовать не успел. Но по приведенному описанию все очень не сложно. Среда создает проект - загрузчик который пихается вместе с конфигурацией в начало флэши, как это происходит с обычным проектом если он влезает во внутреннюю память. Этому проекту загрузчику сообщают где взять остальную программу и он ее из флэшки пихает в память и запускае.
Коды не разбирал еще, и езернет для обновления не прикручивал, это все в будущем. Но примитивный загрузчик выглядит не сложным.
У меня необходимость пихать программу во внешнюю память возникла из за использования LwIP, ему нужен нефиговый heap для работы, и он просто во внутреннюю память не влез, потому я все перенес в ДДР, подключил кэш и оно все работает воде как... сколько я потерял скорости на этом не знаю, я вообще что-то в микроблайзе разочаровался: запись в акси лайт 1 регистра 32 бита до 7 тактов, чтение тоже. И что-то у меня по дизасму не видно чтобы "практически все инструкции выполнялись за 1 такт", хотя может это связано с тем что я дебажу конфигурацию дебаг, а в релизе оно получшее будет...
Внутреннюю память ПЛИС умеет конфигурить сама при загрузке, в эти РАМы всякие таблицы часто пихают, потому можно сделать прожку для внутренней памяти которая сама собой загрузиться. Для внешней это увы невозможно, сама собой не загрузится...
|
|
|
|
|
Jun 4 2013, 06:53
|
Местный
  
Группа: Свой
Сообщений: 259
Регистрация: 19-09-05
Из: Екатеринбург
Пользователь №: 8 715

|
Цитата(AVR @ Jun 4 2013, 03:02)  Но вопрос: А для этого процесса сколько надо иметь памяти для программ и данных? Можно ограничиться минимальными 8 Кб ОЗУ и 8 Кб для программы загрузчика? Можно. Наш первичный загрузчик использует всего 8кб BRAM. Он грузит в ДДР вторичный, более умный и тяжелый загрузчик, который уже грузит боевую программу.
|
|
|
|
|
Jun 6 2013, 07:26
|
Местный
  
Группа: Свой
Сообщений: 259
Регистрация: 19-09-05
Из: Екатеринбург
Пользователь №: 8 715

|
Цитата(AVR @ Jun 5 2013, 23:02)  Я правильно понимаю что DDRx в ПЛИС от Xilinx работает сразу, без каких либо ручных настраиваний со стороны пользователя? Да, верно.
|
|
|
|
|
Jun 8 2013, 16:05
|

фанат Linux'а
    
Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008

|
Цитата(Golikov A. @ Jun 6 2013, 01:02)  сам процесс чтения там не описан, надо исходник ковырять. Там надо еще модуль работы с флэшой подключать... У кого-нибудь есть готовый код загрузчика? Можете простой пример кода привести тут, чтобы всем заинтересованным было всё четко ясно что и как делается? Есть ли необходимость утаивать код от халявщиков типа меня?  Это что - обращение через несколько регистров? Или как? В каком конкретно файле или документе смотреть чтение из флэшки? Хотя бы имя того файла?..
--------------------
|
|
|
|
|
Jun 10 2013, 09:54
|
Местный
  
Группа: Свой
Сообщений: 259
Регистрация: 19-09-05
Из: Екатеринбург
Пользователь №: 8 715

|
Цитата(AVR @ Jun 8 2013, 22:05)  У кого-нибудь есть готовый код загрузчика? Можете простой пример кода привести тут, чтобы всем заинтересованным было всё четко ясно что и как делается? Есть ли необходимость утаивать код от халявщиков типа меня?  Это что - обращение через несколько регистров? Или как? В каком конкретно файле или документе смотреть чтение из флэшки? Хотя бы имя того файла?.. Посмотрите XAPP1140 и XAPP1146. Там есть все, что нужно для начала. И код загрузчика, и т.д. PS Вроде писал уже ! В этой теме, сообщение №2
|
|
|
|
|
Jun 10 2013, 10:08
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
1140 This application note discusses an in-the-field upgrade of the Virtex®-5 FXT bitstream, Linux kernel, and loader flash images, using the presently running Linux kernel. Upgrade files are obtained from a USB mass storage device using the XPS USB Host core or over the network from an FTP server. 1146 This application note describes an in-the-field upgrade of the Spartan®-6 FPGA bitstream, Linux kernel, and loader flash images, using the presently running Linux kernel. Upgrade files are obtained from a CompactFlash storage device or over the network from an FTP server. Слишком круто%) для начала. http://www.xilinx.com/support/answers/43615.htmвот то что искалось в этой теме. Способ по шагам без велосипеда. Чтобы просто стартануть проект, бантики уже позже.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|