Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Повторить PCI плату (Cyclone,MAX) как ?
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
bege
Есть pci плата, на ней altera cyclone, max3000 (EPM3128ATC100-10
), память ну и обвязка. Возможно ли слить прошивку с циклона и если да, то как ?
Jools
А грузится циклон через PCI? Или на плате есть конфигурационный флеш?
Artyom
Цитата(Jools @ Feb 6 2006, 14:23) *
А грузится циклон через PCI? Или на плате есть конфигурационный флеш?


А как может циклон зашится через PCI если именно он (скорее всего) работает с PCI шиной. Можно написать программу зашить ее в МАКС и тогда он будет прошивать Циклон из параллельного ИИПРОМа или банально поставить какуюнить последовательную ПЗУху для прошивки циклона.
Тогда считать прошивку конечно можно (Циклоновскую)... а макс считаешь наврятли, хотя в некоторых случаях можно понять для чего он нужен и написать программу руками.
bege
На плате есть какой-то чип памяти самсунг k4s643232h-tc60
Я так понял, что с циклона считать можно что угодно а вот с макса нет, я прав ?
А в самом циклоне есть ли какие-нибудь защищенные от чтения области ?
Artyom
Цитата(bege @ Feb 6 2006, 15:02) *
На плате есть какой-то чип памяти самсунг k4s643232h-tc60
Я так понял, что с циклона считать можно что угодно а вот с макса нет, я прав ?
А в самом циклоне есть ли какие-нибудь защищенные от чтения области ?



k4 Это помоему микруха динамической памяти K6 - статическая (в циклоне есть контроллер динамической памяти). Циклон конфигурируется извне (т.к. он SRAM Based. Макс в отличии от Циклона EEPROM Based прошивка находится внутри защищена Lock битом).В циклоне защищенных областей нет.
bege
Если циклон конфиг-ся извне, то где лежит сама прошивка ?
Варианты взлома Макса есть ? Хотя бы теоретические ?
Artyom
Цитата(bege @ Feb 6 2006, 15:22) *
Если циклон конфиг-ся извне, то где лежит сама прошивка ?


Смотри на плате ЛЮБЫЕ ПЗУхи. Все что может соодержать информацию.

Много бы проблемм решилось если бы я знал как можно считать прошивку МАКСов. :-)
Jools
Скорее всего Cyclone конфигурится через PCI. Одна из функций твоей MAX - простой
PCI контроллер-прогрузчик Циклона. В этом случае должна быть хостовая программа на PC, которая посылает на твою плату конфигурационный файл.

Т.е. после включения питания компа. Необходимо запустить хостовую прогу( ту прогу, которая работает с твоей платой - принимает или отправляет с нее какие-то данные), которая и сконфигурит Циклон. Вот этот хост и изучай. В драйвер твоей карточки, вряд-ли всунут процедуру конфигурирования - это изврат.

А насчет чтения прошивки MAX - лично мне приемлимых способов не известно.
VslavX
Цитата(Jools @ Feb 6 2006, 16:18) *
Т.е. после включения питания компа. Необходимо запустить хостовую прогу( ту прогу, которая работает с твоей платой - принимает или отправляет с нее какие-то данные), которая и сконфигурит Циклон. Вот этот хост и изучай. В драйвер твоей карточки, вряд-ли всунут процедуру конфигурирования - это изврат.

А почему изврат? ИМХО, в драйвере было бы вполне логично - MAX3K есть, он выдаст Dev&VendorID - для PnP и загрузки требуемого драйвера вполне достаточно. А из драйвера можно уже и Циклон прогрузить. ИМХО - более "бесшовный" вариант чем с "хостовой прогой".
Впрочем, подождем дальнейшей информации от автора топика smile.gif
v_mirgorodsky
Сломать MAX совсем не сложно smile.gif Весь вопрос только в сумме денег, которые надо заплатить людям за взлом.

