- 博客(8)
- 收藏
- 关注
原创 ROCKCHIP平台linux启动篇(board_init_f 阶段6 7 8 9)
这篇文章主要讲解board_init_f显示信息初始化和内存初始化
2025-10-13 01:41:55
948
原创 ROCKCHIP平台linux启动篇(board_init_f 阶段3 4 5)
本文主要介绍了U-Boot启动流程中板级早期初始化(board_init_f)的阶段3至阶段5。重点分析了环境变量初始化(env_init)的实现机制,包括环境变量驱动的查找流程和nowhere驱动的运作原理。在RK平台上,环境变量使用ENVL_NOWHERE模式,直接从编译时嵌入的默认环境变量数组(default_environment)获取,不依赖持久化存储介质。文中详细解析了环境变量驱动的注册查找机制、链接器段的组织方式,以及默认环境变量的生成过程,并探讨了bootdelay等关键参数的作用。
2025-10-12 15:21:55
628
原创 ROCKCHIP平台linux启动篇(board_init_f 阶段2)
本文介绍了uboot启动过程中board_init_f函数的阶段2初始化,主要包含arch_cpu_init和initf_dm两部分。在RK平台使用闭源方案时,arch_cpu_init只需配置emmc iommu和usb3工作模式。initf_dm函数则负责设备管理初始化,包括建立设备树根节点、绑定基础驱动,并处理需要在重定位前初始化的设备。通过分析代码流程和设备树属性(pre_reloc_only),文章展示了uboot早期设备模型初始化的关键步骤和数据结构组织方式。
2025-10-08 18:57:46
518
原创 ROCKCHIP平台linux启动篇(board_init_f 阶段1)
这篇文章摘要了U-Boot启动过程中第一阶段板级初始化(board_init_f)的关键内容。主要涵盖: 初始化环境和内存布局 搭建C语言运行环境,设置栈、BSS和全局数据(GD) 规划DDR内存布局(U-Boot重定位区、堆、设备树等) 核心初始化流程 通过函数指针数组(init_sequence)顺序执行初始化 计算U-Boot镜像大小(mon_len)用于后续重定位 设备树(FDT)的初步设置和地址获取 关键数据结构 全局数据(gd)结构体传递启动参数 详细说明了U-Boot内存映射和代码组织 技术实
2025-10-07 16:07:27
767
原创 ROCKCHIP平台linux启动篇(lowlevel_init)
本文主要分析了Rockchip平台Linux启动过程中lowlevel_init阶段的初始化流程,重点讲解了中断控制器GIC的初始化过程。文章首先介绍了保护返回地址安全的机制,随后详细解析了GICv3架构下主核与从核的不同初始化策略。对于主核,需要完成全局GIC Distributor的初始化配置,包括中断分组、优先级设置和亲和性路由启用;而从核则只需进行每核的CPU接口初始化。文章还深入探讨了GICv3的关键特性如亲和性路由机制及其优势,解释了这种设计如何避免多核竞争并提高中断处理效率。通过分析具体的汇编
2025-09-30 06:22:45
1716
原创 【ROCKCHIP平台linux启动篇(_main)】
本文分析了Rockchip平台Linux启动过程中U-Boot的_main函数执行流程,重点解读了crt0_64.S汇编代码。主要内容包括:1)异常级别处理机制,通过switch_el宏实现不同特权级跳转;2)系统寄存器配置方法,包括MMU、缓存控制等关键位设置;3)SError异常启用机制,通过DAIF寄存器控制;4)指令同步屏障作用。文章详细解析了从汇编初始化到板级初始化的完整过渡过程,为理解嵌入式系统启动提供了底层技术细节。
2025-09-24 03:24:16
1846
原创 【ROCKCHIP平台linux启动篇(_start)】
本文介绍了Rockchip平台Linux系统启动过程中U-Boot的初始阶段流程的start.s文件内容。
2025-08-04 16:15:54
967
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