Эмуляция PCI устройства
От: Мёртвый Даун Россия  
Дата: 29.11.16 09:21
Оценка:
Всем привет!

Вопрос следующий.

Вендор по проекту сделал для нас карточку PCI. Ничего особенного, shared memory, base address registers, network interfaces. Всё как обычно. Но поставка карточки (физически девайса) отложилась на неопределенный срок.
Драйвер (модуль ядра) и библиотеку для host application я уже написал. Но поскольку реальной железки нету, не могу полноценно всё протестить.
Т.е. work flow из host application (library) у меня такой:
(драйвер уже загружен)
1) инициализация устройства (там подготовка буферов, портов и т.д.)
2) запись в буфер (или регистры) через DMA
(на карточке что-то там прочиталось, она там что-то поделала, выставила user-defined interrupt)
3) ожидаю прерывания
4) дождался, прочитал данные (или из порта, или из буфера, или из регистров)

Вопрос: как сэмулировать PCI устройство? Ну т.е. что-то, что бы мне ответило. Поскольку в PCI Subsystem каждое устройство имеет свои таблицы идентификации: VendorID, DeviceID и прочий шлак.
P.S. Или всё таки отложить, и ждать вендора? (Тут вся фигня еще в том, что PM как бэ намекнул, что еще и вендор может смениться, и будет другая железка.)
Только Путин, и никого кроме Путина! О Великий и Могучий Путин — царь на веки веков, навсегда!
Смотрю только Соловьева и Михеева, для меня это самые авторитетные эксперты.
КРЫМ НАШ! СКОРО И ВСЯ УКРАИНА БУДЕТ НАШЕЙ!
Отредактировано 29.11.2016 9:24 Мёртвый Даун . Предыдущая версия . Еще …
Отредактировано 29.11.2016 9:22 Мёртвый Даун . Предыдущая версия .
pci kernel
Re: Эмуляция PCI устройства
От: Stanislaw K СССР  
Дата: 29.11.16 10:40
Оценка:
Здравствуйте, Мёртвый Даун, Вы писали:


МД>P.S. Или всё таки отложить, и ждать вендора? (Тут вся фигня еще в том, что PM как бэ намекнул, что еще и вендор может смениться, и будет другая железка.)


Ждать.
Все проблемы от жадности и глупости
Re: Эмуляция PCI устройства
От: aik Австралия  
Дата: 29.11.16 10:59
Оценка:
Здравствуйте, Мёртвый Даун, Вы писали:

МД>Вопрос: как сэмулировать PCI устройство? Ну т.е. что-то, что бы мне ответило. Поскольку в PCI Subsystem каждое устройство имеет свои таблицы идентификации: VendorID, DeviceID и прочий шлак.

МД>P.S. Или всё таки отложить, и ждать вендора? (Тут вся фигня еще в том, что PM как бэ намекнул, что еще и вендор может смениться, и будет другая железка.)

Ну ценность такого теста сомнительна, потому что ты будешь тестить что-то не совсем то, что будет на самом деле. Если б меня настолько прижало, я б девайс сэмулировал в QEMU, там примеров не так чтоб очень много, но есть — Intel E1000, XHCI, и еще пригоршня, но это, скорее, потому, что я больше ни черта не знаю.
Re: Эмуляция PCI устройства
От: velkin Земля  
Дата: 29.11.16 11:23
Оценка:
Здравствуйте, Мёртвый Даун, Вы писали:

МД>Вопрос: как сэмулировать PCI устройство? Ну т.е. что-то, что бы мне ответило.




МД>P.S. Или всё таки отложить, и ждать вендора?


С готовым устройством не знаешь как разобраться, когда каждая новая версия прошивки меняется, а тут ещё вендор другой.

МД>Тут вся фигня еще в том, что PM как бэ намекнул, что еще и вендор может смениться, и будет другая железка.


А зачем он намекнул? Программист всё равно ничего сделать дальше не сможет. А если это говноконтора, то ему ещё поставят в вину, что он ничего не делал. Как говорится, намекай, не намекай, всё равно получишь гуй.
Re: Эмуляция PCI устройства
От: K1RA  
Дата: 14.12.16 08:25
Оценка:
Добрый день.

Да, aik предложил правильное решение. Есть хорошая статья как сделать PCI устройства для QEMU — http://tic-le-polard.blogspot.ru/2015/01/emulate-pci-device-with-qemu.html
Но Ваш конкретный случай — это все таки Ваш случай. Возможно вопрос лежит в административно-управленческой области, а не в технической.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.