http://www.semiresearch.com/default.php?se...code_extraction
Jools
Цитата(VslavX @ Feb 6 2006, 20:49) *
А почему изврат? ИМХО, в драйвере было бы вполне логично - MAX3K есть, он выдаст Dev&VendorID - для PnP и загрузки требуемого драйвера вполне достаточно. А из драйвера можно уже и Циклон прогрузить. ИМХО - более "бесшовный" вариант чем с "хостовой прогой".
Впрочем, подождем дальнейшей информации от автора топика smile.gif


Не спорю. Вариант имеет право на существование, но имхо для мелких ПЛИСок. А с моей точки зрения изврат в следующем. Что если устройство многофункциональное, т.е сейчас мне нужна эта конфигурация, через пять минут другая, а завтра третья? Да и если в устройстве обнаружены ошибки, то проще скормить хосту новую конфигурацию, чем драйвера переставлять.
bege
еще раз напишу что есть на плате
1 чип Altera Cyclone
1 чип Altera Max3k
1 чип какой-то памяти самсунг k4s643232h-tc60, вроде это не ПЗУ
пара-тройка конденсаторов, чуть побольше резисторов, кварц, и вроде 2 транзистора (может и не транзистора, но ножек 3).
1 Выдеовыход на монитор
Плата воткнута в PCI. При загрузке ОС на середине загрузке происходит пауза в полсекунды, после на видеовыходе появляется статическое изобрадение и загрузка ОС продолжается. После того как ОС загрузилась, подгружается служба и устройство начинает работать.
Вот такие дела.
Если чип памяти это не ПЗУ, то загрузка циклона происходит через драйвер, я правильно понимаю ? Тогда что делает МАКС ?
Если просто тупо повторить плату ничего не прошивая есть ли шанс что будет работать (если загрузка через драйвер идет) ?
Jools
Цитата(v_mirgorodsky @ Feb 7 2006, 11:50) *
Сломать MAX совсем не сложно smile.gif Весь вопрос только в сумме денег, которые надо заплатить людям за взлом.

http://www.semiresearch.com/default.php?se...code_extraction


Имхо, дешевле подкупить разработчка cheers.gif
bege
Цитата(Jools @ Feb 7 2006, 13:15) *
Цитата(VslavX @ Feb 6 2006, 20:49) *

А почему изврат? ИМХО, в драйвере было бы вполне логично - MAX3K есть, он выдаст Dev&VendorID - для PnP и загрузки требуемого драйвера вполне достаточно. А из драйвера можно уже и Циклон прогрузить. ИМХО - более "бесшовный" вариант чем с "хостовой прогой".
Впрочем, подождем дальнейшей информации от автора топика smile.gif


Не спорю. Вариант имеет право на существование, но имхо для мелких ПЛИСок. А с моей точки зрения изврат в следующем. Что если устройство многофункциональное, т.е сейчас мне нужна эта конфигурация, через пять минут другая, а завтра третья? Да и если в устройстве обнаружены ошибки, то проще скормить хосту новую конфигурацию, чем драйвера переставлять.


Конфигурация там одна, она практически не меняется. Один раз только (за 2-3 года) разработчик прислал новый драйвер с исправлением небольшого бага.
Jools
Цитата(bege @ Feb 7 2006, 13:19) *
Плата воткнута в PCI. При загрузке ОС на середине загрузке происходит пауза в полсекунды, после на видеовыходе появляется статическое изобрадение и загрузка ОС продолжается. После того как ОС загрузилась, подгружается служба и устройство начинает работать.
Вот такие дела.
Если чип памяти это не ПЗУ, то загрузка циклона происходит через драйвер, я правильно понимаю ?

В твоем случае прогружает либо драйвер, либо подгружаемая служба(хост). Но в последнем случае, конфигурационные данные все равно передаются из службы(хоста) драйверу, который их по PCI посылает MAXу.

Цитата(bege @ Feb 7 2006, 13:19) *
Тогда что делает МАКС ?

Берет у драйвера конфигурацию и физически прогружает ею Cyclone.

Цитата(bege @ Feb 7 2006, 13:19) *
Если просто тупо повторить плату ничего не прошивая есть ли шанс что будет работать (если загрузка через драйвер идет) ?

