Vietnamese (machine translation)

Lưu ý

Mục đích của file này là để độc giả tiếng Việt có thể đọc và hiểu tài liệu nhân kernel dễ dàng hơn, không phải để tạo ra một nhánh tài liệu riêng. Nếu bạn có bất kỳ nhận xét hoặc cập nhật nào cho file này, vui lòng thử cập nhật file tiếng Anh gốc trước. Nếu bạn thấy có sự khác biệt giữa bản dịch và bản gốc, hoặc có vấn đề về bản dịch, vui lòng gửi góp ý hoặc patch cho người dịch của file này, hoặc nhờ người bảo trì và người review tài liệu tiếng Việt giúp đỡ.

Bản gốc:

ACPI Tables

Người dịch:

Google Translate (machine translation)

Phiên bản gốc:

8541d8f725c6

Cảnh báo

Tài liệu này được dịch tự động bằng máy và chưa được review bởi người dịch. Nội dung có thể không chính xác hoặc khó hiểu ở một số chỗ. Khi có sự khác biệt với bản gốc, bản gốc luôn là chuẩn. Bản dịch chất lượng cao (được review) được đặt trong thư mục vi_VN/.

Bàn ACPI

Kỳ vọng của các bảng ACPI riêng lẻ được thảo luận trong danh sách theo sau.

Nếu số phần được sử dụng, nó sẽ đề cập đến số phần trong ACPI đặc tả nơi đối tượng được xác định. Nếu “Chữ ký được bảo lưu” được sử dụng, chữ ký bảng (bốn byte đầu tiên của bảng) là phần duy nhất của bảng được đặc tả công nhận và bảng thực tế được xác định bên ngoài Diễn đàn UEFI (xem Phần 5.2.6 của thông số kỹ thuật).

Đối với ACPI trên arm64, các bảng cũng thuộc các loại sau:

  • Bắt buộc: DSDT, FADT, GTDT, MADT, MCFG, RSDP, SPCR, XSDT

  • Khuyến nghị: BERT, EINJ, ERST, HEST, PCCT, SSDT

  • Tùy chọn: AGDI, BGRT, CEDT, CPEP, CSRT, DBG2, DRTM, ECDT, FACS, FPDT,

    HMAT, IBFT, IORT, MCHI, MPAM, MPST, MSCT, NFIT, PMTT, PPTT, RASF, SBST, SDEI, SLIT, SPMI, SRAT, STAO, TCPA, TPM2, UEFI, XENV

  • Không được hỗ trợ: AEST, APMT, BOOT, DBGP, DMAR, ETDT, HPET, IVRS, LPIT,

    MSDM, OEMx, PDTT, PSDT, RAS2, RSDT, SLIC, WAET, WDAT, WDRT, WPBT

Đối tượng ACPI

Những kỳ vọng về các đối tượng ACPI riêng lẻ có khả năng được sử dụng là hiển thị trong danh sách sau; bất kỳ đối tượng nào không được đề cập rõ ràng dưới đây nên được sử dụng khi cần thiết cho một nền tảng cụ thể hoặc hệ thống con cụ thể, chẳng hạn như quản lý năng lượng hoặc PCI.

Mô hình sự kiện ACPI

Không sử dụng các thiết bị khối GPE; những thứ này không được hỗ trợ trong phần cứng giảm hồ sơ được sử dụng bởi arm64. Vì không có khối GPE nào được xác định để sử dụng trên ARM nền tảng, các sự kiện ACPI phải được báo hiệu khác nhau.

Có hai tùy chọn: Ngắt có tín hiệu GPIO (Phần 5.6.5) và các sự kiện có tín hiệu ngắt (Phần 5.6.9). Các sự kiện có tín hiệu ngắt là một tính năng mới trong thông số kỹ thuật ACPI 6.1. Một trong hai - hoặc cả hai - có thể được sử dụng trên một nền tảng nhất định và việc sử dụng nền tảng nào có thể phụ thuộc vào các giới hạn trong bất kỳ đưa ra SoC. Nếu có thể, nên sử dụng các sự kiện có tín hiệu ngắt.

Điều khiển bộ xử lý ACPI

Phần 8 của thông số kỹ thuật ACPI đã thay đổi đáng kể trong phiên bản 6.0. Bộ xử lý bây giờ phải được xác định là đối tượng Thiết bị với _HID ACPI0007; làm không sử dụng câu lệnh Bộ xử lý không được dùng nữa trong ASL. Tất cả các hệ thống đa bộ xử lý cũng nên xác định hệ thống phân cấp của bộ xử lý, được thực hiện với Bộ chứa bộ xử lý Thiết bị (xem Phần 8.4.3.1, _HID ACPI0010); không sử dụng bộ tổng hợp bộ xử lý thiết bị (Phần 8.5) để mô tả cấu trúc liên kết bộ xử lý. Mục 8.4 của đặc tả mô tả ngữ nghĩa của các định nghĩa đối tượng này và cách chúng có mối liên hệ với nhau.

