可信计算学习笔记 - ACPI

可信计算规范 可信平台主板功能接口【GB/T 29827-2013】

 

 

 说明:

ACPI(Advanced Configuration and Power Interface,‎高级配置和电源接口‎)是在系统启动阶段由BIOS/UEFI收集系统各方面信息并创建的,它大致以树形的组织形式(如下图所示)存在系统物理内存中。

 

 整个ACPI表以RSDP(Root System Descriptor Pointer Table,根系统描述符指针表)为入口点,存放了R(X)DST的地址。RSDT根系统说明表是32位地址,XSDT是64位地址,其功能一样。

每个非叶子节点都会包含指向其他子表的指针,各个表都会有一个表头,在该表头中包含了相应的Signature,用于标识该表,有点类似与该表的ID,除此之外,在表头中还会包含Checksum、Revision、OEM ID等信息。所以查找ACPI表的关键就是在内存中定位到RSDP表

 

对于基于Legacy BIOS的系统而言,RSDP表所在的物理地址并不固定,要么位于EBDA(Extended BIOS Data Area)(位于物理地址0x40E)的前1KB范围内;要么位于0x000E0000 到0x000FFFFF的物理地址范围内。

Linux kernel在启动的时候,会去这两个物理地址范围,通过遍历物理地址空间的方法寻找RSDP表,即通过寻找RSDP表的Signature(RSD PTR)来定位RSDP的位置,并通过该表的length和checksum来确保找到的表是正确的。

注意XDST第一个Entry一定是FADT (Fixed ACPI Description Table,固定ACPI描述表) ,主要放了一些硬件信息和DSDT的地址,其Signature是“FACP”。

 

ACPI是BIOS到操作系统的一系列接口,ACPI接口中包含了很多预定义的表格,这些表格的定义存储在BIOS芯片中,由BIOS生成到内存中提交给操作系统,各种不同的操作系统都可以提取BIOS提交的原始ACPI表格文件,其中最重要的就是DSDT和SSDT表格。

DSDT,Differentiated System Description Table,差分系统描述表,包含大部分硬件信息的主体表格。

SSDT,Secondary System Description Table,辅助系统描述表,包含少部分硬件补充信息的表格。

 

 

RSDP Structure:BIOS刚开机的时候就会加载它到内存1M以内的地方,里面含有一个RSD PTR指针,这个指针指向了RSDP Table

RSDP:包含了其他ACPI表的位置信息,操作系统通过Signature从RSDP表中获取其他所有表的位置。为了兼容ACPI1.0标准而保留。

XSDT:Extended System Description Table,ACPI3.0中取代RSDP,指向了FADT表。

FADT:Fixed ACPI Description Table,包含了一些ACPI固定表的位置,比如DSDT表的位置。其Signature是“FACP”。

RSDT:Root System Description Table,根系统描述表,其中第一个表是XSDT。

FACS:位于ACPI NVS内存空间,保存了S3休眠状态下的恢复指针。

DSDT:ACPI标准中规定了一些硬件和规格,而DSDT就是为了记录每台电脑独特于ACPI的规范部分。换句话说,因为ACPI只规定了最基础的部分,所以DSDT就是整个电脑的配置信息。

SSDT:DSDT的补充部分。加载了DSDT以后会按顺序加载SSDT。SSDT的内容并不能覆盖DSDT,只能作为补充。

APIC:高级可编程中断控制器。可以控制I/O中断和处理器内部中断。包含了处理器APIC和南桥中的I/O APIC。

 

 高级配置和电源接口 (ACPI) 规范 — ACPI 规范 6.4 文档 (uefi.org)

posted @   安蓝Lyn  阅读(871)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示