|
|
  |
PCIe |
|
|
|
May 12 2010, 15:49
|
Участник

Группа: Участник
Сообщений: 21
Регистрация: 21-01-10
Пользователь №: 54 970

|
Что-то я не понял... (Возможно вечер сказывается). Какую систему загрузить? И что даст ctrl+alt+del? Можно пояснить по-подробнее?
|
|
|
|
|
May 13 2010, 04:01
|
Местный
  
Группа: Свой
Сообщений: 451
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 284

|
Цитата(Methane @ May 12 2010, 20:35)  Если я сейчас делаю так. Гружу плисину через JATG, потом делаю ресет через ctrl+alt+del (рекомендация альтеры). Если не делать ctrl+alt+del а загрузить ПЛИСину к примеру во время тестирования памяти, она не видится в системе. Есть ещё вариант. Программа adp201x1_restart позволяет запомнить базовые адреса BAR0, BAR1. А потом их восстановить. Один раз необходимо запустить программу в режиме определения базовых адресов: adp201x1_restart 4953 5504 -r Будет сформирован файл bar.txt в котором будут сохранены значения базовых адресов. После перезагрузки ПЛИС через JTAG надо выполнить команду: adp201x1_restart 4953 5504 -w Программа запишет BAR0, BAR1, COMMAND Перезагрузка компьютера не требуется. 4953 - это VendorID 5504 - это DeviceID На компьютере c Chipset P45 работоспособность восстанавливается в полном объёме. На компьютере с процессором I7 и Chipset P55 восстанавливается только обращения к регистрам. Канал DMA не работает. Программа работает через драйвер UNINSYS. Файлы:
adp201x1_restart_bin.zip ( 5.07 килобайт )
Кол-во скачиваний: 68 - собственно программа
adp201x1_restart_src.zip ( 10.84 килобайт )
Кол-во скачиваний: 64 - исходные тексты
uninsys_2.3.exe.ZIP ( 433.1 килобайт )
Кол-во скачиваний: 144 - драйвер UNINSYS - необходимо переименовать расширение в *.exe
|
|
|
|
|
May 13 2010, 06:39
|
Местный
  
Группа: Свой
Сообщений: 451
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 284

|
Цитата(Methane @ May 13 2010, 08:43)  А если не винда и вообще свой драйвер? Тогда нужно научится запоминать и восстанавливать регистры BARx и COMMAND
|
|
|
|
|
May 13 2010, 08:28
|
Знающий
   
Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650

