ATX586でのPCIグラフィックカードの認識問題 #1

この究極?自作PC改め、魁??漢塾シリーズは、今から約13年前の私が自作PCに憧れてはいたものの当時は貧乏で手にする事の出来なかったDUAL Socket7 マザーのATX586を、ある事が切っ掛けで約13年を経た今になって偶然手にした事からスタートしました。

久しぶりのATX586ネタです。
(前回の記事でも書きましたが、最近外泊が多くてなかなかATX586に触る機会がありません。)

今回は比較的新しいグラボがATX586では全滅な事に対する調査・改修ネタです。

現時点での結論から書きますと、
1)異常が発生している箇所
 グラフィックカード上のPCIブリッジに対するコンフィギュレーションレジスタが
 正しく初期化されていない。
 (比較的新しいグラボは、GPUがPCIeやAGP世代なので必ずPCIブリッジを
  経由しなければPCIバスに接続出来ない。しかしATX586の時代にはPCIに
  直接接続可能なGPUを積んだPCIグラボが大半だった為に、この問題が
  表にでなかったと思われる)
2)調べるケース
 PCIブリッジを搭載したPCIグラフィックカードをATX586に挿して起動
3)調べる対象
 BIOSプログラム
4)調べる具体的な場所
 BIOS-POSTの比較的初期段階でI/Oポート80hに0Dhを出力してから80hに
 0Dh以外の値を出力するまでの間かつ/またはI/Oポート0CF8hに64Bit値を
 入力又は出力している周辺のロジック
 (前者はグラボの初期化、後者はコンフィギュレーションレジスタ初期化)

と言うところまで突き止めました。

AWARD-BIOSの解析に必要なツールはアセンブラ/逆アセンブラ以外は入手済みです(って一番重要なツールがorz)

まぁ結論を読めば判ると思いますが、PCIブリッジを搭載したグラボで問題が起き、その原因はグラボ上のPCIブリッジが正しく初期化されていないからだという所まで突き止めました。
PCIの規格では、PCIブリッジもPCIデバイスと同じように初期化する必要が有りますが、ATX586世代のPCIグラボはマザーボード上のPCIバスにGPUが直結していた為、間に何も介さずに初期化していたのが、PCIブリッジが間に入ってしまった為に、BIOSが想定外の状態になってしまっているのだと思われます。

参考までに、今までのPCI関連の問題と対処をまとめておきます。

問題1:試したPCIカードの6割ほどが動作しなかった。特に新しい製品は全滅だった。
問題1-1:3.3V電源がPCIスロットに供給されていなかった
   対策:自作フレキシブル基板で3.3V電源を供給する改造を行った
   効果:私が所有するグラボ以外の32Bitカードは全て正常動作するようになった
     同じ対策を施したTX97-X(同じ430TXのSocket7マザー)ではグラボも動作
問題1-2:64Bit-PCIカードが物理的に挿さらない
   対策:物理的に挿さる様にPCI2.1規格に準拠したスロット形状に加工
   効果:PCI-X133のカードでさえも動作する様になった
問題1-3:グラボ上のPCIブリッジに対する初期化不良(この記事の主題)
   対策:BIOS改造(調査中)
   効果:最新のDX9~11世代のPCIグラボが正常動作するとイイナ的な

問題2:スロット#2及び#4にPCIカードを挿すとCPU#2が常時負荷100%になる。
 対策:未対策(今はNO-PCIとPCガイガーが刺さっている、これらのカードは
    PCIのリソースを消費しない為、この構成のままなら問題無し)


 
関連記事
スポンサーサイト

コメントの投稿

非公開コメント

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

Re: PCIブリッジの初期化について

> PC-98界隈ではPCIブリッジの先が見えないことは結構問題になっていて識者によって大昔に解決されているのですがPCーAT用ツールは見当たりません。

PC-98は昔からBIOSの挙動などが共通になってる部分が多いので進めやすいのだと思います。
PC-ATはハードもBIOSも機種によってバラバラなので解析が終わっても別のマザーだとまた違う対応しないと・・・となり

> PCIブリッジの19と1Aが00になっている所に01を代入するだけで先が見えるようになります。

おー
これちょっとやってみます

> ただし、VGAだと2枚目にしないと使えない手なのでBIOS改造のほうが正しいとも思います。

そうなんですよ
BIOSのPOSTが立ち上がる最初のところでVGAメモリを0xA000からの物理アドレスと挿げ替える処理があるのですが、この挿げ替えにはノースブリッジ(メモコン)も含めた根幹に関わる設定が必要なので、POSTの最初の方でPCIブリッジの先まで通さないと動かないのです

私も、この時に経験しました
http://dualsocketworld.blog134.fc2.com/blog-entry-131.html

> P.S.たまには古いものの記事も読みたいです。

そうですね~
486のデュアルソケットを時々探してますが、なかなか無いですね~

プロフィール

DualSocketTheWorld

Author:DualSocketTheWorld
自作を始めて20台目くらいになりますが、最初からデュアルソケット限定(始めた当時はデュアルスロット)で自作しており、近年になってAMD K6を試したくなりSocket7でK6-2+のシングル構成で組んだのがシングル初です。

シングルマザー(含:シングルソケットマルチコア)や4ソケット以上の自作は基本的にしませんし、メーカー製PCの改造も基本的にはしません(ノートPCのSSD化くらいはしますが・・・)

基本路線はワークステーションと呼ばれる分野での自作で、OSもWindows系であればProfesionalが主な対象に成ります。

ゲーマーの様なOverClockは行わず、WS路線としてハイエンドCPUとハイエンドGPUの組み合わせで定格或いはDownClockで発熱を抑えつつ、その時のアーキテクチャに置いて爆速かつ静音を目指し、30年以上の長期に渡り稼動状態をキープする事を目指します。

※基本的にリンクフリーです。どこでも自由にどうぞ。

※画像は時々変ります。

※お決まりの文章ですが、改造は個人の責任で行ってください。ここに記載された情報は間違いを含んでいる可能性が有り、それを元に製作や改造などをして失敗しても筆者は一切責任持てませんので悪しからず。

筆者略歴:
小学生時代にゴミ捨て場で拾ったジャンクテレビ数台を分解して部品を取り出し真空管アンプを自作、中学生時代にPC8801mkⅡsrでZ80アセンブラを始める。社会人になって初のプログラムは弾道計算、後に医療系・金融系プログラマ~SEを経て100~200人規模プロジェクトのジェネラルマネジャを数年経験、独立して起業。現在は不動産所得で半引退生活。
(人物特定を避ける目的で一部経歴を変更しています)

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
アクセスカウンター
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR