Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Раcпределение IRQ на PCI слоте
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > ISA/PCI/PCI-X/PCI Express
EgorkaT
Всем доброго времени суток!

У меня малость нестандартный вопрос... про распределение IRQ на PCI слоте.
Имеется:
1. Материнская плата Aaeon PCM-6898 - http://www.aaeon.com/PD_Products_Detail_1C..._RU_UTF-8.html#
2. PCI/ISA riser card JM2-RC202 - http://jinmaon.com/product/JM2-RC202.htm
3. MiniPCI to PCI adaptercard - http://www.mini-box.com/s.nl/it.A/id.370/.f
4. MiniPCI WiFi + Bluetooth MS6855 card - http://reviews.cnet.com/adapters-nics/msi-...7-31641104.html

Все это собрано, заводится и частично работает под линуксом. Проблема в том, что вайфай карточка не получает отдельного прерывания и потому не хочет работать, хотя и видится на шине.
Насколько я смог разобраться, она пытается делить одно прерывание с AGP видеокартой, интегрированной в чипсет. То есть, через все переходники на нее заведен сигнал PCI INT A.

Можно ли перемычкой или другим, более культурным способом, выделить вайфай карте отдельную линию прерывания?

Спасибо за возможную помощь!
Demeny
Цитата(EgorkaT @ Dec 14 2011, 02:11) *
Можно ли перемычкой или другим, более культурным способом, выделить вайфай карте отдельную линию прерывания?

Отдельную не нужно - PCI устройства вполне могут разделять между собой одну линию прерывания IRQ (в отличие от ISA устройств).
В вашем случае проблема весьма типична - линия прерывания от PCI устройства (INTA#) не проложена правильным образом до процессора (то бишь контроллера прерываний), поэтому PCI-прерывание INT не приводит к процессорному прерыванию IRQ.
Этим должен заниматься BIOS, поскольку только разработчик BIOS знает схемотехнику платы, как и где включить нужные ключи, чтобы прерывания от всех устройств доходили до процессора (IRQ Routing).
Поэтому решением может быть либо обновление BIOS, контактирование с производителем мат. платы на предмет исправления ошибки, либо может иногда помочь переставление PCI-карты в соседний слот.
vitan
Цитата(Demeny @ Dec 14 2011, 10:38) *
В вашем случае проблема весьма типична - линия прерывания от PCI устройства (INTA#) не проложена правильным образом до процессора (то бишь контроллера прерываний), поэтому PCI-прерывание INT не приводит к процессорному прерыванию IRQ.

Интересно... А что, реально бывают такие платы? Я пока такого еще не встречал...
В этом случае самый верный способ имхо это припаять проводочек от слота к нужной ноге чипсета, а потом вручную выставить настройки в биосе.
EgorkaT
Цитата(Demeny @ Dec 14 2011, 08:38) *
Отдельную не нужно - PCI устройства вполне могут разделять между собой одну линию прерывания IRQ (в отличие от ISA устройств).
В вашем случае проблема весьма типична - линия прерывания от PCI устройства (INTA#) не проложена правильным образом до процессора (то бишь контроллера прерываний), поэтому PCI-прерывание INT не приводит к процессорному прерыванию IRQ.
Этим должен заниматься BIOS, поскольку только разработчик BIOS знает схемотехнику платы, как и где включить нужные ключи, чтобы прерывания от всех устройств доходили до процессора (IRQ Routing).
Поэтому решением может быть либо обновление BIOS, контактирование с производителем мат. платы на предмет исправления ошибки, либо может иногда помочь переставление PCI-карты в соседний слот.

Материнская плата весьма специфичная, ориентированная на промышленное использование - есть pc/104 разъем, и прочее. Разработчик железа в Израиле, думаю пошлет меня с вопросами. Биос прошит последний доступный, а совмещенный pci/isa райзер не имеет еще одного pci слота.
Я подумал поменять местами сигналы INT A и INT B в райзере, может это помочь?
Пока что поставлю на этот комп ХР для проверки работоспособности железа - отпишу результат.
Demeny
Цитата(vitan @ Dec 14 2011, 11:11) *
Интересно... А что, реально бывают такие платы? Я пока такого еще не встречал...
В этом случае самый верный способ имхо это припаять проводочек от слота к нужной ноге чипсета, а потом вручную выставить настройки в биосе.

Я, наверное, неправильно выразился. Дело не в том, что не проложена физическая медная дорожка в топологии платы при трассировке.
Современные мат. платы имеют программный механизм, позволяющий распределить PCI линии прерывания (коих 4 - #INTA, B, C, D) на выделенные под PCI линии IRQ процессора. Обычно в BIOS промышленных плат есть возможность раскидать прерывания между PCI и legacy ISA устройствами.
Этот механизм называется IRQ Routing. Реализация этого механизма этот жёстко привязана к схемотехнике платы, поскольку только разработчик платы знает, где и как у него разведено, и что покрутить в каком порту, чтобы переразвести прерывания. Поэтому только из BIOS можно это сделать, ибо после прогрузки ОС поздно рулить прерываниями...
Но саму таблицу роутинга можно посмотреть типичными для каждой ОС средствами (PCI Scope для Windows, show_pci -vvv для QNX, lspci для Linux).
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.