EFI_UNSUPPORTED là gì?
Quicknote EFI_UNSUPPORTED là gì?
EFI_UNSUPPORTED báo rằng operation, controller, device hoặc mode hiện tại không được hỗ trợ. Trong UEFI Driver Model, đây thường là status rất bình thường trong Supported().
Điểm cần nhớ: EFI_UNSUPPORTED không nhất thiết là lỗi xấu. Nó có thể chỉ nói rằng “driver này không dành cho controller này”.
Ví dụ trong Driver Binding
EFI_STATUS
EFIAPI
MyDriverBindingSupported (
IN EFI_DRIVER_BINDING_PROTOCOL *This,
IN EFI_HANDLE ControllerHandle,
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL
)
{
Status = gBS->OpenProtocol (
ControllerHandle,
&gEfiPciIoProtocolGuid,
(VOID **)&PciIo,
This->DriverBindingHandle,
ControllerHandle,
EFI_OPEN_PROTOCOL_BY_DRIVER
);
if (EFI_ERROR (Status)) {
return EFI_UNSUPPORTED;
}
// Check VendorId / DeviceId here
return EFI_SUCCESS;
}
Nếu controller không phải thiết bị mà driver hỗ trợ, return EFI_UNSUPPORTED là đúng.
| Mục | Giá trị | Ghi chú |
|---|---|---|
| Supported() | Bình thường | Driver không match controller. |
| Protocol method | Feature chưa hỗ trợ | Ví dụ mode hoặc command không có trên device. |
| Platform policy | Không bật feature | Feature bị tắt bởi PCD/setup option. |
| Wrong phase | Gọi sai thời điểm | Một số service không tồn tại ở phase hiện tại. |
Debug Diary: driver không attach vào controller
Nếu thấy rất nhiều log EFI_UNSUPPORTED trong quá trình enumerate driver, đừng hoảng. Dispatcher đang hỏi nhiều driver xem ai support controller đó. Chỉ đáng nghi khi driver bạn kỳ vọng support cũng trả EFI_UNSUPPORTED.
Khi đó hãy log thêm:
ControllerHandle
VendorId / DeviceId
ClassCode
RemainingDevicePath
Supported() return status
Checklist khi gặp EFI_UNSUPPORTED
Firmware Engineer Notes
Đừng biến mọi EFI_UNSUPPORTED thành DEBUG_ERROR. Trong path enumerate driver, nó có thể làm log cực nhiễu. Hãy log ở DEBUG_INFO hoặc chỉ log khi controller gần match nhưng bị loại bởi một điều kiện cụ thể.
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.
Biến note thành bài viết hoàn chỉnh
Notes là nơi ghi nhanh khái niệm.