总的思路:
建立目录:
1.增加board里面的目录,和configs里面的*.h,修改makefile
2.修改board里面目录里的文件,包括文件名和makefile;修改cpu目录里面的u-boot.lds。
3.编译
------------------------
修改中断,时钟和ram配置
1.修改start.s里面的中断代码
2修改start.s里面的时钟入口,并配置堆栈
3.建立clock_init函数,建立时钟,并去掉原有的board_init里面的时钟部分。
4.通过speed.c里面配置get_PLLCLK,get_HCLK,get_PCLK。
5.修改lowleve_init.s里面的ram寄存器
6.修改机器码
7.将board目录里面的TEXT_BASE修改,并注释掉start.s里面的bl cpu_init_crit
8,测试运行
------------------------
增加nand启动
1.建立nand.c支持nand驱动,并编进makefile
2.修改config里面的*.h,支持nand启动
3.在board里面增加nand读写函数
4.修改start.s,启动bl copycode2ram和bl cpu_init_crit
5.还原TEXT_BASE
------------------------
注意事项:
1.在刚得到源码的时候,应该编译一遍,以确定源码和编译器都正常
2.增加的文件一定要记得编入makefile。
3.可以通过make u-boot.dis从而得到反汇编文档,用来对比。
4.text_base在ram下和在nand下地址不一样。
5.start.s默认的配置是在ram下运行
6.对于新增加的文件,要考虑是否放置arm\920t\u-boot.lds里面,尤其是对于汇编文件和start.s直接连接的c文件。因为如果不手动添加进去,有可能进不了前4K。那么就无法启动。