DXR165の備忘録

自分用の備忘録です。

PCI コンフィグレーション・メカニズム1をUEFI Shell for x64で体験してみる  

UEFI Shell for x64のmm -ioコマンドでI/Oポートを叩けるようなので、これを使い、PCI コンフィグレーション・メカニズム1の動作を体感します。

調査環境
■CPU Kaby Lake-S  Intel Pentium G4560 3.50 GHz
■マザーボード ASUS PRIME H270-PLUS
■メモリー DDR4-2133 4G x 2 Dual-Channel Mode
■SSD システムドライブ:Samsung NVMe SSD 960 EVO 250GB
■OS Microsoft Windows 10 Home 64bit Ver.1709
■Chipset H270 Stepping A0
■Intel Chipset Driver Ver. 10.1.1.44
■BIOS AMI BIOS Ver. 0808 UEFI Comp Ver 2.60
■Onboard PCI Devices  なし

■UEFI Interactive Shell for x64 v2.2 by EDK 2 


それでは、PCIバスのB:0 D:0 F:0にあるホストブリッジのコンフィグレーションレジスタの内、ベンダーIDとデバイスIDを読んでみます。


CONFIG_ADDRESSレジスタ(32bit)  CF8h CF9h CFAh CFBh
Enable           バス番号        デバイス・機能番号  レジスタアドレス
1000 0000     0000 0000     0000 0000            0000 0000
8000_0000hを書き込む
CONFIG_DATAレジスタ(32bit)  CFCh CFDh CFEh CFFh
ダブルワードでレジスタ値が帰る。
CFCh がCONFIG_ADDRESSレジスタで指定したレジスタアドレスの1バイト目の値が読める。
以下、CFDh -> 2バイト目  CFEh -> 3バイト目  CFFh -> 4バイト目  となります。


UEFI Shell mmコマンド実行画面
IMG_20171028_062227.jpg 


上記のようにコンフィグレーションレジスタのベンダーID は 8086 、デバイスID は 590Fとなりました。よって、ホストブリッジのコンフィグレーションレジスタにアクセスしていることが確認できました。mmコマンドの最後でmm cf8 00000000 -w 4 -io としているのはcfch-cffhのI/O空間をCONFIG_DATAレジスタから切り離すためです。


主な参考文献/URL

PCI Express 設計の基礎と応用
畑山 仁 / 編著 CQ出版 2010年5月15日発行


Interface 増刊  改訂新版 PCIバス&PCI-Xバスの徹底研究
Interface編集部 (編集) CQ出版 2004年7月1日発行


7th Generation Intel® Processor
Families for S Platforms and Intel®
CoreTM X-Series Processor Family
Datasheet, Volume 2 of 2

Supporting 7th Generation Intel® Core Processor Families, Intel®
Pentium® Processor Family, and Intel® Celeron® Processor Family for
S Platforms and Intel® Core X-Series Processor Platforms

May 2017

2 Processor Configuration Register Definitions and Address Ranges
2.2 PCI Devices and Functions


関連記事

category: PC-HW

tb: 0   cm: 0

コメント

コメントの投稿

Secret

トラックバック

トラックバックURL
→http://dxr165.blog.fc2.com/tb.php/410-63cfa27d
この記事にトラックバックする(FC2ブログユーザー)

プロフィール

最新コメント

カウンター(2012/3/10以降)