渡辺様 武井です。遅くなってしまいましたがjoyのイネーブルを 入れて確認してみました。joyは動作するようになりました。 ありがとうございました。
> > YMF744 の場合、データシートをちょろっと眺めた限りでは I/O ポートアドレ > スを設定するだけでいけるような気もします。場合によってはポートを明示的 > に有効にする必要もあるかも知れません。 > > ALSA (http://www.alsa-project.org/) のソースコードを参考に、 > いじってみたらどうでしょう。 > YMF744 のデータシートはこのへん↓にあります (ALSA の古いミラー)。 > http://alsa.cybermirror.org/manuals/yamaha/ > > da_pci_attachに下記のコードを追加してみました。 *** ds1.c.ORG Sat Jan 29 17:06:22 2011 --- ds1.c Sat Jan 29 17:06:28 2011 *************** *** 1003,1008 **** --- 1003,1036 ---- pcm_addchan(dev, PCMDIR_REC, &ds1rchan_class, sc); pcm_setstatus(dev, status); + /* ---------------------- 11/1/28 add */ + /* read PCI reg */ + data = pci_read_config(dev, 0x18, 4); + device_printf(dev, "0x18:Legacy Audio I/O Base address %08x\n", data); + + /* write PCI reg + pci_write_config(dev, 0x18, 0x00000405, 4); + data = pci_read_config(dev, 0x18, 4); + device_printf(dev, "0x18:Legacy Audio I/O Base address %08x\n", data); + */ + + /* read PCI reg */ + data = pci_read_config(dev, 0x40, 2); + device_printf(dev, "0x40:Legacy Audio Control %04x\n", data); + data = data & 0x7fff; + pci_write_config(dev, 0x40, data, 2); /* write PCI reg */ + device_printf(dev, "0x40:Legacy Audio Control %04x\n", data); + + /* read PCI reg */ + data = pci_read_config(dev, 0x4a, 2); + device_printf(dev, "0x4a:DS-1S Power Control1 %04x\n", data); + + /* read PCI reg */ + data = pci_read_config(dev, 0x4e, 2); + device_printf(dev, "0x4e:DS-1S Power Control2 %04x\n", data); + + /* ---------------------- 11/1/28 add */ + return 0; bad: PCからISAのサウンドカードを抜き、代わりにym744の載っているPCIカードを 挿して下記のコンフィギュレーションに変えてブートしてみました。 device pcm device pcm0 # #device moz0 at isa? port 0x100 irq 10 device joy0 at isa? port IO_GAME # device snd device sb0 at isa? port 0x220 irq 5 drq 1 以下dmesgの抜粋です。 pcm0: <Yamaha DS-1E (YMF744)> port 0xb400-0xb403,0xb800-0xb83f mem 0xdb000000-0xdb007fff irq 9 at device 13.0 on pci0 pcm0: <SigmaTel STAC9708/11 AC97 Codec> pcm0: 0x18:Legacy Audio I/O Base address 0000b401 pcm0: 0x40:Legacy Audio Control 907f pcm0: 0x40:Legacy Audio Control 107f pcm0: 0x4a:DS-1S Power Control1 0000 pcm0: 0x4e:DS-1S Power Control2 0000 joy0 at port 0x201 on isa0 sb0 at port 0x220 irq 5 drq 1 on isa0 NOTE! SB Pro support required with your soundcard! snd0: <SoundBlaster Pro 3.1> joyに関してはデータシートで0x18のjoyのアドレスレジスタが0になっていますが、 実際に読むと0x0000b401(0x200?)が読めて、設定しなくても問題ないようです。 joyを含めてレガシーオーディオをイネーブルにするには0x40のレジスタのB15を 0にするだけでOKでした。 ダメ元で入れてた、snd(サウンドブラスタ)も認識され、下記のようにsndstatが 表示されました。ただし、上記の0x40のレジスタの設定でym744の内部では 有効になるものの、割込み信号がsndドライバに届かないので、データは出力 されないようです。 cat /dev/sndstatの結果 VoxWare Sound Driver:3.5-alpha15-970902 (Wed Aug 6 22:58:35 PDT 1997 Amancio [email protected]) Config options: Installed drivers: Type 2: SoundBlaster Card config: SoundBlaster at 0x220 irq 5 drq 1 Audio devices: 0: SoundBlaster Pro 3.1 Synth devices: Midi devices: 0: SoundBlaster Timers: 0: System clock Mixers: > MIDI 方面はよく知らないです。最近のリリースでも USB-MIDI アダプタを含 > めて「ものによっては動く」という感じ (?) ですが、4.11-RELEASE だとどう > なんでしょうねぇ。 > --- > WATANABE Kazuhiro ([email protected]) > > がんばってds1のドライバにsnd(サウンドブラスタ)のコードをマージすれば sequencerも 動きそうな気がしますが、大変そうです。 -- 武井 潤 [email protected]