|
Цитата(Methane @ Mar 30 2010, 13:25)  Дело не только в хотплаге. Дело в том что хотелось бы 1. Грузить прошивку прямо из драйвера. 2. Не перезагружать комп при каждой смене прошивки.
Да, а поставить плату в компютер, (пустую, без прошивки) а потом запрограммировать ее через JTAG, получается? Я читал что у народа работает, но тоже только один раз. Если сменить прошивку, не работает. 1. Из драйвера грузить не получится. Ибо когда девайс у вас не загружен - BARов и прочей хрени просто _физически_ не существует. 2. Могу предложить старый "дедовский" способ отладки : 2.1. Disable device в Device manager 2.2. Reload FPGA using JTAG cable. 2.3. Enable device or Scan for Hardware changes in Device manager. По времени занимает минуты 3-4 в зависимости от сноровки спортсмена  Ну или вышеописанный способ (пишите утилиту, которая сохраняет изменяемые регистры (особенно BARы) куда-нибудь, потом перегружаете FPGA и потом той же мостыркой восстанавливаете прежние значения. Тут расчёт на то, что система "ничего не заметит". Этот трюк, как уже описано выше, не всегда и не везде прокатывает. Цитата(Methane @ May 13 2010, 11:43)  А если не винда и вообще свой драйвер? На "невинде" последовательность действий должна быть примерна та же: 1. Убиваем девайс в системе, не знаю как это делается, возможно достаточно всего лишь драйвер выгрузить. 2. Делаем свои дела с девайсом, т.е. перегружаем FPGA. 3. Пинаем bus enumerator на поиск девайсов по новой. Возможно для этого его надо перегрузить, либо запустить какой-то скрипт. Все эти действия (исходя из идеологии этой самой пресловутой "невинды") можно запихать в один скриптик, уменьшая количество ручной работы до минимума.
|
|
|
|
|
May 13 2010, 08:42
|

Гуру
     
Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230

|
Цитата(Бэд @ May 13 2010, 11:28)  На "невинде" последовательность действий должна быть примерна та же: 1. Убиваем девайс в системе, не знаю как это делается, возможно достаточно всего лишь драйвер выгрузить. 2. Делаем свои дела с девайсом, т.е. перегружаем FPGA. 3. Пинаем bus enumerator на поиск девайсов по новой. Возможно для этого его надо перегрузить, либо запустить какой-то скрипт.
Все эти действия (исходя из идеологии этой самой пресловутой "невинды") можно запихать в один скриптик, уменьшая количество ручной работы до минимума. Тут главная проблема в том, что PC, по подаче питания, если не находит ничего в сплоте, то имеет полное право считать что там ничего нет. Только что проверил, если карточку не нашел BIOS (она потом появилась) то линух ее тоже уже не видит. А это значит трах с параллельным пассивным программированием.
|
|
|
|
|
Sep 3 2011, 17:28
|
Знающий
   
Группа: Свой
Сообщений: 555
Регистрация: 14-10-09
Пользователь №: 52 939

|
Здравствуйте! MethaneМожно узнать, чем у вас закончились эксперименты с ХотПлугом? Сейчас стоит наподобие задача - нужна обязательно горячая реконфигурация(возможно с использованием Remote System Upgrade). И вот думаю, связываться с Альтеровской PCIe или поставить PEX(не PHY) какой нить. Есть некоторые вопросы: 1. Если я поставлю PEX, то я понимаю проблемы с горячей реконфигурацией исчезнут? и с ПЛИСиной можно будет творить что угодно  когда компьютер загрузится (WinXP). 2. Интересует PCIe'ый JTAG! Можно ли его использовать в своих корыстных целях))? Ну, например, нацелить на него Programmer, SignalTap? (естественно JTAG ноги будут на плисину заведены и, соответственно, будет стоять PEX)
|
|
|
|
|
Sep 4 2011, 12:50
|
Знающий
   
Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650

|
Цитата(gosu-art @ Sep 4 2011, 00:28)  Здравствуйте! MethaneМожно узнать, чем у вас закончились эксперименты с ХотПлугом? Сейчас стоит наподобие задача - нужна обязательно горячая реконфигурация(возможно с использованием Remote System Upgrade). И вот думаю, связываться с Альтеровской PCIe или поставить PEX(не PHY) какой нить. Есть некоторые вопросы: 1. Если я поставлю PEX, то я понимаю проблемы с горячей реконфигурацией исчезнут? и с ПЛИСиной можно будет творить что угодно  когда компьютер загрузится (WinXP). 2. Интересует PCIe'ый JTAG! Можно ли его использовать в своих корыстных целях))? Ну, например, нацелить на него Programmer, SignalTap? (естественно JTAG ноги будут на плисину заведены и, соответственно, будет стоять PEX) Можно и не PEX. Поглядите на GN4121 / GN4124 от Gennum. Для вариантов X1 и X4 очень неплохое решение.
|
|
|
|
|
Sep 5 2011, 03:36
|
Местный
  
Группа: Свой
Сообщений: 451
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 284

|
Цитата(gosu-art @ Sep 3 2011, 20:28)  1. Если я поставлю PEX, то я понимаю проблемы с горячей реконфигурацией исчезнут? и с ПЛИСиной можно будет творить что угодно  когда компьютер загрузится (WinXP). 2. Интересует PCIe'ый JTAG! Можно ли его использовать в своих корыстных целях))? Ну, например, нацелить на него Programmer, SignalTap? (естественно JTAG ноги будут на плисину заведены и, соответственно, будет стоять PEX) При наличии PEX8311 проблемы с перезагрузкой ПЛИС исчезают. А вот PCI'ый JTAG использовать вряд ли удасться. Я не встречал информации о его поддержке на системных платах. Как вариант можно сделать аналог Byte Blaster, но вот удасться ли его запустить на порте с нестандартным адресом ?
|
|
|
|
|
Jun 8 2012, 06:16
|
Участник

Группа: Участник
Сообщений: 42
Регистрация: 2-06-12
Из: Минск
Пользователь №: 72 138

|
Не совсем по теме, но может есть у кого опыт... Подскажи, а Express Card у Ноутбуков это ведь и есть PCIe? Где можно взять адаптер чтобы вывести наружу стандартный PCIe и воткнуть туда свою плату с FPGA (ну нету уменя настолького компа и покупать нехочу)
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|