大家好,
客户目前正在做CSE密钥加载&擦除(用for循环,先加载密钥再擦除密钥约10000次)测试实验。
但是经过10000次测试后,再次打开MCU电源,密钥无法再加载或擦除,并且CSE_ECR = 0x02报告命令序列错误,并且其他CSE命令发送到CSE时也会出现此错误。CANCEL 是 CSE 唯一会接受且不会出现 0x02 错误的命令。此问题与此工单相同,但没有正确答案: https://community.nxp.com/t5/MPC5xxx/MPC5777C-CSE-Problem/mp/589107#M4239
所以问题是如何处理这个问题,因为在这种情况下密钥不能再被加载或擦除,并且 CSE 命令也不能被 CSE 核心接受。
我比较了正常芯片(在 EVB 上用新芯片替换)和问题芯片,发现 SR_BFN 位和 CSE_ECR 位不同,SR_BFN 位表示安全启动完成,但我没有在问题芯片上启用安全启动。
错误一:
正常一个:
Hi Lukas,
听起来很有道理,如果这一点应该注意Key擦除,那么应该在文档中弄清楚,因为在我们正常的调试过程中,在调用DEBUG_CHAL + DEBUG_AUTH时,我们可能会意外重启或再次打开电路板。
Hi Lukas,
有没有任何文档提到这一点?
最有可能的是,这是由于意外重置或 MCU 电源循环之前的超时时间太短造成的(在闪存上执行的擦除周期越多,擦除闪存所需的时间就越长)。
如果由 DEBUG_CHAL+DEBUG_AUTH 命令触发的擦除操作因意外重置而终止,则会导致 CSE 无法使用并且无法恢复。
无论如何,这不是实际应用中预期的用例。DEBUG_CHAL+DEBUG_AUTH 应该只在开发期间使用,而不是在现场使用。
此致,
Lukas