LK的大体过程

简谈高通Trustzone的实现 从trust zone之我见知道,支持trustzone的芯片会跑在两个世界。 普通世界、安全世界,对应高通这边是HLOS,QSEE。 如下图: 如下是HLOS与QSEE的软件架构图 HLOS这两分为kernel层,user层。user层的通过qseecom提供的API起动trustzone那边的app。 qseecom driver 除了提供AP 阅读详情
LK过程中的程序控制和关键过程
spmi_init从XBL已经在指定位置存放好的值初始化SPMI
target_sdc_init初始化SD卡的控制器
partition_read_table读取磁盘的分区表,包括MBR或GPT,填充到全局变量partition_entries中
target_crypto_init_params处理签名内核
VERIFIED_BOOT宏非零的情况下,会通过qseecom、rpmb等操作执行安全操作,其中可以通过smc汇编指令进入TrustZone安全模式执行命令。rpmb也是通过qseecom_register_listener注册一个监听器。load_sec_app中会启动名为keymaster的qseecom app。
在aboot中的update_cmdline、boot_linux等函数处理了cmdline的传递。


LK的大体过程
由于不同处理器芯片厂商对 arm core的封装差异比较大,所以不同的arm处理器,对于上电引导都是由特定处理器芯片厂商自己开发的程序,这个上电引导程序通常比较简单,会初始化硬件,提供下载模式等,然后才会加载通常的bootloader。
这个过程典型是通过bootROM来实现的,也就是基于ROM中指定位置存储的指令完成的(bootROM可参见后面对它的描述)。
加载BootLoader的过程中,会按照CPU执行环境的要求来完成环境初始化(也就是各section的存储位置与汇编语言使用的语法一一对应,有重定位段、数据段等),并转到指定位置执行指令,进入BootLoader的代码中。
而汇编语言会用到的一些变量和表示方法,也就指明了有多少种内存定位方法。其中整体内存区域划分的一些变量,如RAM_HIGH_ADRS,估计是内存配置脚本之类的传入到ld的。
在该阶段能够完成ROM到RAM的拷贝,其实也来源于ROM可以直接被CPU读取这个基础,如果NAND Flash的话,还需要驱动支持才可以,只能通过函数调用来完成。
汇编语言中应该有一个语法指定入口指令地址,比如ENTRY,该语法的实际基础也会取决于程序约定,比如bootROM到BootLoader时跳转到哪个地址执行,R0等寄存器分别存在什么数据,从BootLoader跳转到Kernel时也是相同的道理。
所以,我们可以记住UBoot的第一条命令是cpu/arm920t/start.S,而Kernel的第一条命令是arch/arm/kernel/head.S,而进入C代码的接口则是start_kernel()。


BootLoader的类型
先区分一下Bootloader和Monitor,严格来说,Bootloader只是引导OS运行起来的代码;而Monitor另外还提供了很多的命令行接口,可以进行调试、读写内存、烧写Flash、配置环境变量等。在开发过程中Monitor提供了很好地调试功能,不过在开发结束之后,可以完全将其设置成一个Bootloader。所以习惯上将其叫做Bootloader。
Android MTK LCM Driver 屏驱动 Android MTK LCM Driver 屏驱动 ———— 屏驱动小结 手机驱动调试第一就是LCM,也就是我们说的LCD屏,因此要求驱动第一时间将确认和点亮。此篇就简单描述了在MTK 6765(Android9.0 / kernel-4.9)环境下的驱动的小结。 目录Android MTK LCM Driver 屏驱动前言一、驱动相关的文件1、修改文件和内容简述二、如何修改驱动1、驱动文件概述2、驱动结构体名称修改3、根据HW连接修改LCM类型、DSI模式、LCM大小配置基本信息4、屛的初始化参 阅读详情

相关推荐

VSLAM基础(九)————LK光流法与直接法

到目前slam前端部分基本快结束了~在这里再补上光流法与直接法。 我们之前介绍的都是基于特征点并计算描述子匹配的思路找到同名像点,然后通过射影几何的方法计算相机姿态。这种方法大体上已经很完善了,当然还是存在一些问题:特征点的提取、描述、匹配仍是slam里最耗时的部分;在一些特征稀疏的场景下(如白墙),可能找不到足够的匹配点; 于是,人们希望找到其他的方法来克服这种问题,有了以下的思路: 一、...

