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.

2 phút đọc
Firmware Execution Flow cover

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.

01 FV

Scan Firmware Volume

Tìm FFS/PE32 section của DXE driver.

02 DEPEX

Kiểm tra dependency

Protocol cần thiết đã được install chưa?

03 ENTRY

Gọi entry point

Driver bắt đầu locate/install protocol.

04 MORE

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.

Biến note thành bài viết hoàn chỉnh

Notes là nơi ghi nhanh khái niệm.