UEFI Service Driverとは?
BIOS/UEFIおよびembedded firmware学習者向けにUEFI Service Driverを説明するクイックノート。
UEFI Service Driverは、必ずしもdeviceにbindせず、serviceやprotocolをpublishするdriverである。
なぜ重要か
- UEFI driverの構造と接続方法を説明する。
- driver binding、controller connection、resource cleanupのdebugに役立つ。
- Driver Binding Protocolのcodeを読むときに役立つ。
実例
例:Start()が途中で失敗した場合、driverはreturn前にopenしたprotocolやallocateしたresourceをcleanupすべきである。
クイックチェックリスト
覚えておくポイント
UEFI Service Driverは小さな概念に見えても、logを読むときや実際のfirmware debugで重要になる。
デバッグ時の見方
UEFI Service Driver は、単独の用語として暗記するよりも、firmware の流れの中に置くと理解しやすいです。誰が作り、誰が読み、値が間違ったときにどの症状として出るのかを意識すると、学習用のメモがそのまま debug のチェックポイントになります。
小さな具体例
firmware の概念は、どの phase に属するかで意味がかなり変わります。UEFI Service Driver を見るときは、どの module が作り、どの protocol/PPI/HOB/variable に乗り、後続のどの module が使うのかを追うと理解しやすいです。
実際のデバッグで見るポイント
UEFI Service Driver は、どの firmware phase で現れるのか、どの module が作るのか、どの module が読むのか、間違ったときにどの log や症状として出るのか、という順番で見ると実戦的です。
DXE driver が bind しない、BDS で止まる、といった問題では、1 行の error だけを見るより、protocol、handle、device path、variable、policy を順にたどる方が原因に近づきやすいです。Firmware の不具合は単発ではなく、chain として表れることが多いです。
関連ノート
- UEFI Driver ModelにおけるSupported()とは?
- UEFI Driver ModelにおけるStart()とは?
- UEFI Driver ModelにおけるStop()とは?
- UEFI Device Driverとは?
- UEFI Runtime Driverとは?
公開参考資料
この記事は役に立ちましたか?
ファームウェア、BIOS/UEFI、組み込みシステムを学んでいる人に共有できます。
Biến note thành bài viết hoàn chỉnh
Notes là nơi ghi nhanh khái niệm.