реклама на сайте
подробности

 
 
> Прерывания в Linux, Система не реагирует на прерывание
Docent86
сообщение Sep 18 2012, 04:00
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 2-03-10
Из: С.-Пб.
Пользователь №: 55 772



Железо:
Одноплатный комп + плата расширения.
Софт:
ubuntu 8.04, ядро 2.6.24-26-generic
исходники модуля для платы расширения
Суть:
Плата расширения сидит на РС-104 шине (аналог ISA), имеет встроенную память с которой и работаем, вырабатывает прерывания. Прерывания на плате задаются перемычками, соответствующие прерывания включаем в Биосе и при инициализации модуля. Прерывания выбираются согласно манулу на ОПК для исключения конфликтов. Базовый адрес тоже на перемычках и т.д. Чтение/запись памяти платы на отлично, плата работает и вырабатывает прерывания которые можно наблюдать физически (на осцилографе длительность прерывания 500мс). далее - смотрим /proc/interrupts видим наше устройство и счетчик прерываний = 0. Система не видит\не реагирует на поступающее прерывание. --> обработчик прерываний соответственно не запускается.
Танцы с бубном в биосе результатов не дали. Где искать что делать? [size="3"][/size]
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Docent86
сообщение Sep 18 2012, 06:26
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 2-03-10
Из: С.-Пб.
Пользователь №: 55 772



Плата не ПнП, в комплекте с платой идут исходники модуля
в /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, запускали ядро с параметрами не помогает

Сообщение отредактировал Docent86 - Sep 18 2012, 09:50
Go to the top of the page
 
+Quote Post
gosha
сообщение Sep 19 2012, 06:26
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 216
Регистрация: 15-06-04
Из: Менделеево
Пользователь №: 30



QUOTE (Docent86 @ Sep 18 2012, 10:26) *
Плата не ПнП, в комплекте с платой идут исходники модуля
в /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.



Go to the top of the page
 
+Quote Post
Docent86
сообщение Sep 19 2012, 09:26
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 2-03-10
Из: С.-Пб.
Пользователь №: 55 772



Цитата(gosha @ Sep 19 2012, 10:26) *
Шина 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]

Сообщение отредактировал Docent86 - Sep 19 2012, 12:17
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 02:38
Рейтинг@Mail.ru


Страница сгенерированна за 0.0139 секунд с 7
ELECTRONIX ©2004-2016