bb-xm revc移植3 之 xload启动过程略解以及bug的彻底起因和解决
困惑于前面的博文中提到的xload启动的问题,这次仔细的看了一下,也从网上学习了一些xload的启动过程。
从内部的fireware启动xload开始,xload首先加载的是x-load.lds:
beagle_revision() == REVISION_XM
这句代码,很重要,也很bug,因为前面函数返回的数值在缺少那个补丁时返回2,后者默认是0,当然不会进行512M的sdram配置处会对后续的uboot造成影响。
。
总结,因此前期xload不能正常启动原因已经彻底定位到s_init中,未完成cpu时钟正常的初始化和sdram初始化,而不是start_armboot函数中。故REVSION_XM=2是最好的解决方法。