ZHCAC19A January   2023  – December 2025 MSPM0C1105 , MSPM0C1106 , MSPM0G1105 , MSPM0G1106 , MSPM0G1107 , MSPM0G1505 , MSPM0G1506 , MSPM0G1507 , MSPM0G1518 , MSPM0G1519 , MSPM0G3105 , MSPM0G3106 , MSPM0G3106-Q1 , MSPM0G3107 , MSPM0G3107-Q1 , MSPM0G3505 , MSPM0G3506 , MSPM0G3506-Q1 , MSPM0G3507 , MSPM0G3507-Q1 , MSPM0G3518 , MSPM0G3518-Q1 , MSPM0G3519 , MSPM0G3519-Q1 , MSPM0L1105 , MSPM0L1106 , MSPM0L1227 , MSPM0L1227-Q1 , MSPM0L1228 , MSPM0L1228-Q1 , MSPM0L1303 , MSPM0L1304 , MSPM0L1304-Q1 , MSPM0L1305 , MSPM0L1305-Q1 , MSPM0L1306 , MSPM0L1306-Q1 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346 , MSPM0L2227 , MSPM0L2227-Q1 , MSPM0L2228 , MSPM0L2228-Q1

 

  1.   1
  2.   摘要
  3.   商标
  4. 1引言
    1. 1.1 关键概念
    2. 1.2 网络安全目标
    3. 1.3 平台信息安全机制
  5. 2器件安全模型
    1. 2.1 器件标识
    2. 2.2 启动时的初始条件
    3. 2.3 引导配置例程 (BCR)
    4. 2.4 引导加载程序 (BSL)
    5. 2.5 启动流程
    6. 2.6 用户指定的安全策略
      1. 2.6.1 引导配置例程 (BCR) 策略
        1. 2.6.1.1 串行线调试相关策略
          1. 2.6.1.1.1 SWD 安全级别 0
          2. 2.6.1.1.2 SWD 安全级别 1
          3. 2.6.1.1.3 SWD 安全级别 2
        2. 2.6.1.2 引导加载程序 (BSL) 启用/禁用策略
        3. 2.6.1.3 闪存保护和完整性相关策略
          1. 2.6.1.3.1 锁定应用 (MAIN) 闪存
          2. 2.6.1.3.2 锁定配置 (NONMAIN) 闪存
          3. 2.6.1.3.3 验证应用 (MAIN) 闪存的完整性
        4. 2.6.1.4 引导加载程序 (BSL) 安全策略
          1. 2.6.1.4.1 BSL 访问密码
          2. 2.6.1.4.2 BSL 读取策略
          3. 2.6.1.4.3 BSL 安全警报策略
      2. 2.6.2 客户安全代码 (CSC) 安全策略
        1. 2.6.2.1 CSC 强制存储体交换
        2. 2.6.2.2 CSC 强制防火墙
        3. 2.6.2.3 CSC 密钥写入 KEYSTORE
      3. 2.6.3 配置数据错误抵抗
        1. 2.6.3.1 由 CRC 支持的配置数据
        2. 2.6.3.2 16 位关键字段模式匹配
  6. 3安全启动
    1. 3.1 安全处理环境隔离
    2. 3.2 客户安全代码 (CSC)
      1. 3.2.1 安全启动流程
      2. 3.2.2 闪存映射
      3. 3.2.3 特性
        1. 3.2.3.1 CMAC 加速
        2. 3.2.3.2 非对称验证
        3. 3.2.3.3 KEYSTORE 及防火墙
        4. 3.2.3.4 CSC 性能
      4. 3.2.4 快速入门指南
        1. 3.2.4.1 环境设置
        2. 3.2.4.2 分步指导
        3. 3.2.4.3 CSC NONMAIN 配置
        4. 3.2.4.4 定制 CSC 示例上的更改
    3. 3.3 启动映像管理器 (BIM)
      1. 3.3.1 安全启动流程
      2. 3.3.2 闪存映射
      3. 3.3.3 快速入门指南
  7. 4安全存储
    1. 4.1 闪存写保护
    2. 4.2 闪存读取-执行保护
    3. 4.3 闪存 IP 保护
    4. 4.4 数据存储体保护
    5. 4.5 安全密钥存储
    6. 4.6 SRAM 保护
    7. 4.7 硬件单调计数器
  8. 5加密加速
    1. 5.1 硬件 AES 加速
      1. 5.1.1 AES
      2. 5.1.2 AESADV
    2. 5.2 硬件真随机数发生器 (TRNG)
  9. 6常见问题解答
  10. 7总结
  11. 8参考资料
  12. 9修订历史记录

分步指导

如果设置得很好,请按照以下步骤在 MSPM0 SDK CSC 示例上进行实践(以 MSPM0G351x 器件为例):

  1. 从 SDK 路径 <mspm0_sdk_path>\examples\nortos\<mspm0_device>\boot_manager\customer_secure_code 示例和 customer_secure_sample_image 示例导入 CCS 工作区。
  2. 编译 customer_secure_code 示例及 customer_secure_sample_image 示例。对于样本映像示例(同时针对 EITHER_SLOT_BLUE 和 EITHER_SLOT_GREEN 配置进行构建),您可以看到工程中生成的相应调试文件夹。

     CSC 安全示例映像构建配置

    图 3-5 CSC 安全示例映像构建配置
  3. 打开 UNIFLASH 软件编程工具 | TI.com 工具,将 PC 连接到 MSPM0 启动板并恢复出厂设置。

     通过 Uniflash 恢复出厂设置

    图 3-6 通过 Uniflash 恢复出厂设置
  4. 将闪存设置配置为仅擦除 MAIN 和 NONMAIN 必要扇区,该选项仅擦除映像输出文件中使用的闪存区域。

     Uniflash 中的 CSC 闪存设置

    图 3-7 Uniflash 中的 CSC 闪存设置
  5. 将以下文件加载到 MSPM0 器件中,然后对器件进行下电上电(或按启动板中的 NRST 按钮),您可以看到红色 LED 亮起 2s(CSC 执行以进行图像验证),然后蓝色 LED 闪烁(程序在物理 Bank1 中执行)。

     通过 Uniflash 加载 CSC 映像

    图 3-8 通过 Uniflash 加载 CSC 映像
    • \customer_secure_code_LP_MSPM0G3519_nortos_ticlang\Debug\customer_secure_code_LP_MSPM0G3519_nortos_ticlang.out:它包含用于物理 Bank0 和必要 NONMAIN 配置的 CSC 固件。
    • \customer_secure_code_LP_MSPM0G3519_nortos_ticlang\Debug\customer_secure_code_LP_MSPM0G3519_nortos_ticlang-bank1-0x40000.bin:它是物理 Bank1 的 CSC 固件副本,应位于物理 Bank1 的起始地址(MSPM0G3519 器件为 0x40000)。
    • \customer_secure_sample_image_LP_MSPM0G3519_nortos_ticlang\EITHER_SLOT_BLUE\sample_image_signed_0x4800_v1_0_0_blue.txt:这是应用程序映像,从物理 Bank1 0x44800 地址开始。
  6. 使用 Uniflash 将更高版本的 GREED 应用程序映像更新到器件,然后按 NRST 按钮。您可以看到,在红色 LED 点亮 2s 后,绿色 LED 闪烁。CSC 不考虑映像如何加载到闪存中,此步骤仅展示了一种通过 Uniflash 将固件直接加载到 MCU 逻辑 Bank1 的方法。

     通过 Uniflash 更新固件

    图 3-9 通过 Uniflash 更新固件