JZ2440平台移植uboot 2016.11(二)

本次梳理uboot 2016.11 在SMDK2410平台上的代码执行流程。

代码从arch/arm/cpu/Arm920t/start.S开始

1. 设置CPU工作在SVC模式;

2. 禁止开门狗和所有中断;

3. 设置CLK;

4. 设置I/D cache, 禁用MMU

5. 调用lowlevel_init,初始化RAM

6. 调用_main, 在crt0.S (arch\arm\lib)

7. 设置SP,将栈顶地址放入r0,调用board_init_f_alloc_reserve,分配一段区间给global_data,并且16个字节对齐

     

  top = rounddown(top-sizeof(struct global_data), 16);

8.

board_init_f_init_reserve
     global_data区数据清0, 并且设置全局变量指针gd

9. board_init_f

          |-----initcall_run_list(init_sequence_f)   

                  |--------setup_mon_len(gd->mon_len = (ulong)&__bss_end - CONFIG_SYS_MONITOR_BASE;)

                  |--------initf_malloc(return 0;)

                  |--------initf_console_record     arch_cpu_init     mach_cpu_init     initf_dm    arch_cpu_init_dm   

                  |--------mark_bootstage 

                  |-------- board_early_init_f

                                Set clock    Set GPIO

                  |--------env_init(Set the global data)

                  |--------init_baud_rate(set flag)    serial_init(set flag)    console_init_f

                  |--------display_options(print version)     display_text_info(debug print the bss_start  bss_end  text_base etc. )

                  |--------print_cpuinfo

       &nbs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值