PCI Configuration Spaceとは?
BIOS/UEFIおよびembedded firmware学習者向けにPCI Configuration Spaceを説明するクイックノート。
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.
PCIeにおけるBARとは?
BIOS/UEFIおよびembedded firmware学習者向けにPCIeにおけるBARを説明するクイックノート。
PCIeにおけるBridge Windowとは?
BIOS/UEFIおよびembedded firmware学習者向けにPCIeにおけるBridge Windowを説明するクイックノート。
PCI Bus Driverとは?
BIOS/UEFIおよびembedded firmware学習者向けにPCI Bus Driverを説明するクイックノート。
Biến note thành bài viết hoàn chỉnh
Notes là nơi ghi nhanh khái niệm.