介绍
本文档描述了基于STMicroelectronics Arm® Cortex®‑M55核心的STM32N6微控制器(MCU)集群的引导ROM代码,主要从黑盒的角度进行描述,并作为引导ROM代码功能的用户指南。
它提供了引导ROM代码如何与系统中其他组件交互的描述,涵盖了硬件和软件接口。它还描述了引导ROM代码支持的应用程序引导镜像格式。
本文档适用于STM32N6 MCU设备。它侧重于位于STM32N6 MCU引导ROM中的启动固件,该固件在Arm® Cortex®‑M55上执行。
本规范遵循一种常用的语法来表示要求:关键字"MUST," "MUST NOT," "REQUIRED," "SHOULD," "SHOULD NOT," "RECOMMENDED," "MAY," 和 "OPTIONAL"的解释如RFC 2119 [13]中所述。
• MUST:这个词,或者术语"REQUIRED"或"SHALL",意味着定义是规范的绝对要求。
• MUST NOT:这个短语,或者短语"SHALL NOT",意味着定义是规范的绝对禁止。
• SHOULD:这个词,或者形容词"RECOMMENDED",意味着在特定情况下可能有有效理由忽略某个特定项。然而,在选择不同的做法之前,必须完全理解并仔细权衡其含义。
• SHOULD NOT:这个短语,或者短语"NOT RECOMMENDED",意味着在特定情况下,当特定行为是可接受的甚至是有用的时,可能存在有效的理由。然而,在实施任何带有此标签的行为之前,必须完全理解其含义并仔细权衡。
• MAY:这个词,或者形容词"OPTIONAL",意味着一个项目是真正可选的。一个供应商可能会选择包含该项目,因为特定的市场需要它,或者因为供应商认为它增强了产品,而另一个供应商可能会省略相同的项目。不包括特定选项的实现必须准备
好与另一个确实包括该选项的实现进行互操作,尽管可能功能有所减少。同样,确实包括特定选项的实现必须准备好与不包括该选项的另一个实现进行互操作,当然,除了该选项提供的功能外。
一般信息
本文件适用于基于Arm®的STM32N6微控制器。
STM32N6微控制器是基于Arm® Cortex®-M55的微控制器。
引导ROM功能和特性
在STM32N6微控制器或Arm® Cortex®‑M55上电或复位时,首先执行的代码是Arm® Cortex®‑M55的引导ROM代码。此引导ROM代码位于STM32N6片上引导ROM IP中,并通常实现多阶段引导序列的第一阶段。
主要引导ROM代码的功能和特性包括:
• 基本系统初始化
• 检测复位源、特定复位条件和芯片模式
• 从附加的引导存储设备引导,支持各种类型的存储设备
• 通过串行引导接口下载代码并跳转到下载的代码
• 根据USB 2.0 HS实现USB 2.0设备,支持DFU 1.1
• 处理生命周期
• 使用硬件加速器验证签名图像的加密功能
• 支持配置选项(定制),主要通过熔丝
• 支持ST密钥供应
• 支持SSP,OEM密钥供应
• 支持阻塞故障处理
有关更多详细信息,请参阅以下小节。
适用的复位类型
放置在STM32N6微控制器引导ROM功能中的引导ROM代码通常在STM32N6微控制器中的Arm® Cortex®‑M55从复位中释放时执行。根据检测到的复位类型,执行引导ROM代码实现中的不同分支。
引导ROM代码区分以下逻辑复位类型:
• SYSTEM:逻辑系统复位
• ST_KEY_PROVISIONING:带有SFT和PIN复位的ST密钥供应阶段条件的逻辑复位
支持的引导存储设备
引导存储设备是附加到STM32N6微控制器上的外部闪存设备,其中包含第一阶段引导加载程序(FSBL)。引导ROM代码首先将FSBL加载到STM32N6微控制器的内部RAM中,并从那里进行分析。
引导ROM代码支持以下类型的引导存储设备:
• sNOR x4和x8闪存设备
• HyperFlash™闪存设备
• SD存储卡设备(SD规范V6.0)
• 嵌入式存储卡设备的eMMC类型(eMMC规范V5.1)
支持的串行引导接口
引导ROM代码提供了通过串行引导接口下载代码到STM32N6微控制器内部RAM的功能。通常,通过串行引导接口下载代码用于更新存储在附加的闪存类型引导存储设备上的FSBL。
引导ROM代码支持以下类型的串行引导接口:
• 使用三个不同的USART硬件功能实例的USART类型的串行接口
• USB接口(USB 2.0 HS)