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.
工具与软件:
尊敬的 TI 工程师:
我们将 MCUBoot 用于引导加载程序。 对于以下功能组合、我们是必需的:
我们希望使用 MCUBOOT_SWAP_USE_MOVE 以及 MCUBOOT_DELAY_PROTECTION。
但是、根据 mcuboot 文档、不支持它。 (软件防回滚不适用于移动、仅适用于 MCUBOOT_OVERRIDE_ONLY。
我知道、MCUBOOT_DIRECT_XIP 在防回滚方面运行良好。 因为它始终会获取要执行的有效最高版本。
你有什么建议可以解决我们的痛苦吗?
我看到 mcuboot 文档提到了 MCUBOOT_HW_ROLLBAL_PROT。 我看了相关章节、不过现在 TI 芯片似乎没办法安全地去实施单调递增的计数器。
非常感谢您的帮助!
您好、Tiger、
您能否说明您使用的 SDK 版本以及您参考的示例或文档? 以便更好地了解您的要求。
此致、
Pengfei
mspm0_sdk_2_02_00_05我发现最新的 SDK 之间没有区别。
我们使用 MSPM0G3507示例工程作为参考。 我的问题实际上与 MCUBOOT 有关。 我问 Chatgpt,他们说,我需要改变 boot_go ()函数的实现与以下类似(未经验证,可能出错)
int boot_go(struct boot_loader_state *state, struct boot_rsp *rsp) { int swap_type; swap_type = boot_validated_swap_type(state); if (swap_type == BOOT_SWAP_TYPE_NONE) { // Compare versions before deciding to swap const struct image_version *primary_ver, *secondary_ver; primary_ver = &state->imgs[BOOT_CURR_IMG(state)][BOOT_PRIMARY_SLOT].hdr.ih_ver; secondary_ver = &state->imgs[BOOT_CURR_IMG(state)][BOOT_SECONDARY_SLOT].hdr.ih_ver; if (boot_version_cmp(secondary_ver, primary_ver) > 0) { BOOT_LOG_INF("Secondary image is newer. Proceeding with swap."); swap_type = BOOT_SWAP_TYPE_TEST; } else { BOOT_LOG_INF("Primary image is up-to-date. No swap needed."); } } // Existing swap logic... }
关于 MCUBOOT_HW_ROLLBAL_PROT、我 曾引用: https://docs.mcuboot.com/design.html#hw-downgrade-prevention
但目前的 M0G 似乎没有任何 OTP (ONT 时间程序)区域或类似的方法。
您好、Tiger、
我需要一些时间来深入了解这份文件、我将在本周之前提供反馈意见。
此致、
Pengfei
您好、Tiger、
MSPM0G3507器件不容易支持降级预防和交换机制的功能。 您在第一个 POST 中列出的当前 MCU 引导限制是正确的。
您可以通过使用器件上的安全功能执行有效的一次性编程、但这更接近整个器件上的 OTP、而不是单个部分。
我们的 G3519器件具有更多功能、具备双组、可轻松实现您请求的启动功能、并包含单调计数器。 使用 G3519、您可以拥有2个映像、并可更新和交换映像、从而通过硬件保持寻址。
此致、
Luke