1. SDM 概述:Secure Device Manager 在 Agilex SoC FPGA 中的角色与功能架构

Secure Device Manager(SDM)是 Intel Agilex SoC FPGA 系列中一个专用的、不可编程的硬核安全与管理单元。它作为整个芯片的“信任根”与“系统控制器”,独立于 FPGA 架构和 HPS 子系统运行,负责所有安全敏感操作与系统级启动管理。

1.1 SDM 的核心角色

SDM 在 Agilex 器件中承担以下关键职责:

  • 信任根(Root of Trust, RoT):作为硬件信任锚点,所有安全启动链的验证起点。
  • 启动控制器:管理 FPGA 配置、HPS 启动以及双镜像(Active/Inactive)切换逻辑。
  • 固件升级引擎:执行 SDM 固件自身的现场升级,支持回滚保护与镜像验证。
  • 密钥与证书管理:存储、派生和使用加密密钥,处理认证与解密操作。
  • 系统监控与错误报告:监测启动状态、安全事件,并通过专用接口向主机报告。
关键概念: SDM 是 Agilex 中唯一能够访问片上 OTP(一次性可编程)存储和硬核加密加速器的模块。所有对安全敏感资源的访问都必须经过 SDM 授权。

1.2 功能架构概览

SDM 的内部架构由多个功能模块组成,这些模块协同工作以提供安全、可靠的系统管理能力。下表列出了主要功能模块及其职责:

功能模块 职责描述 安全属性
启动 ROM 芯片上电后第一个执行的不可变代码,负责初始化 SDM 并验证第一个外部镜像。 不可更改(Mask ROM)
安全处理器 运行 SDM 固件的专用 CPU 核心,执行安全策略、密钥管理和协议处理。 隔离执行环境
加密加速器 硬件加速的 AES、SHA、ECDSA 等密码学运算单元,用于镜像验证与解密。 防侧信道设计
密钥存储 OTP eFuse 阵列与内部 SRAM,用于存储根密钥、设备密钥和临时会话密钥。 物理防篡改
配置控制器 管理 FPGA 配置数据流(通过 Avalon-ST 或 Avalon-MM 接口)和配置序列。 访问控制
双镜像管理器 维护 Active/Inactive 镜像状态,执行启动尝试计数与自动回滚逻辑。 防砖化保护
系统接口 提供 JTAG、SPI、I2C、UART 等外部通信接口,以及内部 AXI 总线桥接。 接口认证

1.3 SDM 软件架构层次

从软件视角看,SDM 固件栈分为三个层次,每一层都建立在前一层的安全基础之上:

  1. 硬件抽象层(HAL):直接操作 SDM 硬件寄存器,提供底层驱动(如 SPI 控制器、加密引擎、定时器)。
  2. 安全服务层:实现加密库、密钥管理、镜像解析与验证、安全策略执行等核心逻辑。
  3. 应用管理层:处理来自 HPS 或外部主机的命令(如配置请求、固件升级指令、状态查询),并协调底层服务完成操作。
开发提示: 在编写 SDM 固件升级流程时,理解安全服务层中的镜像验证顺序(签名验证 → 哈希校验 → 解密)至关重要。任何一步失败都会触发安全错误处理流程。

1.4 SDM 系统集成关系图

下图展示了 SDM 在 Agilex SoC 中的位置及其与 FPGA Fabric、HPS、外部存储器和调试接口的连接关系:

SDM 在 Agilex SoC 中的系统集成架构 SDM 系统集成架构(Agilex SoC) Secure Device Manager 安全处理器 | 加密加速器 密钥存储 | 配置控制器 双镜像管理器 系统接口(JTAG/SPI/I2C/UART) FPGA Fabric 用户逻辑 / 硬核 IP Avalon-ST/MM 接口 HPS 子系统 ARM Cortex-A76 核心 AXI 总线 / 外设 外部存储器 QSPI Flash / SD Card 存储固件与配置数据 调试与主机接口 JTAG / UART / PCIe 远程升级与调试 配置数据流 启动/控制信号 镜像加载 命令/响应 AXI 桥接 / 片内互联 图例: SDM 核心 FPGA Fabric HPS 子系统 外部存储器 调试/主机接口

1.5 安全启动与双镜像的关系

SDM 的双镜像安全启动机制是其核心安全特性之一。该机制确保即使主镜像损坏或升级失败,系统仍能回滚到已知良好的备份镜像,从而避免设备“变砖”。

安全注意事项: 双镜像配置依赖于 SDM 固件中的启动计数器和镜像状态寄存器。在固件升级过程中,切勿手动擦除或修改 Inactive 镜像区域,否则可能导致双镜像机制失效。

下表总结了 SDM 在双镜像安全启动流程中的关键操作:

启动阶段 SDM 操作 安全校验
上电复位 执行 Boot ROM,初始化安全处理器与加密引擎 Boot ROM 完整性(硬件保证)
镜像选择 读取双镜像状态寄存器,确定 Active 镜像地址 状态寄存器防篡改
镜像验证 加载镜像头部,验证签名(ECDSA)与哈希(SHA-384) 公钥链验证
解密(可选) 使用设备唯一密钥解密镜像数据 AES-256-GCM 解密
配置加载 将有效镜像写入 FPGA 配置逻辑或 HPS 启动内存 访问权限控制
启动确认 等待 HPS 或用户逻辑发送“启动成功”信号,更新镜像状态 看门狗超时回滚

1.6 本章小结