edk2 lcd display 代码流程

tech2025-08-11  18

         * DisplayDxe_SetMode --> MDPSetMode --> MDPSetupPipe          *                                   --> MDPPanelInit --> DSIDriver_SetMode --> send init sequence

    |-- DisplayDxeInitialize()[DisplayDxe.c]         |-- gBS->CreateEvent(DisplayDxeExitBootServicesEvent)         |-- gBS->CreateEventEx(BlockIoCallback)         |-- gBS->CreateEventEx(UIActiveEventCallBack)         |-- gBS->CreateEventEx(UIIdleEventCallBack)         |-- DisplayPwr_InitLPMSupport(TRUE)         |-- MDPSetProperty(MDP_DISPLAY_PROPERTY_ABL_INTERFACE_INIT)             |-- Display_Utils_Initialize()[MDPLib.c]                 |-- CheckTargetPanelSupport()                 |-- CheckPanelOverride()         |-- MDPInit(MDP_INIT_FLAG_MMU_INIT)         |-- MDPPower()             |-- if(bPowerOn) MDPPlatformConfigure(MDPPLATFORM_CONFIG_POWERUP)[MDPLib.c]                 |-- pPanel_PowerUp()                     |-- Panel_Default_PowerUp()                         |-- PlatformClientInit()                         |-- ConfigGpio()                 |-- pPanel_Peripheral_Power()                 else MDPPlatformConfigure(MDPPLATFORM_CONFIG_POWERDOWN)         |-- MDPDetect(MDP_DISPLAY_PRIMARY)             |-- MDPDetectPanel()                 |-- XML_UpdateTag("DSIInitSequence")                 |-- XML_UpdateTag("DSITermSequence")                 |-- XML_UpdateTag("I2CInitSequence")                 |-- XML_UpdateTag("I2CTermSequence")                 |-- MDPPlatformConfigure(MDPPLATFORM_CONFIG_GETPANELCONFIG)                     |-- SwitchPanelId()                         |-- gBS->LocateProtocol(&gEfiTLMMProtocolGuid)                     |-- FindPanelIndex()                     |-- GetPanelXmlConfig()                 |-- XML_Parser(&sXmlTagsList)             |-- Display_Utils_SetPanelConfiguration()                 |-- UpdatePanelConfiguration()                     |-- UpdateDisplayParams()                         |-- MDPPlatformConfigure(MDPPLATFORM_CONFIG_GETPANELSUPPORTFLAGS)                 |-- MDP_SetBootServiceVariable(DISPVAR_PANEL_CONFIGURATION)

        |-- DisplayDxeSelectMode()         |-- MDPSetProperty(MDP_DISPLAY_PROPERTY_POWER_STATE)             |--          |-- gBS->InstallMultipleProtocolInterfaces()         |-- GetConfigValue("EnableDisplayThread")         |-- SetModeThread("disp")             |-- DisplayDxe_SetMode()[DisplayDxe.c]                 |-- MDPSetMode(MDP_DISPLAY_PRIMARY)[MDPLib.c]                     |-- if(Display_Utils_CheckPanelSkip())                     |-- MDP_GET_DISPLAYINFO()                     |-- MDPSetGPIOState()[]                         |-- MDPPlatformConfigure(MDPPLATFORM_CONFIG_SETGPIOSTATE)[MDPPlatformLib.c]                             |-- PlatformConfigRemap()                             |-- SetDefaultGPIOState()                                 |-- gBS->LocateProtocol(&gEfiTLMMProtocolGuid)                                 |-- ConfigGpio()                                 |-- GpioOut()                     |-- MDPSetupPipe()[MDPConfig.c]                     |-- MDPPanelInit()[MDPPanel.c]                         |-- DsiPanelInit()[dsiDriver.c]                             |-- DSIDriver_Init()[dsiDriver.c]                                 |-- MDPSetupClocks()[..]                                     |-- gBS->LocateProtocol()[]                                 |-- DSI_Device_Open()                                      |-- I2CDriver_Init()                             |-- MDPPlatformConfigure(MDPPLATFORM_CONFIG_RESETPANEL)                                 |-- sMDPPlatformPanelFunction.pPanel_Reset()[MDPPlatformLibPanelConfig.h]                                 |-- Panel_Default_Reset()[MDPPlatformLibPanelCommon.c]                                     |-- gBS->LocateProtocol(&gEfiTLMMProtocolGuid)                                     |-- TLMMProtocol->ConfigGpio(uResetGpio)                             |-- DSIDriver_SetMode()[dsiDriver.c]                                 |-- DSI_Display_Open                                 |-- DSI_Display_Commit()                                     |-- dsiShared_Comit()                                         |-- dsiShared_DeviceHandle2Id()                                         |-- DSIHOST_GET_USERCTX()                                         |-- HAL_DSI_ClockConfig()                                         |-- dsiShared_CommitVideoModeConfig()                                         |--                                  |-- DSI_Display_SetProperty(DSI_DISPLAY_PROPERTYID_SETSCRATCH1)                                 |-- DSI_Display_SetProperty(DSI_DISPLAY_PROPERTYID_LANESTATE)                                 |-- SendPanelXMLSequence(pInitBuffer)                                 |--                      |-- MDPStartPipe()                         |-- HAL_MDP_Interface_Enable()                     |-- MDPPanelSendCommandSequence(MDP_PANEL_COMMAND_INIT)[MDPPanel.c]                         |--DsiPanelSendCommandSequence()[dsiDriver.c]                             |-- SendPanelXMLSequence()                                     |-- DSI_Display_GetProperty()                                 |-- DSI_Display_ClientWrite()                     |-- MDPPanelSendCommandSequence(MDP_PANEL_COMMAND_PPS)                         |--                 |-- GetChargerPowerStatus()                     |-- gBS->LocateProtocol(&gChargerExProtocolGuid)                     |--                 |-- MDPSetProperty(MDP_DISPLAY_PROPERTY_BACKLIGHT)[MDPLib.c]                     |-- MDPPlatformConfigure(MDPPLATFORM_CONFIG_SETBACKLIGHT)[MDPPlatformLib.c]                         |-- pPanel_Brightness_Enable()[MDPPlatformLibPanelConfig.h]                             |-- Panel_Default_Brightness_Enable()[MDPPlatformLibPanelCommon.c]                                 |-- gBS->LocateProtocol(&gQcomPmicGpioProtocolGuid()                                 |-- ConfigDigitalOutput()                                 |-- PMICPWMProtocol->PwmConfig()                 |-- MDPSetProperty(MDP_DISPLAY_PROPERTY_FIRMWAREENV)  

reference to:

https://www.programmersought.com/article/57332096500/        

https://www.codeleading.com/article/29811438853/

                        

最新回复(0)