初心者、PCIEの基本的な概念を理解するための最初のステップは、コンフィギュレーション空間を理解するPCIE第二工程、第三工程で綿密な研究PCIeデバイス列挙方法。この章では、第二段階まとめたPCIE構成スペースを
国際的な慣行によると、質問をします:
1. PCIEの構成空間とは何ですか?
2. PCIEデバイス・コンフィギュレーション・スペースはどのくらいですか?PCIとPCIEのリンク設定空間の違いは何ですか?
3.どのようにコンフィギュレーション・スペース・PCIEデバイスにアクセスするには?
4.いくつかの種類がありますが、何が含まれ?
上述した問題に、部分をまとめることができます。
PCIEの構成空間とは何ですか?
PCIE各デバイスは、コンフィギュレーション空間の独自の別個のセクションを有している空間は、このデバイス(おそらくいくつかのE2PROM)の一部であり、システムは、装置のスペース、CPUアクセスであるこのメモリ空間メモリのセクションを割り当てます、このデバイスへのアクセスコンフィギュレーション・スペース。工場の設備、コンフィギュレーション・スペースは、デフォルトの初期値です。
PCIEデバイス・コンフィギュレーション・スペースはどのくらいですか?PCIEとPCIコンフィギュレーション空間の接触の違いは何ですか?
PCI初期期間は、システムは、各PCIデバイスに割り当てられた唯一の256バイトのメモリサイズです。機器の性能の強化、4Kバイトに装置構成空間PCIe拡張と後期にPCIE、。それは、ここで注意する必要があります。
PCIEは256台のバス、32のGeのDev、8 Geの楽しみの合計をサポートしています。したがって、全負荷の場合には、合計メモリサイズを必要とする= 4K * 256 * 32 * 8 = 256Kバイト= 256M 256Mメモリ空間は、PCIeデバイスの製造のための宇宙システムで実際に、これはあなたのメモリであり、利用可能でありませんあなたは、常にメイン公称の1よりも小さくなります。
PCIEフォワード互換PCIデバイスは、各デバイスの最初の256バイトのコンフィギュレーション空間は、PCIe拡張のための4K-256バイトの後PCIアクセス空間、空間です。これは、2つの主な違いで、さらなる区別は、次の質問につながります
アクセス方式PCI / PCIEデバイス・コンフィギュレーション・スペース---- IOアクセス・メモリ・アクセス
IOのメモリマッピングおよびマッピング:X86システム、アドレスマッピングPCIEデバイス・コンフィギュレーション・スペースは、2つの方法があります。だから、開発者は、その構成領域にアクセスするためのIOやメモリアクセスを介してアクセスすることができます
PCIEアクセスそのバス、デベロッパーより不可分デバイス、ファンナンバリング、図レジスタに示すように、ビット[23:16]は、このよう理由上記式を説明するためのバス番号、合計8ビット、256台のバスの合計を記憶するために使用されますビット[15時11]格納されているデベロッパーは、あなたが32 5ビットのDevの合計を格納することができ、ビット[10:8]に格納されているバスは、8つの3ビット楽しみの合計を記憶することができます。
コンフィギュレーション空間にアクセスするためにIOメモリや方法を使用しているかどうか、彼らは、以下の具体的な説明上の図から不可分です:
1. IOアクセス
IOは、Intel X86アーキテクチャのユニークな製品は、それがユーザIN / OUT命令(メモリは、その後、MOVEコマンドでアクセスする必要がある)、デバイス部は、IO空間にマッピングすることができるがアクセスする、ストレージの単純期間として理解されるべきであり、 CF8 / CFC:開発者ポートはIOを介してデバイスにアクセスするには、このようになりましたとしてこれを発表しました。インテルは、ポート、指定されたアドレス、指定されたデータのセットを介して第1の256バイトPCIEのためにアクセスすることができます。コードは以下の通りであります:
1 / * ライタDATE CF8に* /
2アドレスビット31 = |((BUS&0XFF)<< 16)|((DEV&0x1Fの)<< 11)|((娯楽0x7の)<< 8 );
3。 IoWrite32(0xCF8 、アドレス); //リードアドレスは、CF8に書き込まれる
4。 Date32 = IoRead32(0xcfc); //ポートのアドレスは、CFCからデータを読み出します
注意:IOアクセスのみ最初の256バイトを読み取ることができ、256バイトがアクセス・メモリを必要とするの後にスペースを
2.メモリアクセス
この事実、および同様のIOアクセスは、すべてのコンフィギュレーション空間は、ユーザデバイスアドレスは、読み書きメモリ、次のコードを介してアクセスすることができることを決定した後、メモリにマップ:
1 / * 書き込み日付* / 2 MmioWrite32(PcieBaseAdd +バス<< 16 + Devの<< 11 +楽しい<< 8 +オフセット、日付)。// PcieBaseAdd为PCIE在内存中的基地址 3 4 / * 読む日付* / 5値= MmioRead32(PcieBaseAdd +バス<< 16 + Devの<< 11 +楽しい<< 8 +オフセット)。
PCIE集中コンフィギュレーション・スペースの種類は、何が含まれています
宇宙機器セカンドタイプ1::橋スペース二つの主要な構成スペースがありますが、開発者はまた、これらの2つの、1 TYPE0をクリアすることができます
図デバイス空間に示されるように以下は、コンテンツを記述し、前記主要な役割:
DID&VID:ベンダID及び装置、及び各再生装置が固定されるべきではなく、これは、通常、デバイスID列挙装置によって決定されたか否かが判断します。
クラスコード:
HeaderType:
BAR0&BAR1:機器空間のベースアドレス
下位バス番号:ナンバーバススレーブバス風雲ツリー即ちバスの最大数。
二次バス番号:ブリッジで接続されているバス番号
プライマリバス番号:橋バス番号で選びます
メモリの制限:このデバイスに割り当てられたメモリのサイズ?
Memroyベース:この機器、アドレスを割り当てるためのベースを含みますか?