ARMv8固件架构:服务器系统关键组件与启动流程
自2011年首发以来,ARMv8架构在移动设备中无处不在。ARM CEO预测ARMv8处理器到2020年将占全球市场25%。软件支持随之跟进,继承长期建立的ARM生态特性与原则。
然而服务器领域格局迥异。x86服务器统治数十年,ARMv8仅近年在部分企业细分市场开辟立足点。ARM在该领域的新颖性,加上ACPI、UEFI等关键标准晚期适配,塑造了其固件栈演进。
本文提供ARMv8服务器系统固件架构高层概览。非详尽无遗,读者应注意新处理器发布可能引入不同技术方案,需更新方法。
当前ARMv8服务器固件实现采用模块化,优势在于跨服务器和嵌入式固件复用组件、隔离变更。图1展示模块加载序列与交互。

图1. 模块加载与交互流程. (来源:Auriga)
启动始于低级子系统初始化——RAM、处理器间通信等——由CPU上电后立即在EL3S模式运行的专用模块处理。该组件享最高特权,通常不直接与操作系统交互。
控制权移交ARM可信固件(ATF)模块,同样在EL3S执行。ATF可直接从0级加载器调用,或通过UEFI PEI模块间接调用。ATF链包含多阶段,各在启动特定点激活。
第一阶段BL1配置安全硬件资源。ARMv8基于硬件的受信/非受信内存隔离要求BL1建立安全环境:编程内存和缓存控制器、指定受信/非受信区域、设置DMA过滤规则。仅安全属性匹配的设备可访问对应内存区。BL1还构建MMU页表和异常向量表,特别是安全监控调用(SMC)处理器,可委派控制给后续阶段。
BL1完成后,将BL2加载入RAM并通过ERET指令移交执行。BL2在EL1S运行——降低特权模式,保护BL1数据代码免意外修改。其主角色是加载剩余固件阶段(BL3变体)并移交控制权。
第三阶段最多含三子阶段,但BL3-2常省略。BL3-1是运行时操作系统交互的受信代码。含SMC处理器,实现PSCI接口——电源管理和核心控制标准调用——及厂商特定扩展。BL3-2若存在,在EL1S运行,作为平台事件(如定时器中断、外设信号)轻量监控器。
BL3-3非ATF部分;它是非安全镜像,在EL2模式接管。典型例子包括U-Boot或UEFI环境,均为服务器启动流程标准。
ATF初始化序列总结见图2。

图2. ATF模块初始化. (来源:Auriga)
嵌入式
- 电气控制柜:安全与投资回报的设计要点
- 网络物理系统(CPS):工业4.0的核心驱动引擎
- 四大库存控制体系深度解析:永续制 vs. 定期制及其配套管理技术
- 物料清单(BOM)创建全攻略:从入门到精通制造管理核心
- 掌握控制系统设计:从基础面板到先进可靠方案
- emtrion 推出 emSTAMP-Argon:双核 STM32MP1 模块,面向高性能工业应用
- MicroMax M-Max 400 RC:铁路联锁系统用坚固继电器接口
- 掌握电液伺服阀设计要义:七大核心考量原则
- 驾驭SaaS:在拥抱云端的同时保持掌控的策略
- 英国云计算热门岗位 TOP 10
- 边缘计算:驱动未来智能网络的架构
- 21世纪系统集成商:弥合技能鸿沟,驱动数字化转型