系统介绍方面

本文详细介绍了安卓系统中LK(Little Kernel)的作用、启动流程及代码架构。从lk的初始化、硬件设备设置,到加载内核、设备树,再到fastboot模式的进入和Linux从emmc启动的过程,深入剖析了lk阶段的关键代码,包括kamin.C、bootstrap2线程和aboot.c等,揭示了系统启动背后的机制。
摘要由CSDN通过智能技术生成


lk启动流程介绍:

lk简单介绍

LK是little kernel的缩写
高通平台android普遍采用lk作为bootloader,lk是整个系统的引导部分,不是独立存在的,只支持arm和x86平台。
LK的作用
主要就是在操作系统内核启动之前运行的一段程序,初始化一些硬件设备,将内核加载从ROM到RAM中,并且做好映射关系。

lk代码架构

在这里插入图片描述

芯片启动流程介绍

1:上电后芯片内部ROM(只读)的PBL先运行,从emmc中加载SBL1到TCM(芯片的二级缓存)
2:SBL1主要会初始化总线 内存 时钟等,同时会加载校验 QSEE或者TZ(安全相关)、QHEE(虚拟机执行环境)、RPM_FW(电源管理)、APPSBL(LK)等镜像。执行完后将权限交给QSEE
3: QSEE通知RPM执行RPM_FW相关代码,将执行权交给APPSBL
4:LK加载HLOS的kernel
在这里插入图片描述

LK启动流程粗略介绍

1:进行各种早期的初始化工作,包括 cpu, emmc, ddr, clocks, thread 等。
2:判断进入 recovery 或 fastboot 的条件是否被触发。
3:从 emmc 中获取 boot.img 并加载到指定内存分割区域 (scratch region)。
4:从 scratch region 加载 kernel 到 KERNEL_ADDRESS 。
5:从 scratch region 加载 ramdisk 到 RAMDISK_ADDRESS 。
6:加载设备树到 TAGS_ADDRESS 。
7:关闭 cache, interrupts, 跳转到 kernel。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值