完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
OS: Android 7.1
Board: Firefly-RK3399 Uboot: v2017.02 整个过程和rk3288平台的uboot(v2014.10)加载流程类似,可参考 [RK3288][Android6.0] U-boot 启动流程小结 bl board_init_f -> crt0_64.S //初始化环境安装 board_init_f -> board_f.c initcall_run_list -> //依次运行init_sequence_f数组中的函数 setup_fdt //如果有的话,允许环境变量fdtcontroladdr地址中的dts覆盖系统的那份 arch_cpu_init -> cpu.c rkclk_set_pll //设置pll rk_get_chiptype //获取chip type,当前是CONFIG_RK3399 env_init env_rk.c //环境变量初始化, 使用那个env_rk.c的编译由CONFIG_ENV_IS_IN_RK_STORAGE控制打开 init_baud_rate //获取默认波特率设置, 在rk3399_deconfig中已经定义了为1500000 serial_init //初始化当前使用的串口 print_cpuinfo //打印cpu以及版本还有clock信息 show_board_info -> checkboard rk33xx.c //打印board信息 dram_init -> get_ram_size //获取ram size,代码中先固定CONFIG_SYS_SDRAM_SIZE为128M reserve_lcd //预留lcd内存空间,其他模块预留的形式都是以reserve_xxx开头的 setup_dram_config //ram配置信息放到全局变量中管理 show_dram_config //打印ddr信息 b board_init_r -> crt0_64.S //后期环境配置 board_init_r -> board_r.S initcall_run_list -> //依次运行init_sequence_r数组中的函数 board_init -> rk33xx.c //设置machine type以及boot params地址 initr_serial //选择当前使用的串口终端 arch_early_init_r //中断,dma初始化 initr_rk_storage -> board_storage_init -> StorageInit -> memFunTab[memdev]->Init //根据当前flash type来选择其中一个初始化, 支持sd,emmc. ums和nand的宏在rk33plat.h中被undef. SdhciInit sdhciBoot.c //读取存储信息及大小 initr_env //环境变量初始化 board_late_init -> rk33xx.c board_init_adjust_env //设置bootdelay,bootcmd这几个环境变量 load_disk_partitions -> //加载eMMC中的分区信息 GetParam -> StorageReadLba -> gpMemFun->ReadLba -> SdhciBootReadLBA ParseParam rkimage_prepare_fdt //优先从boot分区去加载fdt,如果找不到,就从resource分区加载 key_init //按键初始化,包括rocku***, fastboot, recovery这几个主要key的初始化 pmic_init -> power_rockchip.c //板子用的是rk808 pmic_rk808_init pwm_regulator_init //初始化pwm相关的regulator,这里用的是另一路pwm,用于控制DCDC,和backlight无关。 fg_init //fuel gauge初始化 board_fbt_preboot -> fastboot.c 即使不进入fastboot模式,有些变量也是需要配置的 fbt_fastboot_init //判断当前device是否处于locked状态 board_fbt_get_reboot_type //获取当前reboot type, fastboot, rocku***, normal这些 board_fbt_low_power_check //低电量时处于充电状态时要充电,否则直接关机 rockchip_display_init //display部分初始化 board_fbt_low_power_off //如果处于低电量而且没在充电时,降低背光并且显示警告logo,1S后关机 rockchip_show_logo -> //优先显示uboot logo,没有则显示kernel logo。 load_bmp_logo run_main_loop -> main_loop -> bootdelay_process //延时处理,并且获取bootcmd参数用于后面开机进入kernel处理 autoboot_command -> do_bootrk //进入kernel |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
基于米尔瑞芯微RK3576核心板/开发板的人脸疲劳检测应用方案
1070 浏览 0 评论
1248 浏览 1 评论
981 浏览 1 评论
2263 浏览 1 评论
3586 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-29 14:08 , Processed in 0.851156 second(s), Total 72, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号