渡辺様

武井です。遅くなってしまいましたが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 ha...@rah.star-gate.com)
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 (cqg00...@nifty.ne.jp)
>
>   
がんばってds1のドライバにsnd(サウンドブラスタ)のコードをマージすれば
sequencerも
動きそうな気がしますが、大変そうです。


-- 
武井 潤
ta...@sophia-systems.co.jp


メールによる返信