APCI ASL

本文深入解析ACPI(高级配置和电源接口)的核心概念,包括ACPI table与AML的区别,以及它们如何在BIOS与操作系统之间建立连接。详细阐述了ACPI如何管理硬件事件,如设备开关、LED控制,并解释了ASL(ACPI System Language)在这一过程中的作用。


ACPI简单来讲就是2个部分:ASL+ACPI table, AML 是bios 中的asl code 按照ACPI AML encoding 编译出来的data block, OS 会对这段data block 解释执行,主要负责把平台上的设备抽象成ACPINameSpace供OS去查询,在设备管理器中看到的设备就是这里来的,另外ASL还提供了操作这些设备的方法,例如LED的开关,设备的开关,LED屏的背光控制等等。
ACPI table的话主要是存一些硬件会用到的资源,例如设备的IO口,memory空间等等,另外,ACPI table中的dsdt也包含了所有ASL code存放的位置,OS籍此找到ASL code。总得来说ASL+ACPI table就是BIOS和OS交互的一个窗口。当BIOS检测到(特定?)硬件事件(如docking/power button pressing)时会通过SCI告知OS,OS根据SCI的Q event号去ASL code中找到相应的代码并执行。ASL code是类似VB的事件处理代码,没有C的main入口。


/* * Intel ACPI Component Architecture * AML/ASL+ Disassembler version 20250404 (32-bit version) * Copyright (c) 2000 - 2025 Intel Corporation * * Disassembly of G:/Jo自用过VTD/自用文件/DMAR表/关内核的采集表/原始文件/DMAR0000823.bin * * ACPI Data Table [DMAR] * * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue (in hex) */ [000h 0000 004h] Signature : "DMAR" [DMA Remapping Table] [004h 0004 004h] Table Length : 00000050 [008h 0008 001h] Revision : 01 [009h 0009 001h] Checksum : 40 [00Ah 0010 006h] Oem ID : "INTEL " [010h 0016 008h] Oem Table ID : "EDK2 " [018h 0024 004h] Oem Revision : 00000002 [01Ch 0028 004h] Asl Compiler ID : " " [020h 0032 004h] Asl Compiler Revision : 01000013 [024h 0036 001h] Host Address Width : 26 [025h 0037 001h] Flags : 01 [026h 0038 00Ah] Reserved : 00 00 00 00 00 00 00 00 00 00 [030h 0048 002h] Subtable Type : 0000 [Hardware Unit Definition] [032h 0050 002h] Length : 0020 [034h 0052 001h] Flags : 01 [035h 0053 001h] Size (decoded below) : 00 Size (pages, log2) : 0 [036h 0054 002h] PCI Segment Number : 0000 [038h 0056 008h] Register Base Address : 00000000FED91000 [040h 0064 001h] Device Scope Type : 03 [IOAPIC Device] [041h 0065 001h] Entry Length : 08 [042h 0066 001h] Flags : 00 [043h 0067 001h] Reserved : 02 [044h 0068 001h] Enumeration ID : 02 [045h 0069 001h] PCI Bus Number : 00 [046h 0070 002h] PCI Path : 1E,07 [048h 0072 001h] Device Scope Type : 04 [Message-capable HPET Device] [049h 0073 001h] Entry Length : 08 [04Ah 0074 001h] Flags : 00 [04Bh 0075 001h] Reserved : 00 [04Ch 0076 001h] Enumeration ID : 00 [04Dh 0077 001h] PCI Bus Number : 00 [04Eh 0078 002h] PCI Path : 1E,06 Raw Table Data: Length 80 (0x50) 0000: 44 4D 41 52 50 00 00 00 01 40 49 4E 54 45 4C 20 // DMARP....@INTEL 0010: 45 44 4B 32 20 20 20 20 02 00 00 00 20 20 20 20 // EDK2 .... 0020: 13 00 00 01 26 01 00 00 00 00 00 00 00 00 00 00 // ....&........... 0030: 00 00 20 00 01 00 00 00 00 10 D9 FE 00 00 00 00 // .. ............. 0040: 03 08 00 02 02 00 1E 07 04 08 00 00 00 00 1E 06 // ................
最新发布
08-30
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值