Android Qcom Display学习(五)

本文详细介绍了高通平台上的UEFI启动流程,包括XBL和ABL两个部分,以及在Display初始化中的重要作用。讲解了UEFI如何检测和配置屏幕,如SW_RENDER模式、面板检测和Override机制。同时,涉及关键函数如MDPPlatformConfigure在配置显示过程中的应用,以及不同阶段的配置参数和结构体。

该系列文章总目录链接与各部分简介: Android Qcom Display学习(零)
https://www.guidgenerator.com/online-guid-generator.aspx

什么是UEFI

高通平台UEFI有关介绍
高通605平台屏调试(4):UEFI初始化流程
Android SDM660开机流程- UEFI XBL 代码流程分析

第一次接触到UEFI(Unified Extensible Firmware Interfacen ,统一可扩展固件接口)是实习的时候,主要是服务器的底层,当时以为只有服务器或者PC主机的Bootloader才是UEFI,现在也忘的差不多了,在高通平台上继续学习一下

高通UEFI主要分为XBL和ABL两部分组成。
XBL负责芯片驱动及充电等核心应用功能,XBL核心是none-HLOS boot_image代码的一部分,属于高通私有代码。
ABL包括芯片无关的应用,ABL则在开源Linux Android代码树里,负责Linux加载启动及fastboot等功能组件。
高通UEFI启动流程:SEC(安全验证) DXE(驱动执行环境) BDS(启动设备选择) RT(OS Loader)
uefi

Display

高通UEFI研究[五]
【Android SDM660源码分析】- 03 - UEFI XBL GraphicsOutput BMP图片显示流程
LCD Porting的原则:先点亮Kernel,再点亮UEFI。
amss/BOOT.XF.4.1/boot_images/QcomPkg/Drivers/DisplayDxe/DisplayDxe.inf DisplayDxe.c
amss/BOOT.XF.4.1/boot_images/QcomPkg/Library/MDPLib/MDPLib.c DisplayUtils.c
在这里插入图片描述

(1)ABL fastboot override list     boverride
(2)XBL dynamic  detect panel id   bDetectPanel 
(3)SW RENDER  bSWRender 比如DISP_MODE_PANEL_NONE DISP_MODE_SKIP_BOOTLOADER 

SetupPlatformPanelConfig判断是否是SW RENDER(3)或者override panel(1)或者default panel(2);
default panel中pDetectPanel = TRUE才触发DynamicDSIPanelDetection,(1)(3)有一个满足都不会执行
ENTRY_POINT                    = DisplayDxeInitialize
    MDPSetProperty(MDP_DISPLAY_PRIMARY, MDP_DISPLAY_PROPERTY_ABL_INTERFACE_INIT, NULL)
    	Display_Utils_Initialize();/* 初始化ABL Later中Display的配置内容 */
    		checkTargetPanelSupport(); /* 获取支持的面板列表 */
    			MDPPlatformConfigure(MDP_DISPLAY_PRIMARY, MDPPLATFORM_CONFIG_GETPANELDTINFO, &sPlatformParams) ↓↓↓
    		CheckPanelOverride(); /* 检查是否fastboot oem panel name手动设置新的面板,默认不处理 bPanelOverride */
    		pDisplayContext->bOverride  = ParsePanelOverrideCommand(panelOverrideStr, &pDisplayContext->sDisplayParams);↓↓↓
    MDPInit(&sInitParam, MDP_INIT_FLAG_MMU_INIT)  /* MDPInit获取当前屏的硬件配置和屏的信息 */
    	MDPPlatformConfigure(MDP_DISPLAY_PRIMARY, MDPPLATFORM_CONFIG_SW_RENDERER, &sPlatformParams) ↓↓↓
    	FALSE == bSWRender /* SW_RENERER模式是没有屏的情况下,使用了一个默认的最低配置 */
    		MDPPlatformConfigure(MDP_DISPLAY_PRIMARY, MDPPLATFORM_CONFIG_GETPLATFORMINFO, &sPlatformParams) 
	MDPPower
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值