Без прошивки MAXа тупо не повторишь.
Jools
Цитата(bege @ Feb 7 2006, 13:32) *
Конфигурация там одна, она практически не меняется. Один раз только (за 2-3 года) разработчик прислал новый драйвер с исправлением небольшого бага.


Если баг был аппаратный, т.е. разработчик подкорректировал логику работы платы ( но не обмен по PCI и т.п.), то конфигурация однозначно спрятана в драйвере.
sazh
Посмотрите на плате, сидит ли MAX физически на PCI.Ведь по идее такой подход не есть хорошо. Не соответсвует треюованиям стандарта. (Длина цепей, длина цепей системного клока, нагрузки)
Более того, эта плата должна определиться как PnP на начальном этапе загрузки, потом это знако место игнорируется. Значит перезагрузка как минимум требуется? У меня стенд на PCI. По черному экрану опознается как неизвестное PCI устройство, а потом в оборудовании как драйвер прописал.
Может конечно можно по другому. Но зачем для конечного устройства. Но если MAX сидит на PCI, тогда в комплект платы должен и драйвер входить.


Короче. Все дело в прошивке MAX3000. Она программируется в системе по JTAG. Если у Вас нет файла прошивки *.pof, Вы не сможете повторить это устройство.
bege
Цитата(Jools @ Feb 7 2006, 13:37) *
Берет у драйвера конфигурацию и физически прогружает ею Cyclone.

Без прошивки MAXа тупо не повторишь.


Но ведь прошивка МАКСА может быть и не защищена. Операция считывания прошивки вроде как описана в факе.
Каким шнуром шьется макс ? на альтере.ком вроде написано что битбластером или байтбластеромМВ. Это так ? или подойдет байтбластер/бб2 ?

А можно ли узнать каким-то другим способом заблокировано ли считывание данных с макса или нет ?
Tosha
Полключайте тогда МАКС к JTAG'у и считывайте квартусам или Макс плюсом. Если в считанном файле будут сполшные 0xFF, значит микросхема залочена и вы ее не прочитаете. ББ2 и ББmv подойдут.
Artyom
Макс действительно может передавать на PCI шину Vendor устройства, хватать прошивку и прошивать ей Циклон. Товарисчи это очень легко проверить. Достаточно посмотреть куда подсоединены конфигурационные пины Циклона и все сразуже станет ясно. А далее как? Висит ли Макс и далее на шине или после конфигурации Циклона циклон перехватывает управление а Макс запирается в OPNDRN?
v_mirgorodsky
Значится так, если плата распознается по PCI, значит в MAX'е сидит простейший Target, сливает прошивку с PCI и грузит ее в Cyclone. В хорошем случае для повторения этой платы будет необходима только прошивка Cyclone, потому как совсем немного может войти в MAX окромя таргетной прошивки.

В лубом случае, трудоемкость повторения такой платы будет очень высокой.
bege
Итак сваяли байтбластер, макс в квартусе даже определяется правильно ... но сварганить какой-то проект под макс который бы правильно компилировался не могу ... знаний в этой области полный 0 ... а посему просьба - может ли кто-нить кинуть проект под макс3000а или на пальцах обьяснить как это сделать в квартусе ?
sazh
Можно с высокой долей вероятности предсказать результат Ваших изысканий. Вы запортите эту единственную рабочую плату.
bege
плата не одна ...
так что результат в конце концов будет smile.gif
bege
первый результат - прошивка оказалась защищенной, чего и следовало ожидать.
судя по предположению v_mirgorodsky в максе сидит "простейший Target", который прошивает циклон.
Вопрос: может ли это быть какая-нибудь стандартная прошивка для максов ? типа прошивка для макса для прошивки им циклона ? или я несу полный бред ?
VslavX
Стандартных решений "MAX для заливки Cyclone" нет.
Следующий этап - копать драйвер/утилиту которые обращаются к MAX и загружают Циклон.
В конце концов после "танцев с бубнами" вытащить прошивку Циклона возможно. Но тут может
быть еще взаимодействие MAX<->Cyclone помимо загрузки. Этакий ма-а-ленький но очень нужный кусочек функций вынесен в закрытый MAX (если бы я хотел защитится от копирования - я бы так и поступил). Тогда получится такая ситуация - Вы потратите много сил и времени на "добычу" прошивку Циклона, а MAX полностью повторить не удастся.
Doka
Цитата(VslavX @ Feb 13 2006, 14:01) *
Стандартных решений "MAX для заливки Cyclone" нет.
Следующий этап - копать драйвер/утилиту которые обращаются к MAX и загружают Циклон.
В конце концов после "танцев с бубнами" вытащить прошивку Циклона возможно. Но тут может
быть еще взаимодействие MAX<->Cyclone помимо загрузки. Этакий ма-а-ленький но очень нужный кусочек функций вынесен в закрытый MAX (если бы я хотел защитится от копирования - я бы так и поступил). Тогда получится такая ситуация - Вы потратите много сил и времени на "добычу" прошивку Циклона, а MAX полностью повторить не удастся.


