Vendor IDとDevice IDとは?
BIOS/UEFIおよびembedded firmware学習者向けにVendor IDとDevice IDを説明するクイックノート。
Vendor IDとDevice IDは、device discovery、configuration-space access、resource allocation、driver bindingで使われるPCI/PCIe firmwareの概念である。
なぜ重要か
- 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が間違っている可能性がある。
クイックチェックリスト
覚えておくポイント
Vendor IDとDevice IDは、configuration-space dataとUEFI handle/protocol stateを結び付けてdebugすると分かりやすい。
システムの流れに置く
Vendor IDとDevice ID は、単独の用語として暗記するよりも、firmware の流れの中に置くと理解しやすいです。誰が作り、誰が読み、値が間違ったときにどの症状として出るのかを意識すると、学習用のメモがそのまま debug のチェックポイントになります。
イメージしやすい例
たとえば OS から device が見えない場合、すぐに driver の問題と決めつけない方がよいです。ACPI/PCI/SMBIOS で firmware が出している ID、resource、table 情報と、OS log が見ている内容を比べます。Vendor IDとDevice ID はその platform description の一部として見ると整理しやすいです。
実際のデバッグで見るポイント
Vendor IDとDevice ID は enumeration の流れに置いて考えます。BDF、Vendor ID/Device ID、class code、BAR size、resource allocation、driver binding の順に見ると、device が見えない原因を切り分けやすくなります。
Vendor ID が 0xFFFF になる、BAR size が不自然、hardware を差し替えた後に device path が古いまま、という症状はよくある手がかりです。
関連ノート
- PCIeにおけるBDFとは?
- PCIeにおけるBARとは?
- PCI Configuration Spaceとは?
- PCI Root Bridgeとは?
- PCI Resource Allocationとは?
公開参考資料
この記事は役に立ちましたか?
ファームウェア、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.
PCI Configuration Spaceとは?
BIOS/UEFIおよびembedded firmware学習者向けにPCI Configuration Spaceを説明するクイックノート。
PCIeにおけるBARとは?
BIOS/UEFIおよびembedded firmware学習者向けにPCIeにおけるBARを説明するクイックノート。
PCIeにおけるBridge Windowとは?
BIOS/UEFIおよびembedded firmware学習者向けにPCIeにおけるBridge Windowを説明するクイックノート。
Biến note thành bài viết hoàn chỉnh
Notes là nơi ghi nhanh khái niệm.