This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSPM0G1507:创建自定义安全级别 1 限制

Guru**** 2376610 points
Other Parts Discussed in Thread: MSPM0G3507
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1530915/mspm0g1507-creating-custom-security-level-1-restrictions

部件号:MSPM0G1507
Thread 中讨论的其他器件:MSPM0G3507

工具/软件:

我正在开发适用于生产软件的读取/写入闪存保护。 在软件启动时、我会验证 Nonmain 配置在我的软件中是否具有相同的预配置静态结构、如果 CRC(对于 BCR 或 BSL 结构)与静态计算得出的 CRC 不同、则触发非主器件重新刷写、然后执行 BOOTRST。

我建议的读/写保护配置如下:

  • 应用调试策略:已禁用
  • 批量擦除策略:已禁用
  • 恢复出厂设置策略:启用(作为 MAIN 和 NONMAIN 存储器出厂默认值的唯一流式返回路径)
  • TI 失效分析:已启用
  • 对 Nonmain 和 Main 存储器应用写保护。

1 — 我想在重新刷写非主闪存之前添加一个检查是否禁用了 SWDP_MODE(意外地)。 是否可以从用户代码重新刷写 Nonmain 并进行更改  SWDP_MODE 从禁用到启用? 或者、如果  在禁用 Nonmain 的静态写保护(无保护)的情况下将 SWDP_MODE 配置为启用、则完全不允许写入 Nonmain? (G 系列用户指南(链接)中未具体提到这一点 、仅提及不允许通过 SWD 进行任何访问)。

 

2 — 我是否还需要禁用引导加载程序模式 (BSLMODE) 以对器件应用完全读取保护? 除了明确禁用 BSL_PIN_INVOKE 之外、我是否还需要在禁用 BSLMODE 时将其忽略?

3-您认为生产软件的这种启动配置是什么?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引述 userid=“553595" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1530915/mspm0g1507-creating-custom-security-level-1-restrictions 是否可以从用户代码重新刷写 Nonmain 并进行更改  SWDP_MODE 从禁用到启用? [/报价]

    您可以使用 SW 修改 nonmain、并且不存在写保护。

    下面是演示代码:

    C:\ti\mspm0_sdk_2_05_00_05\examples\nortos\LP_MSPM0G3507\driverlib\flashctl_nonmain_memory_write

    请注意修改 NONMAIN、并确保在擦除后对 NONMAIN 进行编程。

    [引述 userid=“553595" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1530915/mspm0g1507-creating-custom-security-level-1-restrictions 或者、如果  在禁用 Nonmain 的静态写保护(无保护)的情况下将 SWDP_MODE 配置为启用、则完全不允许写入 Nonmain? [/报价]

    如果在 SWDP_MODE 设置中完全禁用了 SWD、则可以通过恢复出厂设置和软件来修改 NONMAIN。

    2-我是否还需要禁用引导加载程序模式 (BSLMODE) 以对器件应用完整的读取保护? 除了明确禁用 BSL_PIN_INVOKE 之外、我是否还需要在禁用 BSLMODE 时将其忽略?

    默认情况下、BSL 读取功能处于禁用状态。

    您可以在 BSLMODE 设置中直接禁用 BSL。

    3-您认为生产软件的此类启动配置是什么?

    禁用完全读取方法 BSL、SWD、并将非主器件保持在写保护状态。

    只有恢复出厂设置可以复位器件、这将保持内部硬件测试能力。

    还可以

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Helic Chi

    感谢您的答复!

    我想回顾一下您的答案、因为有些答案对我来说并不清楚。 如果您确认、会很好。

    1 — 即使 SWDP_MODE 是“DISABLED",“,我、我也可以通过软件修改它? (那么,安全级别 2 并不意味着器件被永久锁定,对吧?)

    我始终可以从软件应用程序更改 NON-MAIN。

    2 — 如何将 SWDP_MODE 从禁用更改为通过恢复出厂设置启用? 本用户指南提到、如果启用了 SWDP_MODE、则恢复出厂设置为“无关“、因为在 BSL 也被禁用的情况下无法恢复出厂设置。 您能否证实这一点?

    3-“默认情况下禁用 BSL 读取功能。“:默认情况下、收到的 Evalkit 启用了 BSL 模式、同时启用了 BSL 引脚调用。

    4-“您可以在 BSLMODE 设置中直接禁用 BSL。“:如果我仅禁用 BSL 模式、引脚调用是否会自动忽略?

    5 -“禁用完全读取方法 BSL、SWD 并将非主器件保持在写保护状态。

    只有恢复出厂设置才能复位器件、这将保持内部硬件测试能力。“:这是否意味着我可以通过执行恢复出厂设置来始终从安全级别 2 恢复到安全级别 0?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    1-即使 SWDP_MODE 被“禁用“、我也可以通过软件修改该模式。 (那么安全级别 2 并不意味着设备已永久锁定,对吧?)

    禁用 SWDP_MODE 后、固件或 BSL 仍可以擦除和写入非主存储器。

    对于固件修改、请注意静态写保护功能:

    TRM: 7.4.2 静态写保护

    The static write protection scheme is configured by programming the appropriate bits in the NONMAIN flash
    region, which is read by the boot code before the main application starts. The NONMAIN flash sector can be
    statically write protected, resulting in a system in which the static write protection scheme is fully permanent and
    cannot be modified. If the NONMAIN sector is configured to be statically protected, along with any other flash
    sectors, all statically protect

    我始终可以从软件应用程序更改 Non-main。

    以防未启用非主静态写保护。

    2-如何将 SWDP_MODE 从禁用更改为通过恢复出厂设置启用? 本用户指南提到、如果启用了 SWDP_MODE、则恢复出厂设置为“无关“、因为在 BSL 也被禁用的情况下无法恢复出厂设置。 您能否确认?

    您不能使用 SWD 接口来运行恢复出厂设置、但如果 BSL 仍然启用、则可以通过 BSL 运行出厂设置。

     如果在 NONMAIN 中未启用非主静态写保护、还可以通过固件函数将 SWDP_MODE 擦除和写入到 NONMAIN。

    3-“BSL Read function is default disabled“。:默认情况下、我收到的 Evalkit 启用了 BSL 模式、同时也启用了 BSL Pin 调用。

    有很多 BSL 功能、例如擦除、写入闪存功能、读取功能默认处于禁用状态、其他功能默认处于启用状态。

    4-“您可以在 BSLMODE 设置中直接禁用 BSL。“:如果我仅禁用 BSL 模式、引脚调用是否会自动忽略?

    是的。

    禁用 BSL 后、无法通过 任何调用机制进入 BSL。

    只有恢复出厂设置才能重置器件、这将保持内部硬件测试能力。“:这是否意味着我可以通过执行恢复出厂设置来始终从安全级别 2 恢复到安全级别 0?

    安全级别控制器件访问级别、这在 NONMAIN 配置中进行控制。

    恢复出厂设置会将所有非主值重置为默认值、这将从限制模式中恢复。

    但您至少需要一种方法来控制恢复出厂设置或非主存储器修改能力。