согласен, несмотря на некую избыточность аппаратного решения получаем легкость обновления прошивки + защиту от кражи интеллектуальной собтвенности.
разработчикам a14.gif !!
bege
Отправил запрос по адресу http://www.semiresearch.com/default.php?se...code_extraction.
А кто-нибудь в курсе порядок цен на данные услуги ? 1к$,10к$, 100$k ?
Tosha
Цитата(Doka @ Feb 13 2006, 16:00) *
согласен, несмотря на некую избыточность аппаратного решения получаем легкость обновления прошивки + защиту от кражи интеллектуальной собтвенности.
разработчикам a14.gif !!



Странные на мой взгляд разработчики, так заморачиваться wink.gif Драйвера специальные писать. Поди плата еще не соответствует PCI спецификации. И это все ради того чтобы сэкономить на загрузочной флешке. А защиту можно было бы и так пристегнуть в CPLD'ке.

А насчет копирования MAX - все зависит от того как он подключен к Циклону. Если только к конфигурационным контактам, то еще имеет смысл копать. А если есть еще какие-то соединения, то скорее всего там какой-то будет неизвестный протокол обмена, которые не повтришь sad.gif
Doka
Цитата(Tosha @ Feb 14 2006, 15:25) *
Цитата(Doka @ Feb 13 2006, 16:00) *

согласен, несмотря на некую избыточность аппаратного решения получаем легкость обновления прошивки + защиту от кражи интеллектуальной собтвенности.
разработчикам a14.gif !!



Странные на мой взгляд разработчики, так заморачиваться wink.gif Драйвера специальные писать. Поди плата еще не соответствует PCI спецификации. И это все ради того чтобы сэкономить на загрузочной флешке. А защиту можно было бы и так пристегнуть в CPLD'ке.

А насчет копирования MAX - все зависит от того как он подключен к Циклону. Если только к конфигурационным контактам, то еще имеет смысл копать. А если есть еще какие-то соединения, то скорее всего там какой-то будет неизвестный протокол обмена, которые не повтришь sad.gif


ну что вы фигню всякую говорите, ей богу!
ничего не странные.
решение простое как шпала.
и с чего вы взяли, что плата не соответствует PCI спецификации?!
VID & PID динамически не меняются физические уровни соответствуют, времянки выдержаны.
так что же не соответствует PCI спецификации?!
и это не просто экономия на флешке - а попробуйте-ка вы объяснить заказчику из какго-нить иркутска или владивостока как ему перешить флешку... проще наверное в командировку смотаться будет, чем терять из-за этого заказчика.
..а элегантное решение в виде замены одного файла на машине пользователя, пересылаемого по эл.почте - что может быть проще?!
.
и докучи: конф.контакты (по кр.мере нек-е) после конфигурирования могут использоваться пользователем при работе ПЛИС - так что не стоит особо надеяться, поскольку на теже физические линии после окончания конфигурирования влегкую навешивается тот же хитропридуманный протокол.
Tosha
Согласно PCI Спецификации:
Цитата
The trace length for the PCI CLK signal is 2.5 inches ± 0.1 inches for 32-bit and 64-bit
add-in cards and must be routed to only one load.

