ArmPlatformPkg/LcdGraphicsOutputDxe: Call LcdShutdown() on ExitBootServices() if PcdGopDisableOnExitBootServices

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14702 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Olivier Martin 2013-09-23 09:40:27 +00:00 committed by oliviermartin
parent 64669acab3
commit d8c4bb9afa
6 changed files with 22 additions and 8 deletions

View File

@ -54,6 +54,10 @@
gArmPlatformTokenSpaceGuid.PcdNorFlashCheckBlockLocked|FALSE|BOOLEAN|0x0000003C gArmPlatformTokenSpaceGuid.PcdNorFlashCheckBlockLocked|FALSE|BOOLEAN|0x0000003C
# Disable the GOP controller on ExitBootServices(). By default the value is FALSE,
# we assume the OS will handle the FrameBuffer from the UEFI GOP information.
gArmPlatformTokenSpaceGuid.PcdGopDisableOnExitBootServices|FALSE|BOOLEAN|0x0000003D
[PcdsFixedAtBuild.common] [PcdsFixedAtBuild.common]
gArmPlatformTokenSpaceGuid.PcdCoreCount|1|UINT32|0x00000039 gArmPlatformTokenSpaceGuid.PcdCoreCount|1|UINT32|0x00000039
gArmPlatformTokenSpaceGuid.PcdClusterCount|1|UINT32|0x00000038 gArmPlatformTokenSpaceGuid.PcdClusterCount|1|UINT32|0x00000038

View File

@ -120,6 +120,6 @@ LcdShutdown (
VOID VOID
) )
{ {
// Nothing to do in terms of hardware. // Disable the controller
// We could switch off the monitor display if required MmioWrite32 (HDLCD_REG_COMMAND, HDLCD_DISABLE);
} }

View File

@ -56,5 +56,8 @@
[FixedPcd] [FixedPcd]
gArmPlatformTokenSpaceGuid.PcdArmHdLcdBase gArmPlatformTokenSpaceGuid.PcdArmHdLcdBase
[FeaturePcd]
gArmPlatformTokenSpaceGuid.PcdGopDisableOnExitBootServices
[Depex] [Depex]
gEfiCpuArchProtocolGuid gEfiCpuArchProtocolGuid

View File

@ -225,7 +225,13 @@ LcdGraphicsExitBootServicesEvent (
IN VOID *Context IN VOID *Context
) )
{ {
//TODO: Implement me // By default, this PCD is FALSE. But if a platform starts a predefined OS that
// does not use a framebuffer then we might want to disable the display controller
// to avoid to display corrupted information on the screen.
if (FeaturePcdGet (PcdGopDisableOnExitBootServices)) {
// Turn-off the Display controller
LcdShutdown ();
}
} }
/*************************************** /***************************************

View File

@ -99,8 +99,6 @@ LcdShutdown (
VOID VOID
) )
{ {
// Nothing to do in terms of hardware. // Disable the controller
// We could switch off the monitor display if required MmioAnd32 (PL111_REG_LCD_CONTROL, ~PL111_CTRL_LCD_EN);
//TODO: ImplementMe
} }

View File

@ -52,5 +52,8 @@
[FixedPcd] [FixedPcd]
gArmPlatformTokenSpaceGuid.PcdPL111LcdBase gArmPlatformTokenSpaceGuid.PcdPL111LcdBase
[FeaturePcd]
gArmPlatformTokenSpaceGuid.PcdGopDisableOnExitBootServices
[Depex] [Depex]
gEfiCpuArchProtocolGuid gEfiCpuArchProtocolGuid