Rockchip Uboot 详细启动流程 RK3399 RV1126 RK3588

Rockchip Uboot 详细启动流程

  • 本文主要介绍 RK Uboot 启动流程中的重要步骤。

启动流程

start.s
// 汇编环境
=> IRQ/FIQ/lowlevel/vbar/errata/cp15/gic  // ARM 架构相关的 lowlevel 初始化
=> _main
  => stack  // 准备好 C 环境需要的栈
  // 【第一阶段】 C 环境初始化,发起一系列的函数调用
  => board_init_f: init_sequence_f[]
    initf_malloc
    arch_cpu_init  // SoC 的 lowlevel 初始化
    serial_init    // 串口初始化
    dram_init      // 获取 ddr 容量信息
    reserve_mmu    // 从 ddr 末尾开始往低地址 reserve 内存
    reserve_video
    reserve_uboot
    reserve_malloc
    reserve_global_data
    reserve_fdt
    reserve_stacks
    dram_init_banksize
    sysmem_init
    setup_reloc  // 确定 U-Boot 自身要 reloc 的地址
  // 汇编环境
  => relocate_code // 汇编实现 U-Boot 代码的 relocation
  // 【第二阶段】 C 环境初始化,发起一系列的函数调用
  => board_init_r: init_sequence_r[]
    initr_caches   // 使能 MMU 和 I/Dcache
    initr_malloc
    bidram_initr
    sysmem_initr
    initr_of_live  // 初始化of_live
    initr_dm       // 初始化dm框架
    board_init     // 平台初始化,最核心部分
      board_debug_uart_init     // 串口 iomux、clk 配置
      init_kernel_dtb           // 切到 kernel dtb
      clks_probe                // 初始化系统频率
      regulators_enable_boot_on // 初始化系统电源
      io_domain_init            // io-domain 初始化
      set_armclk_rate           // __weak,ARM 提频(平台有需求才实现)
      dvfs_init                 // 宽温芯片的调频调压
      rk_board_init             // __weak,由各个具体平台进行实现
    console_init_r
    board_late_init  // 平台 late 初始化
      rockchip_set_ethaddr  // 设置 mac 地址
      rockchip_set_serialno // 设置 serialno
      setup_boot_mode       // 解析 "reboot xxx" 命令、识别按键和 loader烧写模式、recovery
      charge_display        // U-Boot 充电
      rockchip_show_logo    // 显示开机 logo
      soc_clk_dump          // 打印 clk tree
      rk_board_late_init    // __weak,由各个具体平台进行实现
    run_main_loop  // 进入命令行模式,或执行启动命令
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

专注的罗哈哈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值