PCI Configuration Spaceとは?

BIOS/UEFIおよびembedded firmware学習者向けにPCI Configuration Spaceを説明するクイックノート。

1 分で読めます
Đọc bằng 日本語 Tiếng Việt English
PCI / ACPI / SMBIOS Terms cover

PCI configuration spaceは、PCI/PCIe deviceを識別・設定するための標準register空間である。

なぜ重要か

  • firmwareがPCI/PCIe deviceを検出・設定する仕組みを説明する。
  • missing device、invalid BAR、resource allocation問題のdebugに役立つ。
  • PCI configuration spaceとUEFI driver bindingを結び付ける。

実例

例:Vendor IDが0xFFFFとして読める場合、firmwareがbus上のdeviceを見えていない、またはbus/device/function addressが間違っている可能性がある。

クイックチェックリスト

覚えておくポイント

PCI Configuration Spaceは、configuration-space dataとUEFI handle/protocol stateを結び付けてdebugすると分かりやすい。

システムの流れに置く

PCI Configuration Space は、単独の用語として暗記するよりも、firmware の流れの中に置くと理解しやすいです。誰が作り、誰が読み、値が間違ったときにどの症状として出るのかを意識すると、学習用のメモがそのまま debug のチェックポイントになります。

イメージしやすい例

たとえば OS から device が見えない場合、すぐに driver の問題と決めつけない方がよいです。ACPI/PCI/SMBIOS で firmware が出している ID、resource、table 情報と、OS log が見ている内容を比べます。PCI Configuration Space はその platform description の一部として見ると整理しやすいです。

実際のデバッグで見るポイント

PCI Configuration Space は enumeration の流れに置いて考えます。BDF、Vendor ID/Device ID、class code、BAR size、resource allocation、driver binding の順に見ると、device が見えない原因を切り分けやすくなります。

Vendor ID が 0xFFFF になる、BAR size が不自然、hardware を差し替えた後に device path が古いまま、という症状はよくある手がかりです。

関連ノート

公開参考資料

この記事は役に立ちましたか?

ファームウェア、BIOS/UEFI、組み込みシステムを学んでいる人に共有できます。

Nội dung liên quan

Một số bài viết, ghi chú hoặc project có liên quan đến nội dung bạn vừa đọc.

Biến note thành bài viết hoàn chỉnh

Notes là nơi ghi nhanh khái niệm.