rk3568uboot启动流程分析
1. BootROM 载入 TPL 到 SRAMBootROM 是芯片固化代码无源码。但它调用的第一个函数在 U-Boot 中相关源码 bootrom.c2. TP 在 SRAM 中运行初始化 DDR相关源码tpl.c3. BootROM 加载 SPL 到 DDRBootROM 收到 TPL 返回的 0 后从存储介质加载 spl.bin。此时 DDR 已经可用直接写到 DDR。RK3568 defconfig 中确认了这一布局CONFIG_TPL_RAMy ← 第 164 行TPL 的 RAM 驱动CONFIG_ROCKCHIP_TPL_INIT_DRAM_TYPE0 ← 第 168 行TPL 初始化的 DDR 类型CONFIG_SPL_SEPARATE_BSSy ← 第 41 行SPL 的 BSS 段独立DDR 中45SPL 初始化外设跳过 DDR 加载 ATF/U-Boot/FDT然后进入 spl 框架的 board_init_ruboot/common/spl/spl.c函数board_init_r()6. ATFBL31→ U-Boot ProperATF 源码在 rkbin/ 中是独立编译的二进制。U-Boot 只负责加载和跳转。ATF 做的事不在 U-Boot 代码中但理解流程很重要ATF 入口EL3├─ 初始化安全监控Secure Monitor├─ 配置 PSCICPU 电源管理├─ 初始化 GIC中断控制器的安全侧├─ 切换到 EL2非安全态└─ 跳转到 spl_image.entry_point_bl33 → U-Boot Proper7. U-Boot Proper 完整初始化分为两个阶段7a重定位前 board_init_f文件u-boot/common/board_f.c数组init_sequence_f[] → 第 825 行开始setup_mon_len → 计算 U-Boot 自身大小fdtdec_setup → 设备树基本解析initf_malloc → 分配临时堆arch_cpu_init → CPU 初始化initf_dm → ★ 加载基础驱动串口、GPIO 等timer_init → 定时器env_init → 环境变量占位serial_init → 串口console_init_f → 第一阶段控制台输出受限dram_init → ★ 获取 DDR 大小和 bank 布局setup_dest_addr → 计算重定位目标地址reserve_mmu → 保留 MMU 页表空间reserve_video → 保留显示缓冲区reserve_uboot → 保留 U-Boot 自身空间reserve_malloc → 保留堆空间setup_reloc → 设置重定位参数然后执行 relocate_code()把 U-Boot 自身从当前位置拷贝到 DDR 高端地址通常末尾附近跳转到新7b重定位后 board_init_r文件u-boot/common/board_r.c数组init_sequence_r[] → 第 821 行开始initr_caches ★ 使能 I/D Cache执行速度质的飞跃initr_malloc ★ 重定位后的完整堆bidram_initr BIDRAM 初始化 — 标记 ATF/OP-TEE 占用的内存sysmem_initr 系统内存管理 — 防止 U-Boot 破坏固件区域initr_dm ★ 完整 DM 驱动模型加载全部外设驱动在线board_init ★★★ board.c:553 — Rockchip 板级初始化├─ board_debug_init() 调试串口 热键├─ optee_client_init() OP-TEE 客户端通信├─ clks_probe() ★ 时钟树初始化总线时钟、外设时钟├─ regulators_enable() ★ 电源域开启GPU、VPU、USB 等├─ io_domain_init() IO 电压域配置├─ set_armclk_rate() ARM 核心频率设置└─ dvfs_init() DVFS 动态调频调压initr_mmc ★ eMMC/SD 卡驱动board_late_init ★★ board.c:478 — 板级延迟初始化├─ rockchip_set_ethaddr() 从 Vendor 分区读取 MAC├─ rockchip_set_serialno() 从 eFuse 读取序列号├─ rockchip_show_logo() ★ 显示开机 LOGO├─ env_fixup() 环境变量修正└─ cmdline_handle() 内核命令行拼接console_init_r ★ 完整终端可以敲命令了run_main_loop ★★★ 进入主循环 → autoboot 倒计时步骤 8U-Boot 加载 Linux Kernel移交执行文件u-boot/arch/arm/mach-rockchip/board.c// ★ autoboot 超时或输入 boot 命令后// [1042] 解析启动镜像board_do_bootm()└→ android_bootloader_boot_kernel() // Android boot.img 格式└→ 或 boot_fit / boot_uimage // FIT/uImage 格式// [1432] 拼接内核命令行board_fdt_chosen_bootargs()├─ bootargs_add_dtb_dtbo() // 从设备树提取 bootargs├─ bootargs_add_partition() // mtdparts/blkdevparts├─ bootargs_add_fwver() // androidboot.fwver...└─ bootargs_add_android() // AB 系统 slot 参数// [1179] 跳转前最后清理board_quiesce_devices()├─ atags_destroy() // 清理 ATAGS├─ misc_decompress_cleanup() // 清理硬件解压器└─ hotkey_run(HK_CLI_OS_GO) // 热键最终回调// [708] ★ 最终跳转arch_preboot_os()└─ images-ep 内核入口地址 // 修正 2MB 对齐└─ 跳转CPU 从 EL2 进入 Linux

相关新闻

计算机毕业设计之基于springboot的毕业生闲置物品交易系统

计算机毕业设计之基于springboot的毕业生闲置物品交易系统