potxxx的博客 2351

lk中的partition.c

lk中的partition.c中是讲的是将flashlayout保持在flash中的case,之前我们将的ptable的case是将flashlayout信息buildin到lk中。 例如: static struct ptentry board_part_list_sku3[] = { { .start = 0, .length = 10 /* In MB */ , .name =

jason的笔记 955

MTK Bootable启动流程深度解析:从Pre-loader到Kernel的完整链路

本文深度解析了MTK平台Bootable启动流程的完整链路,从Boot ROM、Pre-loader到LK (Little Kernel),最终引导至Linux内核。文章详细阐述了各阶段的核心任务、代码实现与参数传递机制,并分享了关键的调试技巧与常见问题定位方法,为嵌入式开发者进行系统定制、优化与故障排查提供了清晰的导航图。

sony5的博客 913

2020-7 android kernel vulnerability

qualcomm:https://www.qualcomm.com/company/product-security/bulletins/july-2020-security-bulletin google:https://source.android.com/security/bulletin/2020-07-01 samsun:https://security.samsungmobile.com/securityUpdate.smsb ps:谷歌最好看英文的通告,英文和中文通告不是同步更新就很难受,中文

weixin_42177005的博客 5896

PX4实战指南:通过遥控器通道直连实现舵机PWM控制

本文详细介绍了如何通过PX4飞控实现遥控器通道直连控制舵机PWM输出的完整流程。从硬件准备、遥控器配对到PX4参数配置和硬件连接,提供了实战技巧和常见问题解决方案,帮助无人机爱好者快速掌握舵机控制技术。重点讲解了AUX Passthrough模式设置和PWM参数调整等关键步骤。

weixin_29195217的博客 154

2024最新版Anaconda Navigator安装使用指南

本文简要介绍如何下载安装Anaconda Navigator最新版,以及如何使用Python内核搭载来完成应用程序开发。

jackson_lingua的博客 1万+

高通UEFI,ABL,XBL控制GPIO

高通EUFI分了ABL,XBL两部分ABL类似于lk,xbl类似preload,但也有不同。ABL的主要代码在从名字看属于应用,是检查状态进入recovery mode或者Normal模式。对于关机充电的判断和控制比较关键的是。

arden3227的博客 2981

平台跳跃游戏中的自动寻路,与地图导航扩展

平台游戏:主要的游戏方式是在2D平面上使用各种方式在悬浮平台上进行移动和穿过各种障碍。 现如的平台游戏中的平台特性与种类是很多的,像马里奥(FC)的单向支撑不可穿透的,或魂斗罗(FC)单向支撑可穿透的… \ 超级玛丽 魂斗罗 空洞骑士 蔚蓝 本博文 支撑 上 上 上 左、上、右 上 穿透 无 上、下 无 上(部分) 上下 所以本文主要以向上支撑并上下穿透的平台特性来进行实现 需求分析 在关卡设计后,地形的数据需要自动识别 地形中的平台可上下穿透移动,并可向上站立 平台的移动路..

MOV的博客 3062

開機到sleep 的log

--------- beginning of /dev/log/main 05-29 08:08:07.813 I/bdAddrLoader(  191): option : f=/persist/bluetooth/.bdaddr 05-29 08:08:07.813 I/bdAddrLoader(  191): option : h 05-29 08:08:07.813 I/bdA

u011589606的专栏 1万+

Apollo学习笔记(4)坐标系

百度Apollo项目用到了多种坐标系,其中帮助文档提及的坐标系包括: 全球地理坐标系(The Global Geographic coordinate system ) 局部坐标系—东-北-天坐标(The Local Frame – East-North-Up,ENU) 车身坐标系—右-前-天坐标(The Vehicle Frame —Right-Forward-Up,RFU) 车身坐标系—前-左-天坐标(The Vehicle Frame —Front-Left-Up,FLU) 还有一种Frenet坐标

qq_24649627的博客 5798

Clock Gating设计陷阱:为什么你的ICG cell总是导致setup violation?(附解决方案)

本文深入分析了数字IC设计中ICG(Integrated Clock Gating)单元导致setup时序违规的常见问题,包括时钟偏斜和数据路径过长两大核心原因。通过量化分析影响因素,提供了逻辑重组、寄存器重定时等优化策略,并介绍了预防性设计方法和物理实现阶段的优化技巧,帮助工程师有效解决ICG相关的setup violation问题。

weixin_29168153的博客 206

Andorid的LK学习

在Android下,LK是CPU(如TCC8803,PRIMAII,QUALCOMM7627A系列)的引导部分,也同样包含了内存,MMU,CPU主频,核心电压值等最小硬件的初始化。 重要的点是要看清源码的结构:此结构与linux的源码结构相差不大,在此不详细解说。 入口点: kernel - > main.C void kmain(void) {  // get us into s

topstar_123的专栏 782

银河飞腾FT-M6678 DSP开发初体验:从仿真器连接到第一个网络程序(CCS5.5+FT-EMU560实战)

本文详细介绍了银河飞腾FT-M6678 DSP开发环境的搭建过程,包括CCS5.5开发环境的配置、FT-EMU560仿真器的连接与设置,以及关键模块如网络驱动的国产化替换。通过实战案例,帮助开发者快速掌握国产DSP的开发流程,实现网络通信功能。

weixin_30919429的博客 554

LCM:高通 LK kernel 流程分析

以下几幅图是最近的一段时间对自己模块LCM的一些总结,目前只是完成了一部分,而且描述的不是特别到位,后期会不断更新和修改的。 第一幅是LCM的总体移植框架和组件图。介绍了LCM驱动的分部和调试屏的步骤和要点。 分lk和kernel两个部分,具体哪些.c,如何添加一块新屏,大体的步骤和方法。 第二幅图是屏的初始化流程图,分为lk和kernel两部分。Lk部分如下所示: 系统起来的时候会调用 boo...

我的征途是星辰大海 2340

PostgreSQL:十五. 性能优化

十五. 性能优化 优化简介: PostgreSQL优化一方面是找出系统的瓶颈,提高PostgreSQL数据库整体的性能; 另一方面,需要合理的结构设计和参数调整,以提高用户操作响应的速度; 同时还要尽可能的节省系统资源,以便系统可以提供更大负荷的服务。 PostgreSQL数据库优化是多方面的,原则是减少系统的瓶颈,减少资源的占用,增加系统的反应速度。例如: 通过优化文件系统,提高磁盘IO的读写速度; 通过优化操作系统调度策略,提高PostgreSQL的在高负荷情况下负载能力; 优化表结构、索引、查询

数据知道的博客 4万+

LeetCode 面试经典 150 题回顾

最经典 150 题,掌握面试所有知识点 面试经典 150 题 : 题目分析、解题思路、复杂度分析、代码展示

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 8万+

mtk-lk display代码分析

一.mtk显示架构 分析代码时会看到ddp-xxx开头的文件,ddp指的是display data path,下面是6582的ddp结构,比较老的芯片,新的没找到,但是大体流程应该是类似的。 1.rotator   图像旋转,支持多个方向旋转,也支持局部旋转 2.scaler   图像缩放,水平垂直方向缩放 3.color engine   图像...

dihuangmin3099的博客 2578

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

高通平台lcm 总结

以下几幅图是最近的一段时间对自己模块LCM的一些总结,目前只是完成了一部分,而且描述的不是特别到位,后期会不断更新和修改的。 第一幅是LCM的总体移植框架和组件图。介绍了LCM驱动的分部和调试屏的步骤和要点。 分lk和kernel两个部分,具体哪些.c,如何添加一块新屏,大体的步骤和方法。   第二幅图是屏的初始化流程图,分为lk和kernel两部分。Lk部分如下所示: 系统起来的时候会调用...

Neil驱动的博客 1706

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

记一个老年机的逆向工程与主线linux移植 (一)—— 信息收集与Bootloader移植

震惊!一男子竟然让主线linux跑在了老年机上,真相竟然是?!

HandsomeHacker的博客 6295

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

CenterNet: Objects as points 算法及作者代码walk through

相信论文的大体意思大家都有看过很多介绍,论文通过预测目标中心点和目标w和h来得到检测框,而且经过测试,该算法的框预测明显优于Yolov3,结果就不贴了。 Loss 上面是总的Loss ,分别包含Lk中心点heatmap预测loss,Lsize:object size Loss,Loff: 由于下采样导致的离散化错误,因此增加了中心点的offset预测,论文中解释如下: To recover t...

孟志彬的博客 3409

给ORBSLAM2/3添加传统光流提升跟踪鲁棒性的十几项工作汇总整理

对于ORBSLAM在运动/晃动场景下易跟丢的其中一个解决思路是加上传统光流,这里的传统光流主要指LK光流,基于深度学习的光流我会另外再谈。最典型的我们可以看vinsfusion,在无人机上时,我们把无人机机头猛转个180度,vinsfusion还是依旧稳定的,没有说出现跟丢啥的,那如果换成ORBSLAM,那可能早就因为匹配点数不足导致跟踪失败了。这里面的原因就在于ORBSLAM前端是基于的方式,特别是(当然不仅限于此),而vinsfusion的前端是特征点提取+光流跟踪的方式。

自主无人机 PX4 ROS SLAM 路径规划 MVS等技术分享 125

android uboot启动过程,Android启动流程简析(一)

最近一时兴起,想对Android的启动流程进行一次分析,经过一番整理,从以下几个方面进行总结,代码部分只讨论思路,不论细节。Android架构介绍Android启动概述BootLoader介绍Kernel初始化介绍Init初始化介绍Zygote启动介绍SystemServer启动介绍Launcher启动介绍Log抓取与分析方法由于发表文章的时候提示内容过长无法发布,于是把文章拆成了三部分发布:1....

weixin_29216353的博客 2278

校园卡水卡最低成本破解具体过程(补上上次工具教程)By:dj1149 -02

校园卡水卡最低成本破解具体过程(补上上次工具教程)By:dj1149 -02 有必要申明下:以下是分享工具用法和破解过程,大家切勿做违法的事情别问我银行卡行不行。。。 大家拿不联网的卡练手就好了上次发出破解工具,大群人都找我出教程=。= 其实我也是刚弄好。所以,这次把教程发出来吧。具体要用的工具有:PN532 和 PL2303 ...

weixin_30439067的博客 2万+

oracle查询监听sp20734,ORA-01102: cannot mount database in EXCLUSIVE mode

安装完数据库启动的时候报错ORA-01102: cannot mount database in EXCLUSIVE mode这是个常见的错误。下面这个case讲述了如何fix.一、提出问题实际过程中有时我们会遇到这样的问题,当你用startup试图启动数据库时会遇到ORA-01102的报错。我们可以在Unix下切换到Oracle的用户,执行一下oerr ora 1102便会看到有关1102的简短...

weixin_39576149的博客 256

高通lcd调试总结

来公司上班现在已经整整一个月了,蔽人不才,能力有限,学习进度缓慢,不过也是有一点点的收获与心得,在这里写出来与大家分享,养成良好的记录习惯也免得后忘记。    不啰嗦了,开入正题。来公司一个月左右的时间,主要接触了高通android4.0和android2.3的LCD驱动,当然在bootloader下LCD的驱动我也调试的。    (1) kernel    先来说一下kerne

sdkdlwk的博客 2408

高通安卓调试LCD几方面总结

来公司上班现在已经整整一个月了,蔽人不才,能力有限,学习进度缓慢,不过也是有一点点的收获与心得,在这里写出来与大家分享,养成良好的记录习惯也免得后忘记。    不啰嗦了,开入正题。来公司一个月左右的时间,主要接触了高通android4.0和android2.3的LCD驱动,当然在bootloader下LCD的驱动我也调试的。      (1) kernel    先来说一下

sunnywalden 1122
上一篇: Linux Support for ARM LPAE 分析
下一篇: bootrom的类型
makeyourprogress
博客等级 码龄11年 26粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值