本文范围和目的
介绍系统集成商需要避免永久Device锁定的一些注意事项。
还描述了Device可能表现位“锁定”但可能处于可恢复状态的用例。
本文档适用于AURIX系列TC3xx器件
本文档中的术语
Device锁定:AURIX TC3xx Device,其中系统集成商无法在重新编程,调试或执行用户代码。
永久锁定:当唯一的解决方案是替换Device时使用的术语
使用HSM时的注意事项
启用HSM时应遵循的步骤
在AURIX TC3xx侧的应用程序中写入有效的BMHD
确保HSM已禁用
将有效的HSM用户代码和HSM启动代码编程到HSM中
将有效的用户代码编程到AURIX TC3xx中
检查代码是否在正确的地址,没有发生代码被覆盖的情况!!检查Device是否工作
提供HSM必须搜索其引导代码的正确地址(正确设置PROCONHSM CBS寄存器中的BOOTSELx)
启用HSM(通过设置UCB中的配置位HSM BOOTEN位)
将第一个HSM扇区专门用于引导加载程序,并将HSM应用程序代码和数据(加密/解密密钥)加载到剩余的HSM专用扇区中。AURIX TC3xx应用程序代码/数据不得加载到这些扇区中
在开发过程中,强烈建议将UCB确认码设置为“Unlocked”状态0x43211234。当第一组(UCB_HSM COTP 0)处于“Confirmed”状态时,只允许HSM对第二组(UCB_HSMCOTP1)进行编程。当这也被确认时,整个UCB将收到OTP保护,无法编程。
如果可能,请使用基于Socket的板,因为更容易更换设备,开发期间
Note:处于解锁状态的Device***不应该发货
由于HSM而锁定“Device”
如果HSM模块已经使能(HSM BOOTEN=1)并且没有有效代码被编程到HSM PFLASH区域(无效包括“无代码”),则Device是“永久锁定”
如何锁定/解锁调试接口
可以锁定调试接口以防止未经授权访问OCDS(片上调试支持)系统
此任务可以使用Infineon Memtool或第三方编程器来完成。将要求输入256位密码来锁定接口
上电后Reset,访问调试系统将需要先前编程的密码
密码可以由 调试器/Flash工具
使用调试密码锁定调试访问
Note:如果仅将OCDS DIS位设置为1B,并将DBGIFLCK位清除为0B,则即时设置了正确的调试接口密码,SSW也不会处理调试接口的解锁。由调试器工具提供。
此情况,用户必须在AURIX TC3xx应用程序代码中执行禁用保护命令序列(提供正确的密码)
6. 使用调试密码解锁调试访问
PFLASH保护
Individual PFLASH组的扇区可以受到保护以防止写入
PFLASH读保护还可以防止来着调试器或程序员的未经授权的读取
如果启用PFLASH读保护,调试器或编程器将无法读取PFLASH存储器,直到保护被解除
PROCONPF UCB控制PFLASH保护
冷复位会反映PROCONPF UCB的变化
(POR或PORST有效)
7. SSW_TC.H001_EPN
建议在调试保护机制之上添加另一层保护。PFLASH读保护充当第二层
8. PFLASH通过将PROCONPF UCB的RPRO位字段设置为“1b”来启用读保护
9. PROCONPF UCB包含一个密码,可防止对UCB进行未授权的修改
10. Note:如果RPRO = 1b且DBGIFLCK位=0b(默认值),SSW不会处理解锁调试接口,即时提供了正确的调试接口密码(来自调试器工具)
此情况,用户必须在TriCore应用程序代码中执行禁用保护命令序列(提供正确密码)
11. 使用外部工具解锁需要DBGIFLCK位=1b
引导加载程序
引导加载程序需要执行禁用保护序列,以便在编程前暂时解除保护
示例:(DMU命令序列)
3. 成功DMU_HF_PROTECT.PRODISP=1
应用程序
应用程序应执行恢复保护序列以重新锁定保护以防止编程
示例:
3. 成功DMU_HF_PROTECT.PRODISP=0
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/2301_76563067/article/details/132567008
|