ACPI Namespace là gì?

Quicknote giải thích ACPI namespace.

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

ACPI Namespace là cây object mà OS tạo ra sau khi load DSDT/SSDT. Đây là nơi các device, scope, method, field, name object cùng tồn tại. Khi OS gọi \_SB.PCI0.LPCB.EC0._Q42, nó không đọc một file text; nó đang tìm một object path trong namespace đã merge.

Ví dụ ACPI namespace

\
├─ _SB
│  ├─ PCI0
│  │  ├─ LPCB
│  │  │  └─ EC0
│  │  │     ├─ _HID
│  │  │     ├─ _STA
│  │  │     └─ _Q42
│  │  └─ RP01
│  └─ PWRB
└─ _PR

Vì sao namespace quan trọng?

OS driver bind không chỉ dựa vào PCI ID. Với ACPI device, OS cần path, _HID/_CID, _STA, _CRS và đôi khi _DSM. Nếu một object nằm sai scope, OS có thể không bao giờ gọi method đó.

Mục Giá trị Ghi chú
`_SB` System Bus Scope thường chứa PCI root, embedded device, power button.
`PCI0` PCI root bridge Liên hệ với PCI enumeration và `_CRS`.
`_HID/_CID` Hardware/Compatible ID Giúp OS chọn driver.
`_STA` Device status Present/enabled/visible/functioning.
`_CRS` Current Resource Settings MMIO, IRQ, GPIO, I2C, SPI resource.

Debug diary: device không xuất hiện trong OS

Một pattern thường gặp:

Device có trong source ASL

Nhưng OS không tạo device node

Hãy kiểm tra: table có được load không, object có nằm trong namespace sau khi merge không, _STA có trả bit present không, _HID/_CID có đúng driver OS không.

Namespace checklist

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.