🚀 AMD嵌入式系统启动流程 固件开发实战

📘 30章 · 从入门到实战

🎯 点击章节标题跳转对应课程文件

📁 共30个模块
01
从Ryzen Embedded到EPYC Embedded,了解AMD嵌入式产品线、核心架构特点(Zen系列)及典型应用场景(工业控制、边缘计算、网络设备)。
#处理器
02
从按下电源键到操作系统加载,梳理AMD嵌入式系统的完整启动链路(ROM Stage → BIOS/UEFI → Bootloader → OS)。
#启动链路
03
深入AMD SoC内部固化ROM,分析其如何初始化最小硬件(时钟、电源、内存控制器),并定位下一个启动介质。
#ROM
04
探讨固件在SPI NOR Flash中的布局(BIOS、UEFI、PSP Firmware),以及Flash描述符(Flash Descriptor)的作用。
#Flash
05
介绍AMD PSP(类似ARM TrustZone)的架构,它如何作为信任根(Root of Trust)启动系统。
#安全
06
PSP内部Boot ROM执行的第一段代码,验证PSP固件签名,初始化PSP内部SRAM。
#PSP
07
加载并验证AGESA(AMD Generic Encapsulated Software Architecture)固件,初始化DRAM。
#DRAM
08
PSP完成DRAM初始化后,释放x86核心的复位信号,x86核心开始执行UEFI SEC阶段。
#x86
09
x86核心执行的第一个UEFI阶段,建立临时内存(Cache as RAM),定位并验证PEI阶段固件。
#UEFI
10
初始化关键硬件(CPU、芯片组、内存控制器),发现并报告系统内存,为DXE阶段做准备。
#PEI
11
驱动执行环境,加载并执行大部分硬件驱动(SATA、USB、PCIe等),创建UEFI系统表。
#DXE
12
启动设备选择,根据启动顺序(Boot Order)扫描启动设备,加载操作系统Bootloader。
#BDS
13
Bootloader(如GRUB)接管,加载操作系统内核,UEFI进入Runtime模式提供服务。
#Runtime
14
AGESA的模块化设计(CPU、Memory、FCH),它如何与PSP和UEFI交互完成硬件初始化。
#AGESA
15
FCH负责I/O管理(LPC、SMBus、GPIO、SATA),其初始化流程与常见问题。
#FCH
16
SMU如何管理CPU频率、电压、温度,以及它在启动过程中的角色。
#电源
17
在固件中配置GPIO的复用功能(Muxing)、上下拉、驱动强度,确保外设正常工作。
#GPIO
18
UEFI如何枚举PCIe总线,分配总线号、内存地址、中断资源,以及PCIe Gen4/5的注意事项。
#PCIe
19
SMM的初始化,SMI处理程序注册,以及如何防止SMM漏洞(如Cache Poisoning)。
#安全
20
生成DSDT、SSDT、MADT等ACPI表,向操作系统描述硬件拓扑与电源管理能力。
#ACPI
21
填充SMBIOS结构(Type0-41),提供主板、BIOS版本、内存槽等关键信息给操作系统。
#SMBIOS
22
实现UEFI Capsule Update,支持在操作系统下或UEFI Shell中更新固件。
#更新
23
配置PK/KEK/db/dbx数据库,实现UEFI Secure Boot,以及TPM Measured Boot。
#安全启动
24
使用Super I/O串口输出调试信息,以及JTAG/SWD调试固件启动流程。
#调试
25
UEFI Shell常用命令(memmap、pci、drivers),以及EDK2开发环境搭建。
#Shell
26
如何在EDK2(TianoCore)中创建AMD平台包(Platform Package),配置PCD与FDF文件。
#EDK2
27
减少启动时间(Fast Boot),优化内存训练参数,裁剪不必要的DXE驱动。
#优化
28
No Boot、Post Code卡死、PSP Hang、DRAM Training Failure等问题的诊断方法。
#故障
29
介绍AMD OpenSIL(开源初始化库)和coreboot对AMD平台的支持现状。
#开源
30
CXL(Compute Express Link)、Platform Firmware Resilience(PFR)、机密计算(SEV-SNP)对固件架构的影响。
#前沿