Автор: anthony_k , 30 сентября 2014
здравствуйте, мб. кто-нибудь подскажет что влияет на определение матерью pci платы. пытаюсь подключить pci устройство. idsel на нем замкнул с линией ad22 (на самом чипе поднял ногу и сделал перемычку с ad22). но он не видится платой на которой провожу экперимент. на другой плате опознается нормально. смотрю через список устройств pci шины. если idsel оставить по-умолчанию, т.е. в зависимости от слота, устройство видится нормально везде, но не работает как надо. хотелось бы узнать, что мешает опознанию устройства, м.б. какие-то регистры посмотреть?

матери обе на 865 чипе. явно что-то с инициализацией связано. может одна из них не опрашивает ad22?

Перенес в Песочницу.
maco
Содержимое данного поля является приватным и не предназначено для показа.

BBCode

  • HTML-теги не обрабатываются и показываются как обычный текст
  • You may use the following BBCode tags:
    • [align]
    • [b]
    • [code]
    • [color]
    • [font]
    • [hr]
    • [i]
    • [img]
    • [list]
    • [quote]
    • [s]
    • [size]
    • [spoiler]
    • [sub]
    • [sup]
    • [table]
    • [u]
    • [url]
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.

anthony_k

11 лет 5 месяцев назад

никто не мешает. если устройство опознано. а если мать не видит мост с idsel на ad22, то ничего не сделашь. весь вопрос в первом посте, почему мать может не видеть устройство?

Случайный_Гость (не проверено)

11 лет 5 месяцев назад

Посмотрите регистр GEN_CTL в нем бит 24 = Hide ISA Bridge. Возможно BIOS так
инициализировал ICH5, чтобы устройство было отключено (ICH5 позволяет
программно отключать дешифрацию устройств и вообще жизнь коварна).
Если бит установлен, обнулите его. Но если на плате уже есть устройство,
использующее AD22 то будет конфликт.
А по ситуации когда опознается но не работает - если устройство использует
прерывание, то принудительно изменяя этому устройству адрес в
конфигурационном пространстве (переключая IDSEL) мы нарушаем работу
процедур BIOS, отвечающих за установление соответствия между устройствами
и линиями IRQ (IRQ Routing).

anthony_k

11 лет 5 месяцев назад

ну вообще надо 1 ставить в 24 бит чтобы скрыть устройство. у меня там 0 и изменение статуса никак не влияет на появление устройства в списке. на другой матери это работает без проблем. я бы тоже подумал что какой-то конфликт с другим устройством на ad22, но есть схема и эта линия свободна. она вообще редко используется, в основном как раз для таких мостов. мост сам по себе не использует прерывания, он их получает в зависимости от isa плат по serirq. другую плату на которой мост опознается пока не могу использовать из-за того что не знаю откуда брать пару req a/b gnt a/b, схемы на нее нет

Случайный_Гость (не проверено)

11 лет 5 месяцев назад

Сделайте программный цикл с постоянным обращением по заданному адресу
Bus/Device/Function и посмотрите сигналы осциллографом.
Обращение лучше напрямую через порты 0CF8h/0CFCh а не PCIBIOS,
чтобы меньше вспомогательных операций и картина на осциллографе была четче.
По той же причине желательно запретить все асинхронные события, запретив
прерывания (CLI). Конечно из DOS или UEFI а не из Windows.
Про UEFI я погорячился, если плата поколения 865.