s3c6410 SD卡启动的Secure mode

发布时间:2024-09-19  

前段时间我新来的同事弄SD卡启动的时候,按照三星Internal ROM Booting的Application Note弄得,也和网上的文章写的一样,irom启动完了以后开始u-boot的汇编初始化的代码,配置PLL、配置RAM...,然后到C语言段的时候开始调用irom自己提供的CopyMMCtoMem函数将代码复制到内存开始运行。但无论如何跑不起来,还报了4.2 Verification failure of BL1 integrity的错误。后来找了好久,用Jlink连上以后一步一步的看irom的代码才发现了是启动时候的Secure mode的问题。手册里面对于这方面什么都没写,就把我们知道的一点东西写一下吧。


在IROM的手册里面 1.1 Feature 里面写到:


Secure mode support(Verify Integrity of Bootloader for all boot-up device)


但具体是什么他里面没有说。但按后来看irom的代码来看,应该是包括在 2.3 iROM(BL0) boot-up diagram里面画的 Verify integrity of BL1 Success? 这一步的判断里面。


具体检验的内容是什么呢?在 2.7.1 SD/MMC Device Boot Block Assignment 里面的提到的倒数第二个块是 Signature,具体作用就写了一句,也不知所云。

- One block has to be assigned for signature which is located at offset [LAST – 2]


根据我们跟踪Irom汇编的代码的结果来看,在6410手册里面有一段寄存器 0x7E00_D000 ~ 0x7E00_DFFF,他写的功能是 E-Fused register of the SECURE KEY。具体内容和功能也没讲。但我们看到在启动的时候,他会判断这段寄存器区域的前16 Bytes是否为0,如果不为0的话,他会将这段寄存器和上面提到的SD卡里面的Signature区域的数据做一个校验,校验算法具体就没看了。当校验通过才会运行BL1,否则会报报 4.2 Verification failure of BL1 integrity的错误。如果这段区域为0,则不校验,直接运行BL1。


我们的板子就是这出的错。当时我们很奇怪,为啥我们买的开发板能跑呢?我们新买的片子,又没做任何设置,跟别说刻意去设置这种不知道的寄存器了。后来找了开发板的技术支持,他们也没接触过。发贴也没人回。但我们很偏向于是我们自己的板子6410的某个引脚的上电的初始配置和开发板的不一致。但也不可能全部对一遍吧。后来同事在搜索手册的时候有了一个很意外的发现。


他根据0x7E00_D000寄存器说明里面出现的e-fuse搜索6410的手册,搜efuse搜到htr00,其中的说明如下:

htr00(pvhtbr00_efuse)      1.8V~3.3V wide range analog bi-direction path-                            through PAD without resistor for efuse memory

再搜htr00搜到XEFFVDD的管脚。


我们的板子的这个脚是10K的,开发板是10欧的。直接把电阻短了,在u-boot下读这段寄存器的值,大部分时间为0。再从SD卡启动,OK了。


htr00的描述我们不是很明白,感觉可能是里面是个AD,通过AD采样XEFFVDD上的电压,进行离散化以后产生的0x7E00_D000的值。我们最后把XEFFVDD直接对地短路了,有的时候值也不是全零,具体原因不详。但至少它可以启动了。


这很多东西都是猜测了,写出来希望能给以后做个参考吧。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>