AndroidLinux Kernel and driver

本文详细介绍了Android系统的启动流程,从Bootloader的EDK2 UEFI boot开始,逐步解析了PEI、DXE、BDS和TSL阶段。接着深入探讨了Linux内核的初始化流程,包括start_kernel、rest_init、kernel_init等关键步骤。最后,文章讨论了Linux驱动程序的分类和结构,如字符设备、块设备、网络设备,以及如何定义和注册驱动。
摘要由CSDN通过智能技术生成


  • Android system overview
  • Bootloader--EDK2 UEFI boot
  • Linux Kenel init flow
  • Linux driver

1.  Android 系统框架

 1)应用程序层
2)应用程序框架层
3)系统运行库层
    a)系统库
    b)Android运行时
4)Linux内核层


Android 系统启动过程


Power on Sequence

  • Power button is pressed and this launches the ROM code on the RPM
  • SBL1 code runs on RPM processor 
  • Bootloader on main apps processor runs  (LK or EDK2 UEFI boot)
  • Apps bootloader launches the HLOS (Android)
  • Initial startup code on HLOS launches other processors: Riva (wifi), DSPs, etc.

2. Bootloader--EDK2 UEFI boot


2.1 UEFI boot flow-Sec阶段

SEC(Security Phase)阶段是平台初始化的第一个阶段,计算机系统加电后进入这个阶段。
1)接收并处理系统启动和重启信号
2)初始化临时存储区域
3)作为可信系统的根

4)传递系统参数给下一阶段(即PEI)





代码路径:


EDK2/ArmPlatformPkg/Sec/Arm/SecEntryPoint.S     JMPT to Sec C code( CEntryPoint)
EDK2/ArmPlatformPkg/Sec/Sec.c (CEntryPoint)
EDK2/CoreBootModulePkg/SecC

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值