内核设备树与ACPI对比实战

📚 共计 30 章节
01
课程导论:为什么需要设备描述机制?
从裸机到操作系统的演进,设备描述的必要性。
导论演进
02
设备树基础:DTS、DTC、DTB
三者的关系与编译流程,从源码到二进制。
设备树编译
03
设备树语法:节点、属性、标签、引用
完整解析设备树语法与常用关键词。
语法节点
04
设备树实战:为虚拟ARM平台编写设备树
手写DTS,体验硬件描述到内核识别。
实战ARM
05
设备树中断:interrupt-parent 与级联
interrupt-cells、级联中断控制器详解。
中断级联
06
设备树时钟与GPIO:clocks、gpios
标准用法与绑定示例,时钟与GPIO描述。
时钟GPIO
07
设备树绑定文档:读懂bindings/
如何阅读与编写内核绑定文档。
绑定文档
08
设备树Overlay:动态加载与热插拔
设备树片段、动态加载场景。
Overlay热插拔
09
ACPI基础:ASL、AML、DSDT、SSDT
概念与关系,ACPI 表家族。
ACPIASL
10
ACPI表结构:RSDP、RSDT、FADT、MADT
核心表解析,ACPI 表层次。
表结构MADT
11
ACPI命名空间:\_SB、\_PR、\_TZ
作用域与设备路径,命名空间遍历。
命名空间作用域
12
ACPI方法:_CRS、_STA、_INI、_DSM
标准控制方法详解与使用场景。
方法控制
13
ACPI实战:iASL编译与自定义SSDT
在x86虚拟机上加载自定义SSDT。
实战iASL
14
ACPI资源描述:IRQ、DMA、IO、Memory
资源模板与描述符。
资源模板
15
ACPI电源管理:_PS0、_PS3、_PRx
D-state转换与电源管理集成。
电源D-state
16
ACPI与设备树对比:设计哲学与生态
适用场景、社区生态全面对比。
对比哲学
17
设备树在x86上的应用:UEFI结合
DeviceTree 协议与 UEFI 设备树。
x86UEFI
18
ACPI在ARM64上的应用:ServerReady
SBBR 规范与 ARM64 ACPI 现状。
ARM64ServerReady
19
内核驱动匹配机制:of_match_table
acpi_match_table 优先级与匹配流程。
匹配驱动
20
PCIe枚举:设备树 vs ACPI
PCIe拓扑描述方式对比。
PCIe枚举
21
I2C/SPI设备枚举:子节点 vs ACPI
I2cSerialBusV2 与设备树子节点。
I2CSPI
22
时钟框架:fixed-clock vs LPIT/CPPC
设备树与ACPI时钟描述对比。
时钟LPIT
23
GPIO与中断控制器:gpio-controller vs GpioInt
ACPI GpioInt 与设备树中断控制器。
GPIO中断
24
DMA引擎:dmas属性 vs ACPI DMA描述符
DMA 描述与引擎配置。
DMA描述符
25
电源管理集成:power-domains vs _PDC/_OSC
电源域与ACPI协作。
电源域_PDC
26
设备树调试:dt-validate、dtc警告
内核启动日志解析与验证。
调试dtc
27
ACPI调试:acpidump、iasl反编译
内核ACPI日志层级与工具链。
调试acpidump
28
混合系统实战:DT+ACPI兼容驱动
同时支持设备树和ACPI的驱动编写。
混合兼容
29
社区趋势:RISC-V设备树、ACPI演进
OpenFirmware遗产与未来。
RISC-V趋势
30
课程总结与实战考核:虚拟SoC
分别为虚拟SoC编写设备树和ACPI表。
考核SoC