[email protected] 0 18 сентября, 2012 Опубликовано 18 сентября, 2012 · Жалоба Железо: Одноплатный комп + плата расширения. Софт: ubuntu 8.04, ядро 2.6.24-26-generic исходники модуля для платы расширения Суть: Плата расширения сидит на РС-104 шине (аналог ISA), имеет встроенную память с которой и работаем, вырабатывает прерывания. Прерывания на плате задаются перемычками, соответствующие прерывания включаем в Биосе и при инициализации модуля. Прерывания выбираются согласно манулу на ОПК для исключения конфликтов. Базовый адрес тоже на перемычках и т.д. Чтение/запись памяти платы на отлично, плата работает и вырабатывает прерывания которые можно наблюдать физически (на осцилографе длительность прерывания 500мс). далее - смотрим /proc/interrupts видим наше устройство и счетчик прерываний = 0. Система не видит\не реагирует на поступающее прерывание. --> обработчик прерываний соответственно не запускается. Танцы с бубном в биосе результатов не дали. Где искать что делать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gosha 0 18 сентября, 2012 Опубликовано 18 сентября, 2012 · Жалоба Железо: Одноплатный комп + плата расширения. Софт: ubuntu 8.04, ядро 2.6.24-26-generic исходники модуля для платы расширения Суть: Плата расширения сидит на РС-104 шине (аналог ISA), имеет встроенную память с которой и работаем, вырабатывает прерывания. Прерывания на плате задаются перемычками, соответствующие прерывания включаем в Биосе и при инициализации модуля. Прерывания выбираются согласно манулу на ОПК для исключения конфликтов. Базовый адрес тоже на перемычках и т.д. Чтение/запись памяти платы на отлично, плата работает и вырабатывает прерывания которые можно наблюдать физически (на осцилографе длительность прерывания 500мс). далее - смотрим /proc/interrupts видим наше устройство и счетчик прерываний = 0. Система не видит\не реагирует на поступающее прерывание. --> обработчик прерываний соответственно не запускается. Танцы с бубном в биосе результатов не дали. Где искать что делать? Linux пере-инициализирует контроллер прерываний при загрузке. У Вас PnP PC-104 плата? Linux ее находит? Попробуйте параметры загрузки ядра pci=biosirq /proc/bus/isapnp /proc/bus/eisa dmesg > log Либо обработчик завесился не на то прерывание. Другие драйвера используют это перывание? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
[email protected] 0 18 сентября, 2012 Опубликовано 18 сентября, 2012 (изменено) · Жалоба Плата не ПнП, в комплекте с платой идут исходники модуля в /proc/bus/ только input, pci, usb в dmesg три записи о модуле : no version for "struct_modules" found: kernel tainted module license 'uncpecified' taints kernel registered device.. никто другой прерывание не использует, прерывание назначается при загрузке insmod'ом с параметрами isapnp: No Plug & Play devices found Хотя сама плата работает - в ее память можно записать и считать данные, плата понимает команды управления и вырабатывает прерывание по результатам работы!!! плата занимает два прерывания назначаемые параметрами при инициализации модуля, в /proc/interrupts эти два прерывания числятся под соотв номерами... но только числятся. значения = 0. в /dev/ устройство тоже есть. В биосе ОПК пробовали отключать ACPI, запускали ядро с параметрами не помогает Изменено 18 сентября, 2012 пользователем Docent86 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gosha 0 19 сентября, 2012 Опубликовано 19 сентября, 2012 · Жалоба Плата не ПнП, в комплекте с платой идут исходники модуля в /proc/bus/ только input, pci, usb в dmesg три записи о модуле : no version for "struct_modules" found: kernel tainted module license 'uncpecified' taints kernel registered device.. никто другой прерывание не использует, прерывание назначается при загрузке insmod'ом с параметрами isapnp: No Plug & Play devices found Хотя сама плата работает - в ее память можно записать и считать данные, плата понимает команды управления и вырабатывает прерывание по результатам работы!!! плата занимает два прерывания назначаемые параметрами при инициализации модуля, в /proc/interrupts эти два прерывания числятся под соотв номерами... но только числятся. значения = 0. в /dev/ устройство тоже есть. В биосе ОПК пробовали отключать ACPI, запускали ядро с параметрами не помогает Шина PCI или Express ? Linux при старте может запрещать роутинг прерываний в isa-pci bridge, если не находит на ISA плат. Это регистры pci-isa bridge. Или irq isa роутятся не так, как мы думаем? Я бы, для начала, установил 4 любые карточки во все слоты PCI. Определил бы их прерывания(/proc/interrupt) Выгрузил бы драйвера карточек. И последовательно завесился драйвером от PC-104 на их IRQ. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
[email protected] 0 19 сентября, 2012 Опубликовано 19 сентября, 2012 (изменено) · Жалоба Шина PCI или Express ? Linux при старте может запрещать роутинг прерываний в isa-pci bridge, если не находит на ISA плат. Это регистры pci-isa bridge. Или irq isa роутятся не так, как мы думаем? Я бы, для начала, установил 4 любые карточки во все слоты PCI. Определил бы их прерывания(/proc/interrupt) Выгрузил бы драйвера карточек. И последовательно завесился драйвером от PC-104 на их IRQ. Шина PC-104 - это такой аналог ISA шины при котором устройства ставятся одно на другое сверху третье, поэтому слот только один, используется на промышленных одноплатных компьютерах (ОПК). Плата не ПнП и ИРКю назначаются ручками при инициализации драйвера - insmod с параметрами, и на плате джамперами соотв. IRQ выбирается в соответствии с мануалом на ОПК в котором указано какие ИРКю выделены для PC-104 шины. Если IRQ выбрать не из списка модуль(драйвер) не запуститься всвязи с тем что IRQ уже используется. При загрузке ядра идет поиск ISA PnP устройств и естественно не находит т.к. не ПнП плата. Да скорее всего IRQ isa как-то роутятся непонятно. Как разрешить роутинг isa-pci? P.S. - lspci: 00:01.0 PCI bridge: VIA Technologies, Inc. VT8605 [ProSavage PM133] 00:07.0 ISA bridge: VIA Technologies, Inc. VT82C686 [PM133 AGP] Изменено 19 сентября, 2012 пользователем Docent86 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
[email protected] 0 19 сентября, 2012 Опубликовано 19 сентября, 2012 · Жалоба Наткнулся на форум по QNX - там ребята с этой же платой работают и у них точно такая же проблема. Под "окнами" и ДОСом плата работает нормально, в КуНиксе ошибка по прерываниям. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gosha 0 20 сентября, 2012 Опубликовано 20 сентября, 2012 · Жалоба Наткнулся на форум по QNX - там ребята с этой же платой работают и у них точно такая же проблема. Под "окнами" и ДОСом плата работает нормально, в КуНиксе ошибка по прерываниям. Все ISA прерывания через pci-isa bridge подключаются в прерывания PCI. Физичесики на шине их всего 4 провода: pci_irq_a, pci_irq_b, pci_irq_c, pci_irq_d Вставьте 4 карточки в 4 первых слота PCI и узнайте их прерывания. Не вытаскивайте пока карточек. Выгрузите их драйвера, чтобы не испортить распределение и маскирование irq в контроллере. И завесьте обработчик последовательным перебором на каждое из прерываний PCI. Не спорьте. ========================================================= Какое ISA прерывание в какую PCI_irq line (a.b.c.d) map-ятся? Какие номера irq соответсвуют pci_irq_a, pci_irq_b, pci_irq_c, pci_irq_d Содержимое регистров 0x60, 0x61, 0x62, 0x63 Pci-ISA bridge? http://www.openwatcom.org/index.php/PCI_Interrupt_Routing Убедитесь, что они правильные. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
[email protected] 0 20 сентября, 2012 Опубликовано 20 сентября, 2012 · Жалоба Вставьте 4 карточки в 4 первых слота PCI и узнайте их прерывания. СЛОТ ОДИН -> РС-104 ))) сегодня другую "материнку" принесли (производители разные), переставил CompactFlash на новую, установил испытуемую плату, включил все работает. Но в новой "материнке" в настройках Биоса если отключить ISA bridge subtractive decode (управление субтрактивным декодированием моста PCI-ISA) не только IRQ игнорируются, но и обмен данными. На старой "материнке" Биос "убогий" и в нем нет такой возможности как и многих других. Теперь основной вопрос можно перефразировать - "Как включить не через настройки Биоса ISA bridge subtractive decode" P.S. старая "материнка" - Octagon Systems XE-900 (USA), новая - Faswel CPC308-01(производятся в Росии) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
[email protected] 0 20 сентября, 2012 Опубликовано 20 сентября, 2012 · Жалоба Тему можно закрывать. Помогло отключение SMM (System Management Mode). ACPI на этот момент уже был отключен. На другом процессорном модуле это делается включением ISA bridge subtractive decode (управление субтрактивным декодированием моста PCI-ISA) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться