DXE Dispatcher là gì?
Giải thích DXE Dispatcher, DEPEX và cách debug khi DXE driver được build nhưng không chạy.
DXE driver không tự nhiên chạy chỉ vì file .c được build. Trong firmware image, driver nằm trong firmware volume. DXE Dispatcher scan các DXE driver, kiểm tra dependency expression (DEPEX), rồi mới gọi entry point.
Scan Firmware Volume
Tìm FFS/PE32 section của DXE driver.
Kiểm tra dependency
Protocol cần thiết đã được install chưa?
Gọi entry point
Driver bắt đầu locate/install protocol.
Dispatch tiếp
Driver mới publish protocol có thể unlock driver khác.
Lỗi hay gặp
Một driver đã có trong DSC, build không lỗi, nhưng log entry point không xuất hiện. Có ba khả năng rất thường gặp:
| Mục | Giá trị | Ghi chú |
|---|---|---|
| Có trong DSC nhưng thiếu FDF | Build được nhưng không nằm trong FV | ROM image không chứa driver để dispatcher thấy. |
| DEPEX chưa thỏa | Dispatcher chờ protocol | Entry point chưa được gọi. |
| DEBUG level sai | Driver có chạy nhưng không thấy log | Đừng kết luận quá sớm nếu chỉ nhìn log. |
Debug diary
Bạn thêm một DXE driver mới và gọi hàm từ library khác. Build đã pass, nhưng driver không chạy. Lúc này thứ tự kiểm tra nên là:
Checklist DXE dispatcher
Bài liên quan
Thấy nội dung này hữu ích?
Lưu lại hoặc chia sẻ cho người cũng đang học firmware, BIOS/UEFI và embedded systems.
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.
DXE Dispatcher là gì?
DXE Dispatcher load và chạy DXE driver theo DEPEX, dựa trên protocol dependency trong handle database. Hiểu dispatch loop giúp debug driver không chạy dù build pass.
DEPEX là gì?
Quicknote giải thích Dependency Expression trong EDK II/UEFI.
DXE Driver trong EDK II là gì?
Quicknote giải thích DXE Driver trong EDK II.
Biến note thành bài viết hoàn chỉnh
Notes là nơi ghi nhanh khái niệm.