USB Initialization trong DXE là gì?

Quicknote giải thích USB initialization trong DXE.

2 phút đọc
Đọc bằng Tiếng Việt English 日本語
ACPI / Hardware Terms cover

USB trong DXE thường phục vụ keyboard, mouse, boot device, mass storage và USB network. Firmware cần init host controller, enumerate port/device, tạo Block I/O hoặc Simple Text Input trước khi BDS chọn boot option.

Step 1

PCI enumerate XHCI

PCI Bus Driver tìm USB controller.

Step 2

XHCI driver bind

DXE driver attach vào controller qua PCI I/O Protocol.

Step 3

USB bus enumerate

Scan port, reset port, đọc device descriptor.

Step 4

Class driver bind

Keyboard, mass storage, hub, network driver bind.

Step 5

Boot service expose

Block I/O hoặc input protocol sẵn sàng cho BDS.

Liên hệ với ACPI

Sau khi OS boot, OS sẽ quản lý USB controller. ACPI có thể ảnh hưởng tới ownership handoff, wake capability, power resource hoặc port mapping. Vì vậy lỗi USB có thể nằm ở DXE enumeration hoặc ACPI mô tả runtime.

Debug diary

Case thường gặp:

USB keyboard dùng được trong Setup

Nhưng mất trong OS resume

Điều này gợi ý DXE path OK, nhưng ACPI power/wake path hoặc OS handoff có vấn đề.

USB debug checklist

Firmware engineer notes

Nếu USB boot không hiện trong Boot Menu, hãy debug theo thứ tự: PCI controller → XHCI driver → USB bus → mass storage → Block I/O → Boot####. Đừng nhảy thẳng tới BootOrder.

Bài liên quan

Nguồn tham khảo public

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.