PCI Device Path Node là gì?

Quicknote PCI Device Path Node là gì?

3 phút đọc
Đọc bằng Tiếng Việt English 日本語
Boot / NVRAM / Device Path Terms cover

PCI Device Path Node mô tả vị trí của một function trên PCI/PCIe topology. Nó thường xuất hiện ở đoạn đầu của device path, trước khi firmware đi tiếp tới SATA, NVMe, USB host controller, network controller hoặc một PCI option ROM.

Điểm dễ nhầm nhất: trong Pci(Device, Function), hai giá trị này không phải Vendor ID/Device ID. Chúng là device numberfunction number trên bus hiện tại.

Cấu trúc đọc nhanh

Mục Giá trị Ghi chú
Device PCI device number Thường hiển thị dạng hex, ví dụ `0x17`. Đây là vị trí trên bus, không phải mã hãng.
Function PCI function number Một device có thể có nhiều function: 0, 1, 2...
Ngữ cảnh Bus hiện tại Muốn biết bus nào, phải đọc các node trước nó như PciRoot hoặc PCI bridge.

Ví dụ:

PciRoot(0x0)/Pci(0x17,0x0)

Có thể hiểu là: từ PCI root bridge 0, đi tới device 0x17, function 0. Trên nhiều platform Intel, vị trí kiểu này có thể là storage controller, nhưng không nên đoán cứng. Muốn chắc chắn, hãy đối chiếu với PCI enumeration log, class code hoặc output như pci trong UEFI Shell.

Nó nằm ở đâu trong boot path?

01 ACPI

PciRoot

Root bridge được mô tả bởi firmware/ACPI.

02 PCI

Pci(Device, Function)

Chọn đúng device/function trên bus.

03 CTRL

SATA/NVMe/USB/NIC

Controller phía sau PCI function.

04 BOOT

Media/File

Đi tiếp tới partition và file boot loader.

PCI node giúp firmware đi từ root bridge tới controller trước khi chạm tới disk, USB hay network.

Ví dụ debug thực tế

Giả sử Boot#### chứa:

PciRoot(0x0)/Pci(0x14,0x0)/USB(...)/HD(...)/File(\EFI\BOOT\BOOTX64.EFI)

Pci(0x14,0x0) có thể là USB xHCI controller. Nếu BIOS update làm topology hoặc enable/disable controller thay đổi, boot option cũ vẫn còn trong NVRAM nhưng đường đi tới USB device có thể không còn khớp.

Một lỗi khác hay gặp là nhầm Pci(0x17,0x0) với Vendor ID/Device ID. Khi tra datasheet hoặc log PCI, hãy tìm theo BDF/topology trước, rồi mới xem Vendor ID/Class Code để biết đó là controller gì.

Khi nào cần để ý PCI node?

  • Boot option trỏ tới ổ SATA/NVMe/USB nhưng sau BIOS update không boot nữa.
  • Một controller bị disable trong setup, nhưng Boot#### vẫn còn.
  • Platform có nhiều root port/bridge, device path cũ stale sau khi đổi slot PCIe.
  • Debug driver binding: controller có xuất hiện trong handle database nhưng path không như expected.

Checklist đọc PCI node

Ghi nhớ nhanh

PCI node không nói “đây là Intel SATA controller”. Nó chỉ nói “đi tới device/function này trên PCI topology”. Ý nghĩa thật sự của function đó phải đọc từ PCI enumeration.

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.