1、On Chip Bus Address Map of UCB
In TC3xx platform, UCB address is constant. Tables are below :
2、UCB_BMHDx_ORIG & UCB_BMHDx_COPY(x = 0-3)
2.1 x = 0
其中,BMI如下图,包含了模式选择引脚是否使能、启动区域、锁步核使能及SSW后的校验使能
对于启动地址没什么好讲的,这里重点提下CRC和CRC_N,举个例子方便理解,你现在定了BMI是0xFE,再加上固定格式的Header(0xB359),假定启动地址为0xA0000000,由于小端序的原因,在image文件内,应该如下图所示,CRC计算时,将小端序换成大端序来看,应该是B3 59 00 FE A0 00 00 00(hex),计算CRC32,得到31 79 55 70(hex);CRC_N用0xFF减去前面的字节,如0xFF - 0x31 = 0xCE,因此可以得到CE 86 AA 8F(hex)
PWx和CONFIRMATION一起讲,CONFIRMATION值如下图
根据ORIG和COPY不同的值,SSW会有不同的表现,具体见下表
PWx(0-7),可以用于设置密码,该密码用于UCB_BMHD0_ORIG和UCB_BMHD0_COPY的confirmed状态进行解锁,因为confirmed之后无法修改对应block的UCB,且password会在每次上电后随机变化,防止密码泄露;解锁可以使用Infineon官方提供的MemTool软件,具体方法见2.1.1
2.1.1 Passwords & UCBs
打开MemTool,Connect,从PLASH界面选择进入UCBs
如果之前刷的UCB里没有密码,这里创建密码,注意一定记好你的密码,不然如果confirmed之后就没法unlock了,创建完密码可以勾上Set UCB to confirmed state选项,这样block会被锁上,不允许更改;
写完毕后重新开下UCBs这个界面,可以看到IsConfirmed: y,如果想解锁,可以点击Disable lock按钮,输入密码后点ok即可,此时可以解锁完成,这时点下Erase configuration按钮,清空该UCB即可,退出后再更新UCB即可。
2.2 x=1-3
该部分没有Passwords部分,其他的与x=0差不多,注意由于没有密码, confirmed状态不可逆