UEFIにおけるPCIe Enumerationとは?
BIOS/UEFIおよびembedded firmware学習者向けにUEFIにおけるPCIe Enumerationを説明するクイックノート。
UEFIにおけるPCIe enumerationは、PCI/PCIe deviceを検出し、configuration spaceを読み、resourceを割り当て、handle/protocolとして公開する処理である。
なぜ重要か
- firmwareがhardware behaviorをOSへどのように見せるかを説明する。
- schematic上のsignalとOSから見えるdeviceを結び付ける。
- boot、power、device enumerationのdebugに役立つ。
実例
例:firmwareではdeviceが見えるのにOSで見えない場合、ACPI namespace、OS log、_CRSが返すresourceを比較する。
クイックチェックリスト
覚えておくポイント
UEFIにおけるPCIe Enumerationは、firmwareの記述とOSの解釈をつなぐ契約である。
自分ならこう読む
UEFIにおけるPCIe Enumeration は、単独の用語として暗記するよりも、firmware の流れの中に置くと理解しやすいです。誰が作り、誰が読み、値が間違ったときにどの症状として出るのかを意識すると、学習用のメモがそのまま debug のチェックポイントになります。
実務で出てくる場面
たとえば OS から device が見えない場合、すぐに driver の問題と決めつけない方がよいです。ACPI/PCI/SMBIOS で firmware が出している ID、resource、table 情報と、OS log が見ている内容を比べます。UEFIにおけるPCIe Enumeration はその platform description の一部として見ると整理しやすいです。
実際のデバッグで見るポイント
UEFIにおけるPCIe Enumeration は 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.