📚 PCIe热插拔·电源管理
开发实战
🎯 30章 · 完整目录
01
PCIe基础回顾
体系结构
分层模型
配置空间
Capability
02
热插拔概述
概念与意义
SHPC
Native Hotplug
应用场景
03
热插拔硬件架构
电源控制器
指示灯
MRL
Card Present
04
热插拔软件架构
ACPI
Linux pciehp
udev
sysfs
05
热插拔枚举流程
Slot状态机
BAR分配
驱动加载
设备初始化
06
热插拔移除流程
优雅移除
突发移除
驱动卸载
Slot断电
07
电源管理概述
ASPM
D-State
D0/D1/D2/D3
D3cold
08
ASPM详解
L0s/L1
进入退出
L1 Substates
硬件自主切换
09
D-State转换
D0→D3hot
PME_TurnOff
D3cold
BMC带外
10
电源管理事件PME
PME消息
PME Service
中断
WAKE#
11
Linux pciehp驱动分析
驱动初始化
中断处理
Slot操作
enable/disable
12
pciehp核心数据结构
struct slot
struct controller
pcie_device
工作队列
13
pciehp中断处理流程
MSI/MSI-X
ISR
底半部
状态机更新
14
pciehp Slot操作实现
board_added()
remove_board()
电源控制
链路训练
15
pciehp与ACPI交互
_EJ0/_STA
_PS0/_PS3
ACPI Notify
热插拔事件
16
用户空间接口
sysfs
libpci/pciutils
udev规则
power/state
17
热插拔调试方法
lspci -vvv
setpci
dmesg
PCIe分析仪
18
常见热插拔问题
链路训练失败
BAR冲突
驱动顺序
电源时序
19
电源管理调试方法
powertop
ASPM状态
D-State验证
lspci LnkCtl
20
ASPM兼容性问题
厂商差异
链路不稳定
pci=noaspm
内核参数
21
D3cold与BMC协同
BMC主电源
PERST#/WAKE#
Sideband
带外PME
22
热插拔与虚拟化
SR-IOV热插拔
VF限制
PCIe Passthrough
热插拔
23
NVMe热插拔
NVMe驱动
APST
pciehp配合
电源管理
24
GPU热插拔
NVIDIA/AMD
P-State
显示驱动
热插拔实现
25
热插拔测试方法
自动化脚本
压力测试
半插入
电源抖动
26
电源管理测试方法
ASPM吞吐量
D-State延迟
功耗测量
I2C/SMBus
27
PCIe Gen4/Gen5热插拔新特性
Equalization
链路训练挑战
Retimer
Redriver
28
OCP热插拔规范
OCP NIC 3.0
电源管理要求
OCP差异
标准PCIe
29
AI集群热插拔与电源管理
GPU/NPU热插拔
液冷环境
集群电源策略
大规模
30
综合实战项目
测试平台设计
硬件选型
驱动开发
调试工具链