[linux-ileri] Re: COM Port Ayarlari

---------

From: Serdar KÖYLÜ (serdarkoylu@fisek.com.tr)
Date: Thu 20 Mar 2003 - 13:22:21 EET

  • Next message: Serdar KÖYLÜ: "[linux-ileri] Re: VideoLan"

    Selamlar..

    PS/2 Fare, IRQ12 uzerindedir. Seri fare ise ttyS* lardan hanginde olduguna gore IRQ4 ve IRQ3 uzerinde olabilir. Bu portlar XT-PIC bolgesi icinde kalir ve PCI IRQ router uzerinde kullanilmazlar. Diger yandan COM portu gibi bir tabir DOS vs. icin gecerlidir. ttyS*'lar ile COM portlari farkli seylerdir. Eski cua* cihazlari biraz COM portlari gibi davranir ama ttyS*'lar bir hayli farklidir.

    Elbette bunlarin ikiside fiziksel donanim olarak degil cihaza erisim teknigi olarak farkli..

    Gelelim diger soruna. APIC veya PIC kullanmaniza bagli olmadan, PCI IRQ yonetim devresi IRQ cakismasi denen bir sorunun olusmasini engeller. Yani PCI veriyolunda IRQ cakismasi yasamamaniz gerekiyor. Bunu aciklamak icin IRQ denen seye biraz kabaca bakmak gerekiyor. Donanimlar bir is yapar. Mesela klavyeden tusa basilinca hangi tusa basildigini sisteme bildirir. Burada iki durum sozkonusudur. Periyodik olarak klavyeye bakarsiniz. Mesela saniyede 100 kere. Tusa basilmissa islersiniz. Ama bu durumda CPU boyuna cevre birimlerini izlemekle ugrasir. Diger yontemde klavye (veya diger cevre birimi) CPU'ya bir sinyal yollayarak onun basilan tusu sisteme transfer etmesi gerektigini belirtir. Bu yontemde siz tus kodunu isleyecek kodu yazarsiniz. Bu kodu IRQ Handler denen sekilde kurarsiniz. Tuslara basildiginda kodunuz otomatikman devreye girer. Boylece sistemin verimi artar. IRQ cakismasi denen olay su sekilde yasanirdi. Ornegin Ses karti IRQ9, TV Karti IRQ 9. Bu durumda ses karti orneg
     in arabellegindeki sesleri calmayi bitirince, TV Karti da bir cerceveyi ekrana cizince IRQ9 olarak belirlenen kodu cagiracak. Simdi bu kod hangisi olacak ? Ses kartina alakali olanmi ? TV kartinin duzenegi mi ? Iste IRQ cakismasi bu demektir. Halbuki PCI veriyolu IRQ'yu ureten slotu taniyabilir. Her durumda IRQ'lar dogrudan ilgili handlere degil, global bir handlere iletilir. Bu handler cesitli yontemlerle dogru kodu calistirabilir. Yaygin kullanilan yontem, kuyruklamadir. Bu durumda once ses karti handleri devreye girer. Ses kartina bakar, eger IRQ'yu ureten oysa, gerekeni yapar ve bir sonraki handlere kontrolu devrederken, ses karti IRQ uretmemisse dogrudan bir sonraki handlere yonlenir. Ornegimizde bu TV kartidir. Bu Linux'ta her daim boyle olur (tamamen ayni degil ama model olarak buna benzetilebilir). Cunku Linux IRQ yoneticisi son derece akilli olmak zorundadir. SMP sistemlerde her IRQ'yu farkli CPU'lar isleyebilir, islemelidir. Bu nedenle IRQ denetimi tamamen bu koda
      bagli olmali, suruculerin insiyatifinde olmamalidir.

    Bu durumun neticesi olarak IRQ onceliklerini atama, IRQ paylasimi vs. Linux'ta guzelce yapilir. Fakat mesela Win98 bu kabiliyetten bir hayli yoksundur. Cunku IO/IRQ - APIC ile isi olmaz. IRQ cakismasi problemi de akillara bu yuzden gelmektedir. Ama preemptive bile olamayan bir OS bu. Ama sisteminiz Linux ise, boyle bir problemi, en azindan PCI veriyolu ile asla yasamazsiniz. Linux icin Windows'un sorunlarini hic kaale almamalisiniz.

    Sonucta, fareniz IRQ12/3/4 birini kullanmak zorunda. Bunlarin hic biri PCI veriyoluna atanabilen kesmeler degil. Dahasi IRQ sorunu diye bir sorun yok artik. Yanlis iz uzerindesiniz.

    Bus'lar vs. boyle bir cirpida pat diye hallolan seyler degil. Bilhassa ses kartlari icin. Timing, kutuk besleme, relocation, busmaster DMA gibi bir ton sey var. Bilhassa en cok sorun cikaracak olan BusMaster konusudur. Farenin hareket edemiyor olmasi su sebepten kaynaklanabilir. Ses kartinin driveri veriyolunu bloke ettikten sonra transfer zamanlamasini garantilemek icin IRQ'larin islenmesini durdurabilir. Bu esnada basak Busmaster cihazlar isin icine girip donguyu basa zorlayabilir. Sonucta bu surec boyunca IRQ'lar islenemeyebilir. Hatta sistem tamamen BUSY olabilir. Yani baska hic bir is yapilamayabilir. Linux XAA kullaniyor olsaniz bile fareyi dogrudan IRQ handlerine baglamaz. Hareketler kuyruklanir ama Fare pointer isleyiciye derhal sunulmaz.

    Tavsiyem BusMaster duzenlemelerine bir bakmaniz. Kartin yerini degistirmek IRQ hattini (A,B,C,D) degistirecegi gibi BusMaster kontrol hatlarinida degistirir. Dahasi, ornegin Ayni slot ayni anda USB veya IDE kontrolcusune de bagli olabilir. KArtin yerini degistirmek bu sorunlari kolayca asmanizi saglar.

    Diger yandan APIC ve Bridge'ler uzerinde bazi duzenlemeler yapabilirsiniz. Fakat bu oyle pat diye oluverecek sey degil. Ama burasi Linux-ileri listesi. Bizde buraya uzun uzun yazmak icin geldik. Demekki, surada bir omuz atip bridge duzenlemeler icin bir takim patchlar cikarabiliriz. Sanirim hazir patchlar vs. baslangic listesinin kapsaminda kaliyor..

    Saygi ve sevgiler..

    On Sat, 15 Mar 2003 01:34:59 -0800 (PST)
    hakann <eymien@yahoo.com> wrote:

    > Merhaba
    > Mandrake 9.0 kullaniyorum. Makinemde bir PCI modem,
    > bir PCI Multimedia audio controller var ve ikisi de
    > IRQ9'u kullaniyor. Bu da ses ve mouse kontrolunun
    > bazen cakilmasina sebep oluyor.
    > COM portlari sorgulayip (hangi portu hangi donanimin
    > kullandigini) tekrar duzenleyebilecegim bir tool
    > ariyorum. Boyle bir paket var mi?
    >


  • Next message: Serdar KÖYLÜ: "[linux-ileri] Re: VideoLan"

    ---------

    Bu arsiv hypermail 2.1.6 tarafindan uretilmistir.