对于大规模生产的产品,使用 Keywriter 的典型启动流程是存储器 A 启动模式和存储器 B 启动模式。
下面我们举例说明:
- 使用 SD 卡作为启动介质 (1),并将 Keywriter 启动映像存储在 SD 卡上。使用 Nor 闪存作为启动介质 (2),并在出厂时离线烧录服务启动映像和应用程序。
- 将首次上电时的启动模式设置为 SD 卡。根据启动模式设置,启动 ROM 从 SD 卡读取 Keywriter,将客户密钥烧录到芯片的 OTP 区域,并将芯片从 HS-FS 转换为 HS-SE。
- 断电并将启动模式切换为 OSPI 启动模式。
- 再次上电,启动 ROM 从 OSPI Nor 闪存读取服务启动导映像。由于启动映像经过签名和加密,因此启动 ROM 使用启动 ROM 的 X509 标头验证并解密签名,然后正常启动内核。
该设计相对成熟,通过在单次运行中切换启动模式,避免了许多可靠性和现场运行问题。
然而,需要与两种存储器启动模式兼容,这增加了 BOM 成本和设计复杂性。第二个问题是切换启动模式需要使用额外的夹具,使生产线复杂化。此外,这种启动模式切换通常需要人工干预,这进一步降低了生产线效率并提高了问题发生率。