2. SDM 硬件架构:内部模块划分、时钟域与 FPGA Fabric 接口

Secure Device Manager (SDM) 是 Agilex 系列 SoC FPGA 的配置与安全核心。它并非一个简单的状态机,而是一个包含专用处理器、硬件加速器、多种通信外设和严格安全隔离的独立子系统。理解 SDM 的内部模块划分、时钟域结构以及它与 FPGA Fabric 的接口,是掌握双镜像安全启动流程的基础。

2.1 SDM 内部模块划分

SDM 硬件架构可划分为三大功能域:配置与控制域、安全域和通信域。各域之间通过内部总线与硬件 mailbox 进行隔离通信。

功能域 核心模块 主要职责
配置与控制域 配置控制器 (Configuration Controller)、SPI/OSC 时钟管理、复位控制器 管理 FPGA 配置数据流、控制配置序列、处理配置错误、管理全局复位
安全域 安全处理器 (Secure Processor)、硬件加密引擎 (AES/SHA/ECDSA)、密钥存储单元 (eFuse/OTP)、安全状态机 执行安全启动验证、密钥管理、加密/解密配置比特流、防回滚保护
通信域 Mailbox 接口、JTAG 控制器、SPI/I2C 主控制器、SDM-Fabric 桥接器 提供与 FPGA Fabric、外部配置器件 (EPCQ/EPCS)、调试工具 (JTAG) 的数据交换通道
关键设计理念:安全域与配置控制域在物理上隔离。安全处理器拥有独立的内部存储和总线,配置控制器无法直接访问密钥材料。这种“安全隔离”架构确保即使配置流程被破坏,密钥也无法被窃取。

2.2 SPI/OSC 时钟域分析

SDM 内部存在两个独立的时钟域,分别服务于不同的功能阶段:

  • OSC 时钟域 (Oscillator Clock Domain): 由外部晶振或差分时钟源提供,频率通常为 25 MHz 或 50 MHz。该时钟域为 SDM 内部的安全处理器、加密引擎和配置控制器提供基础运行时钟。在 FPGA 未配置前,OSC 时钟是 SDM 唯一可用的时钟源。
  • SPI 时钟域 (SPI Clock Domain): 由 SDM 内部 SPI 控制器产生,用于与外部 SPI 闪存 (EPCQ-Lite/EPCS) 进行数据交换。SPI 时钟频率可通过软件配置,典型值为 40 MHz ~ 108 MHz。该时钟域与 OSC 时钟域是异步的,通过内部异步 FIFO 进行跨时钟域同步。
时钟域隔离的意义:在安全启动的早期阶段(如读取 BootROM、验证配置头),SPI 闪存尚未初始化,SDM 完全依赖 OSC 时钟域运行。只有当 SPI 控制器初始化完成后,SPI 时钟域才被激活。这种设计避免了在安全验证完成前引入不可控的外部时钟源。
SDM 内部模块与时钟域架构 SDM 内部模块与时钟域架构 OSC 时钟域 (25/50 MHz) SPI 时钟域 (40~108 MHz) 配置控制器 配置序列管理 错误检测与恢复 安全处理器 加密引擎 密钥存储 Mailbox 接口 JTAG 控制器 SPI 主控制器 I2C 控制器 异步 FIFO 跨时钟域桥 外部 SPI 闪存 EPCQ-Lite / EPCS

2.3 SDM 与 FPGA Fabric 的接口

SDM 与 FPGA Fabric 之间的通信通过一组专用的硬件接口实现,这些接口在配置完成后仍可被用户逻辑使用。主要接口包括:

  • Mailbox 接口: 这是 SDM 与 Fabric 之间最主要的控制/状态通道。Fabric 中的用户逻辑通过 Avalon-MM 从端口向 SDM 发送 mailbox 命令(如读取温度、触发重配置、查询安全状态)。SDM 通过中断或轮询方式响应。
  • SDM 命令总线 (SDM Command Bus): 一组专用的并行总线,用于传输配置数据、安全命令和调试信息。该总线在配置阶段由 SDM 主动驱动,在用户模式可由 Fabric 逻辑发起请求。
  • 配置数据流接口: 包括比特流加载通道 (Configuration Data Path) 和配置状态监测信号 (nSTATUS, CONF_DONE, INIT_DONE)。这些信号在配置过程中由 SDM 直接控制,配置完成后可释放为通用 I/O。
接口使用注意事项:Mailbox 接口的访问需要遵循特定的协议序列。在安全启动流程中,Fabric 逻辑必须在 SDM 完成所有安全验证并释放 Fabric 复位后,才能通过 Mailbox 发送命令。过早的访问可能导致 SDM 状态机锁定。
SDM 与 FPGA Fabric 接口连接 SDM 与 FPGA Fabric 接口连接 SDM 安全处理器 配置控制器 Mailbox 从机 命令解码器 FPGA Fabric 用户逻辑 (User Logic) Mailbox 主机 (Avalon-MM) 配置状态监测 重配置请求 Mailbox 接口 Avalon-MM 从/主 SDM 命令总线 并行命令/状态 配置数据流 比特流 + 状态信号 nSTATUS / CONF_DONE / INIT_DONE

2.4 关键硬件特性总结

下表总结了 SDM 硬件架构中与双镜像安全启动直接相关的关键特性:

特性 描述 对安全启动的影响
独立安全处理器 SDM 内部集成一个独立的 ARM Cortex-M 级处理器,运行专用固件 在 FPGA 配置前即可执行安全验证代码,不受 Fabric 状态影响
硬件加密加速器 支持 AES-256/GCM、SHA-256/384、ECDSA P-384 等硬件加速 实现比特流实时解密与签名验证,不影响配置吞吐量
双镜像支持 SDM 可管理两个独立的配置镜像区域,并支持回滚机制 当主镜像验证失败时,自动加载备份镜像,实现安全启动容错
eFuse 密钥存储 一次性可编程存储,用于存储根密钥和芯片身份 防止密钥被篡改或读取,建立硬件信任根
Mailbox 中断机制 Fabric 可通过中断方式向 SDM 发送请求 支持运行时安全状态查询和动态重配置
架构设计启示:SDM 的硬件架构体现了“安全启动优先”的设计哲学——在 FPGA Fabric 尚未配置、用户逻辑尚未运行之前,SDM 已经作为一个独立的可信执行环境开始工作。这种架构确保了安全启动流程的完整性和不可绕过性。