Quan trọng nhất, hệ thống phân cấp bộ xử lý được xác định cũng xác định mức năng lượng thấp trạng thái nhàn rỗi có sẵn cho nền tảng, cùng với các quy tắc cho xác định bộ xử lý nào có thể được bật hoặc tắt và các trường hợp điều khiển cái đó. Nếu không có thông tin này, bộ xử lý sẽ chạy trong bất kể trạng thái sức mạnh nào mà UEFI để lại.

Cũng lưu ý rằng các đối tượng Thiết bị bộ xử lý được xác định và các mục trong MADT dành cho GIC dự kiến sẽ được đồng bộ hóa. _UID của thiết bị đối tượng phải tương ứng với ID bộ xử lý được sử dụng trong MADT.

Nên sử dụng CPPC (8.4.5) làm mẫu chính cho bộ xử lý kiểm soát hiệu suất trên arm64. Trạng thái C và trạng thái P có thể có sẵn tại một thời điểm nào đó trong tương lai, nhưng hầu hết các công việc thiết kế hiện tại đều thiên về CPPC.

Hơn nữa, điều cần thiết là ARMv8 SoC cung cấp đầy đủ chức năng triển khai PSCI; đây sẽ là cơ chế duy nhất được ACPI hỗ trợ để kiểm soát trạng thái nguồn CPU. Khởi động CPU thứ cấp bằng ACPI Có thể sử dụng giao thức đỗ xe, nhưng không được khuyến khích vì chỉ hỗ trợ PSCI dành cho máy chủ ARM.

Giao diện bản đồ địa chỉ hệ thống ACPI

Trong Phần 15 của đặc tả ACPI, một số phương pháp được đề cập như các cơ chế có thể để truyền tải thông tin tài nguyên bộ nhớ tới kernel. Đối với arm64, chúng tôi sẽ chỉ hỗ trợ UEFI khởi động bằng ACPI, do đó có UEFI Dịch vụ khởi động GetMemoryMap() là cơ chế duy nhất sẽ được sử dụng.

Giao diện lỗi nền tảng ACPI (APEI)

Các bảng APEI được hỗ trợ đã được mô tả ở trên.

APEI yêu cầu tương đương với SCI và NMI trên ARMv8. SCI được sử dụng để thông báo cho OSPM về các lỗi đã xảy ra nhưng có thể sửa được và thống có thể tiếp tục hoạt động bình thường ngay cả khi có thể bị xuống cấp. NMI là được sử dụng để chỉ ra những lỗi nghiêm trọng không thể sửa được và yêu cầu ngay lập tức chú ý.

Vì không có giá trị tương đương trực tiếp với x86 SCI hoặc NMI nên tay cầm arm64 những điều này hơi khác nhau. SCI được xử lý như một ngắt có mức ưu tiên cao; cho rằng đây là những lỗi đã được sửa (hoặc có thể sửa được) được báo cáo, điều này là đủ. NMI được mô phỏng là ngắt có mức ưu tiên cao nhất có thể. Điều này ngụ ý cần phải thận trọng vì có thể có ngắt ở mức đặc quyền cao hơn hoặc thậm chí ngắt ở cùng mức ưu tiên như NMI được mô phỏng. Trong Linux, điều này không nên xảy ra nhưng người ta nên hãy lưu ý rằng nó có thể xảy ra.

Đối tượng ACPI không được hỗ trợ trên ARM64

Mặc dù điều này có thể thay đổi trong tương lai nhưng có một số lớp đối tượng có thể được xác định, nhưng hiện không được các máy chủ ARM quan tâm chung. Một số đối tượng này có tương đương x86 và thực sự có thể có ý nghĩa trong ARM máy chủ. Tuy nhiên, hiện tại không có phần cứng sẵn có hoặc có thậm chí có thể chưa phải là triển khai không phải ARM. Vì thế, hiện tại họ không được hỗ trợ.

Các lớp đối tượng sau đây không được hỗ trợ:

  • Mục 9.2: thiết bị cảm biến ánh sáng xung quanh

  • Mục 9.3: thiết bị dùng pin

  • Mục 9.4: nắp đậy (ví dụ: nắp máy tính xách tay)

  • Mục 9.8.2: Bộ điều khiển IDE

  • Mục 9.9: Bộ điều khiển đĩa mềm

  • Mục 9.10: Khối thiết bị GPE

  • Mục 9.15: Thiết bị PC/AT RTC/CMOS

  • Mục 9.16: thiết bị phát hiện sự hiện diện của người dùng

  • Mục 9.17: Thiết bị I/O APIC; tất cả GIC phải có thể đếm được thông qua MADT

  • Mục 9.18: thiết bị báo giờ và báo động (xem 9.15)

  • Mục 10: Thiết bị nguồn điện và đồng hồ đo điện

  • Mục 11: Quản lý nhiệt

  • Mục 12: Giao diện bộ điều khiển nhúng

  • Mục 13: Giao diện SMBus

Điều này cũng có nghĩa là không có hỗ trợ cho các đối tượng sau: