Using "C-bus" extension boards on LUNA-88K2 (at OSC 2015 Nagoya)
-
Upload
kenji-aoyama -
Category
Software
-
view
432 -
download
4
Transcript of Using "C-bus" extension boards on LUNA-88K2 (at OSC 2015 Nagoya)
OSC 2015 Nagoya
謎マシンにも翼をください�
C-bus拡張ボード onLUNA-88K2
Nagoya *BSD Users' GroupKenji Aoyama / ⻘⼭ 健治
Twitter: @ao_kenji
2
自己紹介
• ⻘⼭ 健治 / あおやま けんじ
• パソコン歴– MZ-2000 → X68000XVI → PC-AT
• UNIX歴– Sun3 / SunOS 4.0.x ぐらいから?– FreeBSD → NetBSD → OpenBSD
• OpenBSD/luna88k port maintainer– 2004年〜
3
LUNA-88K,LUNA-88K2とは?
• LUNAシリーズ– オムロン株式会社が1980年代後半〜90年代
初めに販売していたワークステーション• LUNA, LUNA-II
– CPU:モトローラ68030/68040(m68k)– NetBSD/luna68kが動きます
• LUNA-88K, LUNA-88K2 – CPU:モトローラ88100(m88k) MP対応– OpenBSD/luna88kが動きます
⾒かけたら保護を!
4
C-bus: LUNA’s final frontier :-)
• OpenBSD/luna88kのデバイスサポート•フレームバッファ•キーボード・マウス・シリアル•ネットワークインタフェース•SCSIコントローラ•フロントパネルLCD•PC-98拡張バス(C-bus)
•シリアル×2•プリンタポート
I/Oプロセッサ (HD647180)の先にあるファームウェアを読み込ませる必要があるがその情報がない
メインCPUから⾒えるところにある
○
×
メインCPUからアクセスできるのでオムロン純正ではない色々な機能のC-busボードが使える(かも?)ただしDMAは対応していません(LUNA-88K2にはDMACがない)
5
C-bus: How to access on LUNA
• 物理アドレス– 0x90000000〜 (16MB)
• C-busメモリ領域…24bit分– 0x91000000〜 (64KB)
• C-bus I/Oポート領域…memory mapped– 0x91100000
• 割り込みステータスレジスタ(仮称)
【注意】i386: Little Endianm88k: Big Endianなにか処理が必要かも?
詳しくは https://gist.github.com/ao-kenji/7843096 参照
6
これまでに作ったデバイスドライバ
cbus
86音源ボード
PCカードスロット
necsb
pcmcia
INTx
INTymainbus
interrupt
level = 4
その他C-busボードpcexmem
pcexio
INTz
OpenBSD 5.7(最新リリース)にも含まれています
7
cbus(4)
• mainbusとC-busボードの間の中間層– C-bus割り込みの管理– 将来的にはメモリ・I/Oポート領域の重複管
理も必要かも?
8
pcexmem(4), pxexio(4)
• C-bus用genericドライバ– C-busメモリ領域・I/Oポート領域専用
mmap– 簡単な割り込みハンドリング
• 各種C-busボードをユーザランドから触れるので、実験が楽になりました(自画自賛)
9
necsb(4)
• 86音源ボードドライバ– PCM部分のみ
• 古のNetBSD/pc98のドライバをcbus(4)に持ってきたもの– 詳細は2014年12月のNBUG例会報告
http://www.slideshare.net/ao_kenji/nbug201412 参照
• LUNAでも/dev/audioが(一応)使えます– 11.025kHzサンプリングのPCMファイルなら
LUNAでも再生できました
10
pcmcia(4)
• PCMCIAスロット増設ユニットドライバ
• OpenBSDのpcmcia(4)をcbus(4)経由で使えるようにしたもの– 詳細は2015年2月のNBUG例会報告
http://www.slideshare.net/ao_kenji/nbug201502 参照
• 本日展示の無線LANカードはこのドライバ経由で動いています
11
Now playing with�
• ターゲット– PC-9801-96
グラフィックアクセラレータボード(GAB)B3• Cirrus Logic GD5428• 1MB VRAM
• マルチヘッドもどきにして本日展示しているものです
• 1024x768x8bpp, 800x600x16bpp対応• 今はpcexmem(4)/pcexio(4)を使って
1ドットずつ描画しています
右:純正フレームバッファ左:GAB-B3
12
GAB-B3を試してみて�
• 「VGA」由来なのでちょっと使いにくい– VRAMをLinear Addressingできるチップだ
が、ボードとしては対応していない様子• 64Kごとのページアクセスしかできない
– どうドライバ化したらいいか検討中• 他のC-bus GABの情報求む!!
– 1280×1024×8bpp以上→ VRAM 2MB希望– 過去XFree98等でサポートされていたもの– VRAMがLinear Addressing対応できるもの
13
まとめ
• LUNA-88K2で各種C-busボードを動かしてみました
• ドライバを用意したら、DMAを使わないボードがいくつか動きました– CPUパワーが貧弱なので、timeoutになるも
のもあります• 高サンプリングレートでのPCM再生• PCMCIAのWireless LAN
• 今後遊ぶためにも、早めの現物確保を!
14
謝辞
• 荒尾さん・蛯原さん・江富さん– LUNA-88Kを送付いただきました
• 大島さん– GAB-B3を寄贈いただきました
• 筒井さん– 電源修理 & アドバイスありがとうございます
• Twitterでfavしていただける方– 励みになります
• 家族– 怪しげな趣味に対する理解に感謝!
15
あとはNBUGブースで�
お待ちしております!!