Table of Contents
初始化mmc控制器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
arch/arm/lib/board.c: board_init_r() - mmc_initialize() drivers/mmc/mmc.c: mmc_initialize() - board_mmc_init() # 此处调用2次,初始化CPU的2个mmc控制器 board/vendor/board.c: board_mmc_init() - fsl_esdhc_initialize() # 注册控制器到系统 drivers/mmc/fsl_esdhc.c: fsl_esdhc_initialize() - mmc_create() # 注册完成 drivers/mmc/mmc.c: mmc_create() |
加载环境变量
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
arch/arm/lib/board.c: board_init_r() - should_load_env() # 由于CONFIG_OF_CONTROL和CONFIG_DELAY_ENVIRONMENT均未定义,故返回1 arch/arm/lib/board.c: should_load_env() - env_relocate() # gd->env_valid默认为0 common/env_common.c: env_relocate() - env_relocate_spec() common/env_mmc.c: env_relocate_spec() - mmc_get_env_devno() # 获得存放env环境变量的mmc序号,i.MX6UL读取SRC_SBMR1寄存器的值 # 然后取出BOOT_CFG2[3] and BOOT_CFG2[4],此位反应了硬件配置的启动SD卡控制器的序号 board/vendor/board.c: mmc_get_env_devno() # 取出对应mmc的结构 common/env_mmc.c: env_relocate_spec() - find_mmc_device() common/env_mmc.c: env_relocate_spec() - init_mmc_for_env() - mmc_init() driver/mmc/mmc.c: mmc_init() - mmc_start_init() |