アルファ・ワールド -PCIの双バス-
えとみ なるあき@nullnilaki
自己紹介
• 名古屋港の港湾運送会社に勤務• 現在は情報システム部に所属 (数年前は倉庫で荷物を数えてました)• 仕事ではCOBOLしか触った事が有りません (C言語?知らない子ですね…)• サーバの設定もベンダーさん任せなので UNIXを触るのはコンパイラのコマンドを叩くだけ (カーネル?知らない子ですね…)
冬の名古屋港はキレイ!
ぞうを運んだりします。すごくくさい…
DEC Alphaとは?
• DECが設計したCPU (僕が物心付いたときにはDECは既に… (´;ω;`) ウッ…)
• 64bit RISCプロセッサ• ちょうはやい• NetBSDでは仮想アドレス43bit(仮想アドレス空間8TB)
ちなみにTru64UNIXはライセンスを入力しないと使えません
AlphaStation DS15(TITAN chipset)
黒くて…カコイイ
(;゚∀゚)=3ハァハァ
NetBSDで動かなかったのでOpenBSDから移植(send-pr-48148)
Notice!:Do not use radeonfb because
Display blackout and panic.
TITAN chipsetの特徴
• 独立したPCIバスが二つある!?
BUSごとのBase addressさえ設定すれば大丈夫!(tsp_config構造体が一本のバスを管理)
P-01
はまったところ(radeonfb編その1)
P-01
文字が出力されずradeonfb_putchar_wrapperで誤摩化してたら…
radeonfb.c,v 1.66で修正済み!
はまったところ(radeonfb編その2)
radeonfb_set_backlightを実行すると画面が暗転Alphaはキーボードがささってないと、フレームバッファに出力されない…
シリアルコンソールに無理矢理出力させるという技を覚える!
radeonfb_set_backlightがうまく動かないのはAlphaだから?
はまったところ(radeonfb編その3)
はまったところ(cn_tab編1)
cn_tabはコンソールの出力定義この切り替え処理に失敗すると沈黙…
ファームウェアの文字出力からradeonfb_putcharに切り替え
はまったところ(cn_tab編2)
P-01
ファームウェアが文字を出力しているところ
はまったところ(cn_tab編3)
• どうしても構造体のアドレスの代入に失敗…
これだと、OK!
NAZEDA!!
すったもんだの末に、radeonfbが使えるようになったものの…
はまったところ(bus_space_mmap編1)
偉大なるソフトウェアmlterm-fbが使えない!!
はまったところ(bus_space_mmap編2)
arakikenさんとあおやまさんがアドバイスくださった!!(´;ω;`)ウウウ
はまったところ(bus_space_mmap編3)
radeonfbの中でフレームバッファのアドレスに直接書き込みすると反応はあった。
ユーザーランドからだと、画面に全く反応がない
はまったところ(bus_space_mmap編4)
解決!!
はまったところ(bus_space_mmap編5)
P-01
AlphaでXを動かす人はいない?
そしてmlterm-fbが動き…
P-01
Xのことで混乱するも…
oshimayaさんの超わかりやすい解説!!
mikutter動いた。 完!
謝辞
• 本当に尊敬してます つついさん• アドバイスいただけて、僕はメチャメチャ嬉しいです arakikenさん、あおやまさん、oshimayaさん• 進捗あった日の翌朝にふぁぼって元気づけてくださる ebijunさん(僕の密かな楽しみ)• Compaq Professional workstaion XP1000を譲って下さった impreza_gf8さん• pkgsrcを教えて下さる ふじわらさん、おばたさん、おのでらさん• ほか、twitterでおもしろツィートをして、笑わせて下さる フォロー、フォロワーの方々
参考文献つついさんのサイトBSDマガジン