Vendor ID và Device ID là gì?

Quicknote Vendor ID và Device ID là gì?

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

Vendor IDDevice ID là cặp định danh cơ bản nhất của một thiết bị PCI/PCIe. Firmware đọc chúng từ PCI Configuration Space để biết thiết bị có tồn tại không và thuộc nhà sản xuất/model nào.

Vendor ID = 8086
Device ID = 51A4

Ví dụ 8086 là Intel. Nhưng trong debug firmware, điều quan trọng không chỉ là “tra tên device”, mà là hiểu cặp ID này ảnh hưởng tới driver binding và resource flow.

Mục Giá trị Ghi chú
Vendor ID 16-bit Định danh vendor được PCI-SIG cấp.
Device ID 16-bit Định danh model/chip cụ thể do vendor đặt.
0xFFFF No response Vendor ID đọc ra 0xFFFF thường nghĩa là không có device tại BDF.
Subsystem ID Board/OEM variant OS driver đôi khi dùng để phân biệt biến thể platform.

Debug diary: Vendor ID = 0xFFFF

Đây là một trong những dấu hiệu quan trọng nhất khi debug PCIe.

1

Không vội debug driver

Nếu Vendor ID là 0xFFFF, driver chưa có gì để bind.

2

Kiểm tra link/power/reset

Endpoint có được cấp nguồn, thoát reset và link training thành công không?

3

Kiểm tra bridge

Nếu device nằm sau bridge, bus number/window có được cấu hình chưa?

4

Kiểm tra timing

Một số device cần delay hoặc init sequence trước khi config read trả lời.

Driver binding liên quan thế nào?

Một DXE driver có thể không match trực tiếp theo Vendor ID/Device ID nếu nó là generic class driver. Ví dụ Mass Storage driver có thể nhìn Class Code trước. Nhưng với nhiều silicon-specific driver, cặp ID này vẫn là điểm lọc rất quan trọng.

Read Vendor/Device ID

Check Class Code / Subclass

Driver Supported()

Start() nếu match

Checklist khi ID không đúng

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.