[an error occurred while processing this directive]
Вопрос не смертельный но дело принципа. Как правильно искать устройство на PCI шине?(+)
(«Телесистемы»: Конференция «Программируемые логические схемы и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено misyachniy 14 октября 2005 г. 13:17

Понадобилось считать с "чужой" карточки информацию записываемую драйвером в ее регистры.
Вытащил старый ассемблерный макрос, переписал под Delphi, и обнаружил что несколько отстал от жизни.
Вот макрос:
"data:=$80000000 or (bus shl 16) or ((dev and $1F) shl 11)
or ((func and 07) shl 8) or (reg and $0FC);"

Раньше(пару лет назад) на мой взгляд архитектура была стандартной и понятной.
Единичка в старшем бите говорила о том что идет обращение собственно к устройствам а не к мостам PCI/PCI.
Шина(bus) 0 - собственно основной мост CPU-PCI на котором сидели устройства(dev) с одной или несколькими функциями(func).

Шина 1 это AGP порт.

Написал программу сканирования шин от 0 до 16, не сканировать же 7FFF шин :-).

И получил вот такие результаты на плате i815:


Bus=00, Dev=00, Func=00, DiD/ViD=11308086
Bus=00, Dev=02, Func=00, DiD/ViD=11328086
Bus=00, Dev=1E, Func=00, DiD/ViD=244E8086
Bus=00, Dev=1F, Func=00, DiD/ViD=24408086
Bus=00, Dev=1F, Func=01, DiD/ViD=244B8086
Bus=00, Dev=1F, Func=02, DiD/ViD=24428086
Bus=00, Dev=1F, Func=04, DiD/ViD=24448086
Bus=00, Dev=1F, Func=05, DiD/ViD=24458086
Bus=01, Dev=00, Func=00, DiD/ViD=813910EC
Bus=01, Dev=00, Func=01, DiD/ViD=813910EC
Bus=01, Dev=00, Func=02, DiD/ViD=813910EC
Bus=01, Dev=00, Func=03, DiD/ViD=813910EC
Bus=01, Dev=00, Func=04, DiD/ViD=813910EC
Bus=01, Dev=00, Func=05, DiD/ViD=813910EC
Bus=01, Dev=00, Func=06, DiD/ViD=813910EC
Bus=01, Dev=00, Func=07, DiD/ViD=813910EC

Интересующая меня плата попала на шину 1 и не-корректно на мой взгляд откликается на смену номера функции.
Можно ли из этого построить правило:"Если DiD/ViD у функций 0 и 1 совпадают - то это одно устройство."?

И второй вопрос как корректно останавливать перебор шин?
Спасибо.



Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru