Sdileni IRQ

Petr Her~man Petr.Herman na lfmotol.cuni.cz
Středa Listopad 27 14:46:37 CET 1996


> > > > Budte zdravi! Mam dotaz - lze pod Linuxem prinutit seriovy porty ke
> > > > sdileni IRQ? HW otazku (diody a odpor) na mysli nemam, jde mi o to,
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> > > > jestli se s tim vyrovna system a pokud jo, jak mu to sdelit. Zkousel
> > > > jsem to na portech na MB, nastaveni obou na jeden IRQ nedopadlo
> > > > dobre. Vi o teto problematice nekdo neco? Jde mi vyhradne o seriove
> > > > porty.

> > > v nejakem prastarem Bajtu bylo neco o tom,ze na PC sdilet IRQ nejde,ale
                                                                            
Kde to bylo? Blbost.

>  Nekde jsem cetl o tom ze sdileni funguje jen v ramci jedna karty pomoci
> najekeho triku.

Blbost.

Ackoli puvodni pisatel zduraznil, ze se mu nejedna o HW ale o Linux,
toci se odpovedi kolem HW. Zrejme proto, ze kolem toho bloudi mnozstvi
nejruznejsich mytu a kouzel (nekde, kdysi, nekdo rikal, pry, atd.).

Tak k tem mytum pridam nejake svoje, kterym verim - jeste z doby, kdy jsem
se zabyval HW. Na puvodni otazku (jak je to pod Linuxem) neodpovidam,
pouze rikam, ze zelezo to skutecne v zasade umoznuje a jde o to zaridit
spravnou obsluhu systemem.

Takze HW a BIOS:

1) Ano, puvodni predstava IBM, kdyz navrhovali PC a XT sbernici byla,
ze libovolne IRQ bude mozne sdilet. Tj. otevrene kolektory na sbernici
a podpora na kazde karte, ktera IRQ vyuziva (global rearm):
Nejaka karta zatahne za sbernici, tim da najevo radici preruseni,
ze "nekdo" na drate zada preruseni, radic (az to bude mozne) akceptuje
preruseni, preda rizeni na prerusovaci vektor, na kterem jsou 
zretezeny obsluhy preruseni pro sdilene IRQ, kazda obsluha postupne
zjistuje, zda interrupt zpusobila ta "jeji" karta, pokud ano,
co nejrychleji obslouzi to nejnutnejsi (to mene nutne muze nechat
napotom, melo by to byt jen par instrukci, protoze v teto dobe jsou
zakazany vsechna ostatni preruseni na tom IRQ), hlavne da najevo
karte, ze jeji preruseni bylo akceptovano, da prikaz ke global
rearm (tim padem karta uvolni IRQ pro dalsi preruseni na sdilenem
IRQ) a odmaskuje preruseni od prislusneho IRQ pro dalsi karty.

2) V praxi doslo k tomu, ze tato idea byla dodrzovana sice samotnymi
sbernicemi IBM pri vyrobe karet, postupem casu mene uz jinymi
vyrobci karet. Sam mam historicke originalni IBM A/D a D/A
prevodniky, kde je v dokumentaci uvedeno i zapojeni techto
logickych obvodu. :-) Takze: sbernice za to nemuze, ale pokud
si vyrobce karty svou situaci zjednodusil a nevybavil svou
kartu prislusnymi obvody pro sdileni (global rearm), maji ostatni
karty smulu. Coz se postupem doby stalo pravidlem :-(

3) Tato "dobra tradice IBM" se tradicne zachovavala dlouhou dobu
(a zrejme jeste zachovava) prave u COM portu, ktere tudiz toto
sdileni umoznuji. Takze COM porty jsou svetlou vyjimkou, kde by
melo jit IRQ sdilet (a take k tomu jak vime casto dochazi, zpravidla
-pod MS-DOSem - jsou IRQ3 a IRQ4 sdileny - na stridacku - COM1,
COM2, COM3, COM4, ... atd.)

4) To, ze pod MS-DOSem byly problemy se sdilenim IRQ u ruznych COM
portu v pripade mysi a modemu nebylo zpusobeno kartami, ale obsluznym
SW.   

Takze ted uz doufam, ze ted uz nekdo konecne odpovi na to, jak s timhle
zachazi Linuxi jadro.

>   Martin Kormunda                       | EMAIL: kormund3 na students.zcu.cz

Petr Herman


Další informace o konferenci Linux