4.4.4. Signal Loading
Shared PCI signals must be limited to one load on the add-in card. Violation of add-in card
trace length or loading limits will compromise system signal integrity. It is specifically a
violation of this specification for add-in cards to:
Attach an expansion ROM directly (or via bus transceivers) on any PCI pins.
Attach two or more PCI devices on an add-in card, unless they are placed behind a
Attach any logic (other than a single PCI device) that "snoops" PCI pins.
Use PCI component sets that place more than one load on each PCI pin; e.g., separate
address and data path components.
Use a PCI component that has more than 10 pF capacitance per pin.
Attach any pull-up resistors or other discrete devices to the PCI signals, unless they are
placed behind a PCI-to-PCI bridge.


Т.е. запрещено подвешивать больше чем один контакт на каждий PCI сигнал. Особенно PCI CLOCK.
А почему в предыдущем посте я не был уверен - может быть там весь PCI обмен идет через MAX. В этом случае плата еще может соответствовать PCI спецификации. Ведь PCI моста на плате нет.

Насчет прошивки - EPCS прекрасно переконфигурируется самим Циклоном по PCI шине. У меня так реализованно во всех платах. Если уж вы сильно боитесь что во время переконфигурирования выключится компьютер и плата испортится, то можно было этот самый макс использовать для закачки прошивки в таких аварийных случаях через RS232 например. Он есть у всех. И на мой взгляд такой подход проще. Особенно если учесть, что в таком случае можно сделать так, чтобы и Циклон мог перешивать Макс. laugh.gif

А конфигурационные пины конечно можно использовать. Просто чем меньше контактов, тем проще должен быть протокол. Хотя конечно для рандом генератора и одного пина хватит smile.gif

Кстати, вы не в курсе можно ли использовать JTAG пины после конфигурации? Про AS пины знаю что можно.
VslavX
Цитата(Tosha @ Feb 15 2006, 06:04) *
Т.е. запрещено подвешивать больше чем один контакт на каждий PCI сигнал. Особенно PCI CLOCK.

При желании это требование можно обойти при помощи Clock Buffers. Но желание должно быть очень уж сильным smile.gif
Цитата(Tosha @ Feb 15 2006, 06:04) *
А почему в предыдущем посте я не был уверен - может быть там весь PCI обмен идет через MAX. В этом случае плата еще может соответствовать PCI спецификации. Ведь PCI моста на плате нет.

А может быть там на MAX и собран мостик типа PCI<->(своя шина). И на этой "своей шине" и сидит Циклон. Автор топика нигде вроде не написал, что Циклон сидит на PCI непосредственно.
Цитата(Tosha @ Feb 15 2006, 06:04) *
Насчет прошивки - EPCS прекрасно переконфигурируется самим Циклоном по PCI шине. У меня так реализованно во всех платах. Если уж вы сильно боитесь что во время переконфигурирования

ИМХО, тоже очень неплохое решение. По упрощению печатной платы - так вообще оптимальное. Но мы все-таки не знаем, что за устройство вскрывается и его архитектуру на данный момент представляем очень приблизительно.
bege
После переписки с семиресерчем была озвучена цифра 10k euro.
Вопрос: в России кто-нибудь занимается подобными делами ?
Tosha
Если не секрет что это за замечательная плата такая, что вам так ее хочется скопировать? smile.gif Судя по вашему описанию она довольно простая. Или софт к ней привязывается жестко?
shawk
Кстати, по поводу "стандартных решений" по заливке прошивок - в Альтеровских девелопмент-бордах именно МАХ заливает прошивку в Циклон/Стратикс.
Может в борде PCI-Cyclone подсмотреть, как это делается?
Postoroniy_V
Цитата(bege @ Feb 15 2006, 12:24) *
После переписки с семиресерчем была озвучена цифра 10k euro.
Вопрос: в России кто-нибудь занимается подобными делами ?

ну дешевле может быть только если "взламывать не силикон"
а драйвер и тд. как вам и описал уважаемый VslavX
ну и ломать "в фоне" полгодика скажем smile.gif
если интересно пишете в личку
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.