init_fnc_t *init_sequence[] = {
cpu_init,
board_init,
interrupt_init,
env_init,
init_baudrate,
serial_init,
console_init_f,
display_banner,
dram_init,
display_dram_config,
NULL,
};
1、cpu_init:不常用。
2、board_init:
a、设置时钟频率;
b、管脚功能寄存器配置;
c、设置bd->bi_arch_number= MACH_TYPE_MINI2440,
宏定义在include/asm-arm/mach-types.h中;
d、设置bd->bi_boot_params = 0x30000100。
3、interrupt_init:不常用。
4、env_init:略,详见文后所附链接。
5、init_baudrate:从环境变量中读取波特率的值,并将值写入gd和bd结构体中。
6、serial_init:初始化DEBUG串口,设置“8 data bits, no parity,1 stop bit, no start bits”和波特率。
7、console_init_f:略。
8、display_banner:启动的第一行打印信息。
9、dram_init:以下两行语句,其中宏定义在mini2440.h中。
gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
10、display_dram_config:略。
更多内容请关注卿子的百度空间:http://hi.baidu.com/to_qgq/blog/category/u-boot