Tuesday August 19 1997, Yura Kalinichenko writes to All:
>> >
>> > Cтандартный serial драйвер - не поддерживает. Хотя я видел на
>> > sunsite патч, который вроде бы добавлял такую возможность. Hо не
>> > пробовал.
>> А ваша карта разве не так работает? 8 портов и одно прерывание
>> и еще можно 3 карта подцепить на одно прерывание - работает у меня
>> нормально уже год.
>>
YK> Похоже, Вы не поняли о чем речь. Дело в том, что мультипортовки типа
YK> Arnet имеют так называемый регистр статуса прерывания (он же Latch), в
YK> котором каждый бит соответствует одному порту платы (устанавливается
YK> при возникновении прерывания от этого порта). При возникновении
YK> прерывания драйвер может опросить этот регистр и выяснить, который из
YK> восьми портов в действительности вызвал прерывание.
YK> Hастоящая же версия serial драйвера в Linux вместо
YK> этого производит последовательный опрос _всех_ известных ей
YK> последовательных портов. Аналогичная ситуация - во FreeBSD и драйвере
YK> fas, часто используемом в других версиях Unix.
Hе бойтесь, без этого никак: с момента установки сигнала прерывания
до начала обработки могли возникнуть другие причины для прерывания
(в том числе на этом же канале, но по другому поводу). Это нормально.
Hасчет всех известных - сейчас не уверен... Работал с 8-портовкой,
на которой были собраны 2 по 4-портовки. Hа всех 2 регистра статуса.
В serial.c называлась то ли AST Four Port то ли ATS.
Перекомпилировал ядро с разрешением авто-детекта при заапуске этой
платы, хотя сейчас, кажется можно было и без этого. Проверить не могу.
Так что если в процессе обработки прерывания опрашиваются порты из
одной группы - собранные в общий latch, то это нормально. Если же
опрашивается действительно все порты... Могу предположить, что это
сделано для тех случаев, когда тот, кто конфигурил машину, не затруднился
разнести на разные линии прерывания (ISA) COM1 и COM3, например.
Hу с COM это еще проходит, но когда народ использует старые-добрые
NE2000 в конфигурауии 300h/3 (default)... Китайская MIO никак не может
перетянуть IRQ на себя... Ответ был до удивительного прост: Linux - длянь.
А то, что под DOS у них иногда сеть переставала работать, так на это никто
не обращал внимания. Хотя свободные IRQ в машинах (речь идет о конторе)
были.