[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bsd-nomads:16073] Re: How change irq on 4.4R



おやすみなさい	二宮@お四国 です

Masahiro MURATA (村田全寛) <muse@ba2.so-net.ne.jp> は Thu, 29 Nov 2001
22:38:19 +0900 頃に
    Subject: [bsd-nomads:16068] How change irq on 4.4R
    Message-Id: <87667tvgs4.wl@bibross.muse.ba2.so-net.ne.jp>
        に於いて以下のようにおっしゃっていました。
※都合により手を加えさせていただく事が有ります。御了承下さいマセヽ...
村田> FreeBSD 4.4R の PCCard で割り当てる irq を変更する方法として
村田> 他に何があるでしょうか,という質問です。
村田> 
村田> (いまとなっては古い機種ですが)SONY VAIO505RX に Ethercard Laneed
村田> LD-10/100CD を入れて 3.3R+PAO で正常に使用していました。
村田> 
村田> そろそろ 4.4R にバージョンアップしようと思ったのですが,
村田> そうは簡単にいきません。カードを挿すと次のログのように
村田> 認識はするのですが,固まってしまいます。この状態でカードを
村田> 抜くと復帰することもありますが,固まったままになることも
村田> あります。
村田> 
村田> pccardd[102]: Card "Laneed"("LD-10/100CD") [Ethernet Card] [(null)] matched "Laneed" ("LD-10/100CD") [(null)] [(null)] 
村田> pccardd[102]: Using I/O addr 0x240, size 32 
村田> pccardd[102]: Setting config reg at offs 0x400 to 0x60, Reset time = 50 ms 
村田> pccardd[102]: Assigning I/O window 0, start 0x240, size 0x20 flags 0x5 
村田> pccardd[102]: Assign ed0, io 0x240-0x25f, mem 0x0, 0 bytes, irq 9, flags 80000 
村田> /kernel: ed1 at port 0x240-0x25f irq 9 slot 0 on pccard0
村田> /kernel: ed1: address 00:90:fe:02:ce:98, type Linksys (16 bit) 
村田> /kernel: lxtphy0: <LXT970 10/100 media interface> on miibus0
村田> /kernel: lxtphy0:  100baseFX, 100baseFX-FDX, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
村田> 
村田> どうも irq 9 に割り当てられているのが問題だろうと推測するの
村田> ですが,なかなか空いている irq 10 や irq 11 などに割り当て
村田> られません。
村田> 
村田> 4.0以降はPAOのignirqみたいなものがないようで,/etc/pccard.conf
村田> に次のように書いても,直接 /etc/default/pccard.conf を書き換え
村田> ても駄目です。
村田> irq 10 11
....
村田> さらには,pccarddを手動で次のように起動しても やはり irq 9 に割り当てら
村田> れてしまいます。

村田> $ pccardd -d -I -i 10 -i 11

基本的にはこのどちらでもで o.k. のはずですが

ただし

村田> ちなみに,起動メッセージは次のとおりです。
村田> 
村田> /kernel: FreeBSD 4.4-RELEASE #1: Thu Nov 29 21:07:37 JST 2001

村田> /kernel: Using $PIR table, 4 entries at 0xc00fdf80

村田> /kernel: pci_cfgintr_linked: linked (61) to hard-routed irq 9
村田> /kernel: pci_cfgintr: 0:10 INTA routed to irq 9
村田> /kernel: pcic0: <Ricoh RL5C475 PCI-CardBus Bridge> irq 9 at device 10.0 on pci0
村田> /kernel: pcic0: PCI Memory allocated: 0x44000000
村田> /kernel: pccard0: <PC Card bus (classic)> on pcic0

これ拝見すると pcic の irq が PCI routing で動作するようです。
これは 4.4-R から加わった新しい機能で、この PCI routing な
場合には pcic, pccard, pccard 下にぶら下がるデバイスのドライバが
PCI bus につながってるデバイスのように1つの irq を share する
ようになり、pccrdd での irq 割当指定は無効になります。
これでうまく動作するマシンと、ドライバの場合では貴重な irq を
消費しなくて済むという利点もありますし、空き irq がなくて苦労する
という事もなくなります。
しかし、マシンによっては PCI routing だとうまく動いてくれなかったり、
ドライバによっては pccard での irq sharing にうまく対応できてないもの
があったりして、ドライバによって動かなかったりするようです。
# うちのマシンでは bios が初期化してくれてなくて PCI routing に
# なってくれない ...
そのため、後方互換性のための設定方法が用意されています。
その設定をすれば 4.3-R までと同じに ISA routing で動作して、
pccardd での設定が有効になります。

村田> どうも根本的な何かの設定が抜けている気がするのですが,
村田> わかりません。

その方法は
/boot/loader.conf または /boot.conf で
hw.pcic.intr_path="1" or set hw.pcic.intr_path 1
としてやる事です。
そうすると 4.3-R 相当の動作になるはずです
詳しくは man pcic してみてください。載ってます
# hw.pcic.irq="0"
# ってのもありますが多分これは0(polling mode)以外はまだダメなんじゃない
# かなぁ

また、この辺は 4.4-R 以降もチョコチョコいじられて改善されてるようなの
で最新の 4-stable に上げると PCI routing でもうまく動いてくれるように
なるかも知れません

村田> (Windows98でみるとirq 9はいろんなものと共有している)

まぁ、、ようするに pcic の使い方が Windows なんかに近くなったのかなぁ
と思います。

# kernel config からは 思い切って pccard 周りについては
# bus, irq 指定を全廃する事も出来ます。お試しあれっ
# device ed0 at isa .... なんてのも device ed とだけにしちゃえます
# GENERIC では desk top の ISA なカードも考慮して bus, irq 書いてあり
# ますけどねっ note 専用の config では ...
--─
ICQ UIN:57442553                          二宮 秀幸@愛媛 鬼北 広見町
PGP-Fingerprint:  6C59 EC08 5B23 6490 44D0  7CD3 DA40 219F 7114 8553
PGP-Public-Key:    http://user.shikoku.ne.jp/~nin/pgp/public-key.txt
mailto:nin@shikoku.ne.jp   http://user.shikoku.ne.jp/~nin/index.html
mailto:nin@Jp.FreeBSD.org http://home.jp.freebsd.org/~nin/index.html