RK3399 系列 U-BOOT(V2017)流程解析(二)board_init_f()

common/board_f.c

void board_init_f(ulong boot_flags)

 if (initcall_run_list(init_sequence_f))
                hang();
------------------------------------------------------

839 static init_fnc_t init_sequence_f[] = {
 840 #ifdef CONFIG_SANDBOX
 841         setup_ram_buf,
 842 #endif
 843         setup_mon_len,
 844         setup_fdt,
 845 #ifdef CONFIG_TRACE
 846         trace_early_init,
 847 #endif
 848         initf_malloc,
 849 #if defined(CONFIG_MPC85xx) || defined(CONFIG_MPC86xx)
 850         /* TODO: can this go into arch_cpu_init()? */
 851         probecpu,
 852 #endif
 853         arch_cpu_init,          /* basic arch cpu dependent setup */
 854 #ifdef CONFIG_X86
 855         cpu_init_f,             /* TODO(sjg@chromium.org): remove */
 856 # ifdef CONFIG_OF_CONTROL
 857         find_fdt,               /* TODO(sjg@chromium.org): remove */
 858 # endif
 859 #endif
 860      mark_bootstage,     //bootstage_mark_name(BOOTSTAGE_ID_START_UBOOT_F,                                                                                            "board_init_f");
 861 #ifdef CONFIG_OF_CONTROL
 862         fdtdec_check_fdt,
 863 #endif
 864         initf_dm,  //进行u-boot的driver model的初始化,在这里回去解析fdt的设备并注册与之匹配的驱动
 865 #if defined(CONFIG_BOARD_EARLY_INIT_F)     // rk no define
 866         board_early_init_f, 平台的開發者可以根據需要,實現board_early_init_f接口,以完成特定的功能。原文網址:https://kknews.cc/news/r5yby2x.html

 867 #endif
 868         /* TODO: can any of this go into arch_cpu_init()? */
 869 #if defined(CONFIG_PPC) && !defined(CONFIG_8xx_CPUCLK_DEFAULT)
 870         get_clocks,             /* get CPU and bus clocks (etc.) */
 871 #if defined(CONFIG_TQM8xxL) && !defined(CONFIG_TQM866M) \
 872                 && !defined(CONFIG_TQM885D)
 873         adjust_sdram_tbs_8xx,
 874 #endif
 875         /* TODO: can we rename this to timer_init()? */

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值