关于Boot from USB的问题,基于三星4412
本文是原「蜗窝讨论区」的历史存档(2016-10-18),来自版块「X Project」,共 7 帖。讨论区已停止服务,此处仅供查阅。
三星4412的启动机制
iROM 通过OM配置sd/mmc/usb方式加载BL1,并且BL1文件头经过某种加密,后来找到了制作BL1的工具但是不清楚具体如何加密。
那么BL1就应该是实现将uboot.bin下载emmc或者内存中吧?并没有找到三星关于USB下载的资料,那岂不是要自己实现一套USB下载的协议吗?
刚又看了一下三星的dnw,似乎可以用上。
BL1是指uboot-spl.bin,s5pv210需要加上16k的校验头。BL0会去验证这个校验头。我觉得4412应该也是类似的。 我觉得你可以先用SD卡的方式,samsung把SD卡读写接口都做好了,代码固化在了ROM上,文档上应该可以找得到。 BL1放在SD卡的第一个扇区上,BL0会自动把这个扇区的内容加载到BL1上。
ooonebook 写道: BL1是指uboot-spl.bin,s5pv210需要加上16k的校验头。BL0会去验证这个校验头。我觉得4412应该也是类似的。 我觉得你可以先用SD卡的方式,samsung把SD卡读写接口都做好了,代码固化在了ROM上,文档上应该可以找得到。 BL1放在SD卡的第一个扇区上,BL0会自动把这个扇区的内容加载到BL1上。
SD卡启动是ok的。
BL0对于BL1的校验方式和s5p210并不清楚,官方手册也没有提到。 网上流传的资料都是编写BL2用SD卡启动,BL1(官方提供的二进制文件,不提供源码)对BL2的校验方法是知道的,移植好的Uboot都采用这种方式。
如果想从USB下载就必须先搞定BL1,唯一知道的资料对文件头的加密也没弄清楚,感觉特别不爽。
zmnqaz 写道:
ooonebook 写道: BL1是指uboot-spl.bin,s5pv210需要加上16k的校验头。BL0会去验证这个校验头。我觉得4412应该也是类似的。 我觉得你可以先用SD卡的方式,samsung把SD卡读写接口都做好了,代码固化在了ROM上,文档上应该可以找得到。 BL1放在SD卡的第一个扇区上,BL0会自动把这个扇区的内容加载到BL1上。
SD卡启动是ok的。
BL0对于BL1的校验方式和s5p210并不清楚,官方手册也没有提到。 网上流传的资料都是编写BL2用SD卡启动,BL1(官方提供的二进制文件,不提供源码)对BL2的校验方法是知道的,移植好的Uboot都采用这种方式。
如果想从USB下载就必须先搞定BL1,唯一知道的资料对文件头的加密也没弄清楚,感觉特别不爽。
从这个文件里面看到的: S5PV210_iROM_ApplicationNote_Preliminary_20091126.pdf UART/USB启动,不需要header,你可以试试。
zmnqaz 写道:
ooonebook 写道: BL1是指uboot-spl.bin,s5pv210需要加上16k的校验头。BL0会去验证这个校验头。我觉得4412应该也是类似的。 我觉得你可以先用SD卡的方式,samsung把SD卡读写接口都做好了,代码固化在了ROM上,文档上应该可以找得到。 BL1放在SD卡的第一个扇区上,BL0会自动把这个扇区的内容加载到BL1上。
SD卡启动是ok的。
BL0对于BL1的校验方式和s5p210并不清楚,官方手册也没有提到。 网上流传的资料都是编写BL2用SD卡启动,BL1(官方提供的二进制文件,不提供源码)对BL2的校验方法是知道的,移植好的Uboot都采用这种方式。
如果想从USB下载就必须先搞定BL1,唯一知道的资料对文件头的加密也没弄清楚,感觉特别不爽。
不好意思前面说错了,头部是16B,我记得当时看过4412和210给uboot-spl加校验头部的方法是一样的,uboot里面已经做好了脚本的。 确实用SD卡是比较简单点,所以你可以先用SD卡启动的方式。先不要纠结USB下载,先保证uboot-spl是可以被BL0校验成功的。 然后再考虑通过usb把uboot-spl加载到ram相应位置上。 总之个人觉得先不要考虑那么多,那实现project-X项目上编译出来uboot-spl.bin在你的机子上可以成功跑起来。 参考代码中应该有裸机代码,一般也是放在IRAM里面实现,也是有加头部的,你也可以参考一下参考代码里面裸机bin编译过程是怎么加头部的。
ooonebook 写道:
zmnqaz 写道:
ooonebook 写道: BL1是指uboot-spl.bin,s5pv210需要加上16k的校验头。BL0会去验证这个校验头。我觉得4412应该也是类似的。 我觉得你可以先用SD卡的方式,samsung把SD卡读写接口都做好了,代码固化在了ROM上,文档上应该可以找得到。 BL1放在SD卡的第一个扇区上,BL0会自动把这个扇区的内容加载到BL1上。
SD卡启动是ok的。
BL0对于BL1的校验方式和s5p210并不清楚,官方手册也没有提到。 网上流传的资料都是编写BL2用SD卡启动,BL1(官方提供的二进制文件,不提供源码)对BL2的校验方法是知道的,移植好的Uboot都采用这种方式。
如果想从USB下载就必须先搞定BL1,唯一知道的资料对文件头的加密也没弄清楚,感觉特别不爽。
不好意思前面说错了,头部是16B,我记得当时看过4412和210给uboot-spl加校验头部的方法是一样的,uboot里面已经做好了脚本的。 确实用SD卡是比较简单点,所以你可以先用SD卡启动的方式。先不要纠结USB下载,先保证uboot-spl是可以被BL0校验成功的。 然后再考虑通过usb把uboot-spl加载到ram相应位置上。 总之个人觉得先不要考虑那么多,那实现project-X项目上编译出来uboot-spl.bin在你的机子上可以成功跑起来。 参考代码中应该有裸机代码,一般也是放在IRAM里面实现,也是有加头部的,你也可以参考一下参考代码里面裸机bin编译过程是怎么加头部的。
哈哈,功夫不负有心人,刚才找到制作那个工具的作者,说是通过逆向找到了加密方法。 你说的一样的应该是BL2的校验。
