ACPI Table Types cần biết

Quicknote giới thiệu các loại ACPI table thường gặp.

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

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

01 ASL

Viết ASL/DSL

DSDT/SSDT chứa device, method, resource.

02 AML

Compile thành AML

ASL compiler tạo binary AML để firmware nhúng vào image.

03 DXE

Patch/Install Table

DXE driver patch field theo board/SKU rồi install ACPI table.

04 OS

Parse Table

OS tạo namespace, device model và power policy.

ACPI table đi từ source tới OS.

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.

Biến note thành bài viết hoàn chỉnh

Notes là nơi ghi nhanh khái niệm.