在看代码的过程中遇到的几个问题,发邮件问了xf,得到了满意的回答,对xf表示感谢。
这里将问题及答案记录下来,作为参考,蓝色的字体为xf给我的回答。
一、为什么需要xloader,xloader所做的工作为什么不直接就让uboot做,而要单独的分出来呢?
我看了xloader的代码,非常短小,所做的工作也很简单,我说说我对代码的理解,不知道正不正确:
在最初始的时候xloader首先对系统进行了初始化(sys_init和ddr_init),然后就进入Xloader_
Entry函数,从预定的flash地址(UBOOT_
BASE_ADDRESS 0xF8010000)读取uboot image的header,
然后比较读取的header中的magic number与预定的magic number(IH_MAGIC 0x27051956)是否相同,
如果相同则说明在flash中存在uboot的image。
在确定了uboot的存在之后,根据uboot image header中指定的内存地址loadaddress以及数据大
小data_size将uboot载入内存,
然后在执行了Program_Interconnection_
Matrix之后,
就跳转到loadaddress开始执行uboot的代码。
如果xloader仅仅完成了上述的功能的话,那为什么不能直接将xloader的功能就集成到uboot中呢
。
这里将问题及答案记录下来,作为参考,蓝色的字体为xf给我的回答。
一、为什么需要xloader,xloader所做的工作为什么不直接就让uboot做,而要单独的分出来呢?
我看了xloader的代码,非常短小,所做的工作也很简单,
在最初始的时候xloader首先对系统进行了初始化(sys_
如果xloader仅仅完成了上述的功能的话,