Page 2 of 2

Re: IRQ's unmasking problem

Posted: Fri Aug 08, 2008 11:56 am
by Serge
Тайм аута нет. Устройство не снимет запрос, пока он не обработан.
Но я не думаю что это будет большой проблемой на APIC. БИОС расшаривает однотипные устройства типа USB. Если остаётся небработанное прерывание надо замаскировать линию. Конечно устройство перестанет работать но система не упадёт.

Re: IRQ's unmasking problem

Posted: Sun Oct 12, 2008 1:48 pm
by Gluk
это все прекрасно.. но когда данная проблема решится? Serge, в твоей сборке это будет (или уже) сделано?..

Re: IRQ's unmasking problem

Posted: Sun Oct 12, 2008 3:32 pm
by Serge
Не знаю когда решится. Моя сборка будет не скоро. Для себя каждый может решить проблему сам.
Найти в kernel.asm

Code: Select all

        cli                          ;guarantee forbidance of interrupts.
        mov   al,0                   ; unmask all irq's
        out   0xA1,al
        out   0x21,al
и поставить необходимую маску.
Проблема в том что одинакового для всех набора устройств уже нет. COM LPT FDC могут отсутствовать или быть отключены и BIOS назначит их линии другми устройствам. Поэтому чтобы сделать маску прерываний надо определить все занятые линии и кем они заняты.

Re: IRQ's unmasking problem

Posted: Thu Oct 16, 2008 1:24 am
by Pavia
В интернете видел описание PCI в линуксе. Там написанно что идет маскирование по тайм ауту в случии непрерывных прерываний. Есть два типа прерываний ISA и PCI. C PCI все просто 4 линии определить/назначить не сложно через PCI BIOS это для PIC. Для APIC они фиксированны 16-19, а 20-23 - резерв или дополнительные 4 линии. Часть PCI Устройств поддерживают переназначение прерывания через MSI.
ISA и PCI прерывания не могут быть смешанны. ISA прерывания стандартны. Но часть могут и отсутствовать.
Собственно предлогаю добавить строчку которая закидывает PCI линии на свободные места 9 10 11 . На одном два не денишься.
Выяснить ISA прерывания можно через PnP BIOS.

А вообще APIC это просто. Его только инициализировать вернее и инициализировать не надо биос настраивает только включить нужный режим и все а это не трудно. Учесть только что прерывания имеют другой порядок. :roll:

Re: IRQ's unmasking problem

Posted: Thu Oct 16, 2008 2:46 am
by Serge
А как пронумеровать устройства в системе ?

Re: IRQ's unmasking problem

Posted: Thu Oct 16, 2008 9:36 am
by Pavia
Пересмотрел свои записи. Можно поступить проще и правельнее. Используя PCI BIOS(руки не дошли до перевода) или через структуру
PCI IRQ Routing Table Specification(ее я перевел) можно найти все IRQ которые отведены под PCI. Вот их и замаскировать, а драйвера устройств пусть размаскируют. Вернее этим должен заниматься мэнеджер PCI, но по требованию драйвера.
А как пронумеровать устройства в системе ?
Все чтоли?
В любом случии я склонен к идеии того что надо писать драйвер под чипсет и один универсальный. Распозновать чипсет и биос.
Тут три источника для нумирации PCI пройтись по всем устройствам и PnP BIOS(это для ISA устройств) еще в довесок ACPI.
Понимаю что ACPI не первостипенная задача его можно опустить.

Re: IRQ's unmasking problem

Posted: Thu Oct 16, 2008 3:13 pm
by Serge
А как нумеровать через PnP BIOS ?

Мне нравится идея замаскировать всё. Для com и ps/2 мышей есть нормальные драйверы. FDC наверное определяется через порты. Таймер, клава, IDE известны. Остальное нафиг.

Но сделать определитель всего оборудования полезно.

Re: IRQ's unmasking problem

Posted: Thu Oct 16, 2008 8:26 pm
by Pavia
Вот пример перечесления всех PnP устройств. Вывод рессурсов я не делал руки не дошли.Расшифровка PnP кодов в файле devids.txt
Нужна две спецификации PnP BIOS и PnP ISA. В архиве также мои записи по программированию железа:
PnP, DMI, PCI, SMBus, HDD, PIC и APIC(Local и I/O).

http://homepage0.icehard.net/files/hard ... helezo.zip

Re: IRQ's unmasking problem

Posted: Thu Oct 16, 2008 8:32 pm
by Serge
Пишет "Not found"

Re: IRQ's unmasking problem

Posted: Thu Oct 16, 2008 8:38 pm
by Leency
У меня качает. Попробуй ещё раз).

Re: IRQ's unmasking problem

Posted: Thu Oct 16, 2008 8:39 pm
by Pavia
Только что перезалил. Критика приветствуется.

Re: IRQ's unmasking problem

Posted: Fri Oct 17, 2008 3:49 pm
by Serge
Спасибо.