Exynos4412 的启动过程详解(三)

您所在的位置:网站首页 4412手册 Exynos4412 的启动过程详解(三)

Exynos4412 的启动过程详解(三)

2023-08-27 21:01| 来源: 网络整理| 查看: 265

目录

Exynos4412 BL0 启动流程

Exynos4412 BL1(官方 BL1) 启动流程

Exynos4412 BL2 启动流程

 参考资料:

Exynos4412 BL0 启动流程

BL0在启动流程中主要完成以下几件事情:

Disable watchdog:关闭看门狗Disable IRQ’s and MMU:关闭中断控制器和内存管理单元(MMU)Disable D-cache, Enable I-cache:关闭数据Cache,使能指令CacheFlush TLB’s and Invalidate caches:刷新TLB并失效cachesMake CORE1 idle:让核心1处于空闲状态(只让核心0参与启动工作)Deep-stop or AFTR:判断是否在待机唤醒状态(这是两种低功耗模式,详细可见《SEC_Exynos4412_Users Manual_Ver.1.00.00》第8章 Power Management Unit ),如果是的话直接跳转到BL1或者跳转到 Direct-Go 设置的地址Initialize Stack (IRQ, SVC):设置IRQ和SVC模式的栈空间Initialize ZI/RW:初始化iROM程序中的一些变量(RW(read/write)是程序中的已初始化变量;ZI(Zero)是程序中的未初始化的变量)Register the function pointers:导出一些核心函数,这里的函数主要是一些读写函数(用于读写存放BL1的存储介质)Get the reset status:获取复位状态Set the clock divider & Set PLLs:设置时钟分频和锁相环Get bootmode (OM pin):获取BOOT模式,如果 1st Device 获取失败则使用 2nd Device加载对应启动介质中的 BL1 到 iRAM 中判断下载和校验是否失败,失败则停止运行跳转到 BL1执行程序 Exynos4412 BL1(官方 BL1) 启动流程

BL1在启动流程中主要完成以下几件事情:

Deep-stop or AFTR?:判断是否处于 Deep-Stop/AFTR 状态,是的话则直接跳转 BL2。Read BL2 Image from booting device: 从启动设备中读取 BL2 镜像SLEEP wakeup?: 判断是否是 Sleep 唤醒操作,是的话则直接跳转 BL2。Secure Boot?:判断是否是安全启动,否的话则直接跳转 BL2Signature OK?:校验签名是否正确,正确则跳转 BL2,否则进入死循环。 Exynos4412 BL2 启动流程

BL2 在启动流程中主要完成以下几件事情:

Deep-stop or AFTR?:判断是否处于 Deep-Stop/AFTR 状态,是的话则直接跳转到 DRAM指定地址运行固件(F/W)或者操作系统(OS)Set Clock's: 设置系统时钟Initialize DRAM:初始化 DRAMSLEEP wakeup?: 判断是否是 Sleep 唤醒操作,是的话则直接跳转到 DRAM 指定地址运行固件(F/W)或者操作系统(OS)Read F/W or OS Image from booting device: 从启动设备中读取固件(F/W)或者操作系统(OS)Secure Boot?:判断是否是安全启动,否的话则直接跳转到 DRAM 指定地址运行固件(F/W)或者操作系统(OS)Signature OK?:校验签名是否正确,正确则跳转到 DRAM 指定地址运行固件(F/W)或者操作系统(OS),否则进入死循环。  参考资料: 《讯为4412开发板嵌入式学习(九)uboot启动过程》《Uboot学习笔记(二)Exynos4412启动过程分析》

2021年8月11日

Kilento



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3