核心观点与关键数据
- 主题:使用英特尔 FSP 和 Coreboot 在 Xeon OCP 平台上启用 RAS(可靠性、可用性和可维护性)。
- 背景:随着现代服务器/云服务对可靠性要求的提升(如 4 个 9 和 5 个 9),RAS 功能变得至关重要。
- 挑战:在非 UEFI 环境下(如使用 Coreboot),传统的硅特定 SMM/运行时模块与 FSP 集成存在困难,主要问题包括:
- 缺乏统一的可再分发硅 SMM/运行时模块支持多样化引导加载程序。
- CPU、内存、芯片组初始化在 PEI 阶段由 FSP 包含,但硅特定模块在 DXE 阶段调度,与 UEFI 不兼容。
- UEFI DXE/SMM 模块无法无缝集成。
- 解决方案:提出利用英特尔 FSP 启用独立 MM/RAS 的解决方案,主要组件包括:
- RAS 模块:将 DXE/SMM RAS 驱动程序转换为 PEIM 和独立 MM。
- MM 核心/框架:支持启动独立 MM 模块。
- 晚 MM 加载器:在稍后的引导阶段调度 OEM MM 模块。
- 运行时 MM 更新:引入运行时更新框架接收新的 MM 模块。
- 封装:将独立 MM 核心、RAS 模块(PEIM、独立)、MM 延迟加载程序、运行时更新框架封装到 Intel® FSP 二进制文件中。
- 技术实现:
- FSP API:利用 FSP API 接口在 Coreboot 框架下实现。
- Coreboot:作为引导加载程序,通过 HOB 接收并构建 ACPI 记录。
- 操作系统:LinuxBoot(作为预操作系统有效负载)或 Ubuntu(作为目标操作系统),通过 SMI 触发 RAS 功能。
- 演示配置:
- 用例:RAS 地址转换处理程序。
- 硬件平台:Xeon OCP 平台。
- 引导流程:FSP 二进制(支持 API)+ Coreboot + Linux Boot。在引导时和运行时阶段执行检查点。
- 验证步骤:
- 在 Coreboot 中确认 RAS 相关 ACPI 表按预期显示。
- 在 Linux Boot 中确认 RAS 相关 ACPI 表按预期公开。
- 确认 ACPI 表正确暴露。
- 通过 SMI 触发地址转换处理程序,确认其按预期工作。
研究结论
该方案成功展示了如何通过整合 FSP、Coreboot 和独立 MM 技术,在非 UEFI 环境下(如 Xeon OCP 平台)启用 RAS 功能,解决了传统方案中的集成障碍,为开放系统固件环境下的服务器可靠性提供了可行的技术路径。
行动呼吁