здравствуйте, мб. кто-нибудь подскажет что влияет на определение матерью pci платы. пытаюсь подключить pci устройство. idsel на нем замкнул с линией ad22 (на самом чипе поднял ногу и сделал перемычку с ad22). но он не видится платой на которой провожу экперимент. на другой плате опознается нормально. смотрю через список устройств pci шины. если idsel оставить по-умолчанию, т.е. в зависимости от слота, устройство видится нормально везде, но не работает как надо. хотелось бы узнать, что мешает опознанию устройства, м.б. какие-то регистры посмотреть?
матери обе на 865 чипе. явно что-то с инициализацией связано. может одна из них не опрашивает ad22?
Перенес в Песочницу.
maco
инициализировал ICH5, чтобы устройство было отключено (ICH5 позволяет
программно отключать дешифрацию устройств и вообще жизнь коварна).
Если бит установлен, обнулите его. Но если на плате уже есть устройство,
использующее AD22 то будет конфликт.
А по ситуации когда опознается но не работает - если устройство использует
прерывание, то принудительно изменяя этому устройству адрес в
конфигурационном пространстве (переключая IDSEL) мы нарушаем работу
процедур BIOS, отвечающих за установление соответствия между устройствами
и линиями IRQ (IRQ Routing).
Bus/Device/Function и посмотрите сигналы осциллографом.
Обращение лучше напрямую через порты 0CF8h/0CFCh а не PCIBIOS,
чтобы меньше вспомогательных операций и картина на осциллографе была четче.
По той же причине желательно запретить все асинхронные события, запретив
прерывания (CLI). Конечно из DOS или UEFI а не из Windows.
Про UEFI я погорячился, если плата поколения 865.