自从新冠疫情爆发以来,各个线下实体越来越难做,线下购物的人也越来越少,随之带来的是一些不必要的浪费,尤其是即将毕业的大学生,各种用品不方便携带走导致被遗弃,造成大量的浪费。本系统目的就是让毕业生的…

2026/7/29 22:44:38阅读更多 →
multiyolov5推理实战:使用detect.py实现实时视频流的目标检测与语义分割可视化

multiyolov5推理实战:使用detect.py实现实时视频流的目标检测与语义分割可视化

multiyolov5推理实战:使用detect.py实现实时视频流的目标检测与语义分割可视化 【免费下载链接】multiyolov5 joint detection and semantic segmentation, based on ultralytics/yolov5, 项目地址: https://gitcode.com/gh_mirrors/mu/multiyolov5 multiyo…

2026/7/29 22:44:38阅读更多 →
2026论文双检避坑指南|实测Paperxie AI写作如何规避查重+AIGC检测风险

2026论文双检避坑指南|实测Paperxie AI写作如何规避查重+AIGC检测风险

官方网站:https://www.paperxie.cn近两年,国内高校毕业论文审核机制全面升级,从单一知网查重,迭代为「文字重复率AI生成检测」双审机制。很多同学论文重复率达标,却因AI痕迹过重被判定为非人工写作,直接驳回…

2026/7/29 22:44:38阅读更多 →
英雄联盟Akari助手:5分钟学会的智能游戏效率工具

英雄联盟Akari助手:5分钟学会的智能游戏效率工具

英雄联盟Akari助手:5分钟学会的智能游戏效率工具 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 还在为英雄联盟中繁琐的符文配置、…

2026/7/30 5:05:48阅读更多 →
矿区没网、油田没信号?企业内部通讯怎么解决

矿区没网、油田没信号?企业内部通讯怎么解决

“以前给站里报数据,得开车跑20公里‘追信号’,着急时就爬上车顶,举着手机找信号。” 说这话的是新疆油田石西作业区的巡检操作工詹强。今年7月,这条全长230公里的油区公路终于通上了5G,使用了26座新建及改造的基站&am…

2026/7/30 5:05:48阅读更多 →
【单片机课程设计/毕业设计】基于单片机的室内温湿度自动管控系统开发,基于 DHT11 传感器的温湿度智能控制系统实现(010501)

【单片机课程设计/毕业设计】基于单片机的室内温湿度自动管控系统开发,基于 DHT11 传感器的温湿度智能控制系统实现(010501)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/30 5:05:48阅读更多 →
海外社媒内容排期完全指南:从入门到精通,看这一篇就够了

海外社媒内容排期完全指南:从入门到精通,看这一篇就够了

海外社媒内容排期完全指南:从入门到精通,看这一篇就够了你的Twitter账号日更30天,为什么还是没人互动?因为你缺的不是内容,是排期逻辑。本文适合:负责海外社媒运营的项目运营人员准备启动Twitter、Telegram…

2026/7/30 5:05:48阅读更多 →
RAG技术实战:从零搭建企业级智能问答系统

RAG技术实战:从零搭建企业级智能问答系统

这类 RAG 教程最怕的就是一上来就堆砌概念,把简单的事情讲复杂。其实 RAG 的核心就一句话:让大模型能“翻阅”你自己的资料来回答问题,而不是只靠它训练时学过的知识。如果你手头有私有文档、公司资料或者特定领域的知识,想快速让…

2026/7/30 5:05:48阅读更多 →
Java实体与JSON转换实战:从Jackson选型到性能优化全解析

Java实体与JSON转换实战:从Jackson选型到性能优化全解析

1. 项目概述:为什么我们需要关注实体与JSON的转换?在Java开发的世界里,尤其是在Web服务、微服务架构和前后端分离成为主流的今天,实体(Entity)与JSON(JavaScript Object Notation)之…

2026/7/30 5:03:48阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/29 9:47:45阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/29 7:00:19阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/29 7:58:51阅读更多 →
3分钟解锁iOS应用自由:TrollInstallerX让你的iPhone摆脱安装限制 [特殊字符]

3分钟解锁iOS应用自由:TrollInstallerX让你的iPhone摆脱安装限制 [特殊字符]

3分钟解锁iOS应用自由:TrollInstallerX让你的iPhone摆脱安装限制 🚀 【免费下载链接】TrollInstallerX A TrollStore installer for iOS 14.0 - 16.6.1 项目地址: https://gitcode.com/gh_mirrors/tr/TrollInstallerX 你是否曾经因为iOS系统的严格…

2026/7/30 0:00:58阅读更多 →
[GESP202606 四级] 扫雷

[GESP202606 四级] 扫雷

B4557 [GESP202606 四级] 扫雷 https://www.luogu.com.cn/problem/B4557 中国计算机学会(CCF)2026年6月C四级讲解——扫雷 https://www.bilibili.com/video/BV1MCMg6AEXR/ B4557 [GESP202606 四级] 扫雷 https://www.bilibili.com/video/BV1ZKTj6ZEVh/ 2…

2026/7/30 0:00:58阅读更多 →
Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 您是否曾因Windows系统盘空间不足而烦恼?是否遇到过设…

2026/7/30 0:00:58阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/30 0:27:26阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/30 4:47:18阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/29 14:26:42阅读更多 →