ACPI Table Types cần biết
Quicknote giới thiệu các loại ACPI table thường gặp.
Khi OS boot, nó không hỏi firmware từng câu qua API. Nó đọc một tập bảng ACPI đã được firmware publish. Mỗi table giống một hợp đồng nhỏ: table này mô tả power management, table kia mô tả interrupt controller, table khác mô tả PCI ECAM hoặc debug port.
| Mục | Giá trị | Ghi chú |
|---|---|---|
| RSDP/RSDT/XSDT | Root pointer/table | Điểm vào để OS tìm các ACPI table khác. |
| FADT | Fixed ACPI Description Table | Thông tin power management nền tảng, SMI command port, flags. |
| DSDT | Differentiated System Description Table | AML chính: namespace, device, method mặc định của platform. |
| SSDT | Secondary System Description Table | Bổ sung/override namespace theo CPU, device, SKU, feature. |
| MADT | APIC table | CPU local APIC, I/O APIC, interrupt routing. |
| MCFG | PCIe ECAM | Base address để OS access PCI config space. |
| DBG2 | Debug Port Table 2 | Mô tả UART/debug device cho OS debugger. |
Flow publish table trong firmware
Viết ASL/DSL
DSDT/SSDT chứa device, method, resource.
Compile thành AML
ASL compiler tạo binary AML để firmware nhúng vào image.
Patch/Install Table
DXE driver patch field theo board/SKU rồi install ACPI table.
Parse Table
OS tạo namespace, device model và power policy.
Debug diary
Nếu OS log báo ACPI error, bước đầu tiên không phải sửa driver OS. Hãy dump table trước.
# Linux
sudo acpidump -o acpi.dat
acpixtract acpi.dat
iasl -d DSDT.dat SSDT*.dat
Sau đó so sánh: table có tồn tại không, revision có đúng không, checksum có pass không, AML có method mà OS đang gọi không.
Khi nghi ACPI table sai
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.
DSDT vs SSDT khác nhau thế nào?
Quicknote phân biệt DSDT và SSDT trong ACPI.
AML là gì?
Quicknote giải thích ACPI Machine Language.
ACPI là gì: tại sao firmware không nên tắt máy bằng cách toggle GPIO
Tại sao firmware không nên dùng GPIO trực tiếp để tắt máy? ACPI là hợp đồng firmware viết, OS đọc: table, AML, power state và cách debug sleep/wake sai.
Biến note thành bài viết hoàn chỉnh
Notes là nơi ghi nhanh khái niệm.