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

@ -53,7 +53,11 @@
gArmPlatformTokenSpaceGuid.PcdSendSgiToBringUpSecondaryCores|FALSE|BOOLEAN|0x00000004
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]
gArmPlatformTokenSpaceGuid.PcdCoreCount|1|UINT32|0x00000039
gArmPlatformTokenSpaceGuid.PcdClusterCount|1|UINT32|0x00000038

View File

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

View File

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

View File

@ -225,7 +225,13 @@ LcdGraphicsExitBootServicesEvent (
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
)
{
// Nothing to do in terms of hardware.
// We could switch off the monitor display if required
//TODO: ImplementMe
// Disable the controller
MmioAnd32 (PL111_REG_LCD_CONTROL, ~PL111_CTRL_LCD_EN);
}

View File

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