"); //-->
这几天看完了linuxprep和bootprep,本来bootprep只是扫了一眼,但是没有找到一个重要的东西,就是MMU是在哪开启的,所以在看完linuxprep和uboot第一部分(.s),又重新一行一行将bootprep看了一遍,结果也没有看到任何关于MMU开启的部分。
下面把bootprep所做的内容整理下来。
1、选择DDR2模式
2、启动PLL
3、初始化EMI引脚
4、选择PLL作为时钟
5、配置VDDA输出电压
6、配置EMI到1116-200模式,并开启EMI控制器
7、测试DDR2,并在OCRAM某处写入DDR2的大小 128M还是64M
8、设置CPU的工作频率
9、之后就是周立功自己添加的一些测试代码
下面是linux_prep的内容整理
1、判断是否是第一次进入linux_prep
2、如果是,调用try_to_resume 判断是否是从睡眠中,如果刚刚唤醒,那么跳转到特定位置,如果不是则返回,本册linux_prep调用结束
3、如果不是第一次进入,那么准备引导linux
4、清楚bss段
5、初始化硬件模块,由于power_prep和boot_prep的存在,实际没有什么初始化的内容,这里初始化了一个AD
6、填充tag,tag是用来传递给linux的参数,这里主要包含
mem_tag,ramdisk_tag,cmdline_tag
7、跳转到linux中
下面附件中有自己添加进去的注释,其中power_prep添加的不是很详细,boot_prep和linux_prep基本是逐行注释的,但是还是有很多不明白的地方,比如:在哪开启的mmu,在哪把sd卡里的内容保存到nandflash里。这个代码其实是不能用的,和内核也不配套,所有我也只能看代码学习一下,等到把uboot这段完全学完了,再对其进行修改和补充。这里只是发上来大家交流学习一下。
要下原版也可以到周立功官网去下载
http://www.zlg.cn/ipc/down/down/id/85.html
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。