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()? */

1875

被折叠的 条评论
为什么被折叠?



