Revision: 14702
http://sourceforge.net/p/edk2/code/14702
Author: oliviermartin
Date: 2013-09-23 09:40:27 +0000 (Mon, 23 Sep 2013)
Log Message:
-----------
ArmPlatformPkg/LcdGraphicsOutputDxe: Call LcdShutdown() on ExitBootServices()
if PcdGopDisableOnExitBootServices
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <[email protected]>
Modified Paths:
--------------
trunk/edk2/ArmPlatformPkg/ArmPlatformPkg.dec
trunk/edk2/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/HdLcd.c
trunk/edk2/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/HdLcdGraphicsOutputDxe.inf
trunk/edk2/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/LcdGraphicsOutputDxe.c
trunk/edk2/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111Lcd.c
trunk/edk2/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111LcdGraphicsOutputDxe.inf
Modified: trunk/edk2/ArmPlatformPkg/ArmPlatformPkg.dec
===================================================================
--- trunk/edk2/ArmPlatformPkg/ArmPlatformPkg.dec 2013-09-23 09:39:40 UTC
(rev 14701)
+++ trunk/edk2/ArmPlatformPkg/ArmPlatformPkg.dec 2013-09-23 09:40:27 UTC
(rev 14702)
@@ -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
Modified: trunk/edk2/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/HdLcd.c
===================================================================
--- trunk/edk2/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/HdLcd.c
2013-09-23 09:39:40 UTC (rev 14701)
+++ trunk/edk2/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/HdLcd.c
2013-09-23 09:40:27 UTC (rev 14702)
@@ -120,6 +120,6 @@
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);
}
Modified:
trunk/edk2/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/HdLcdGraphicsOutputDxe.inf
===================================================================
---
trunk/edk2/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/HdLcdGraphicsOutputDxe.inf
2013-09-23 09:39:40 UTC (rev 14701)
+++
trunk/edk2/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/HdLcdGraphicsOutputDxe.inf
2013-09-23 09:40:27 UTC (rev 14702)
@@ -56,5 +56,8 @@
[FixedPcd]
gArmPlatformTokenSpaceGuid.PcdArmHdLcdBase
+[FeaturePcd]
+ gArmPlatformTokenSpaceGuid.PcdGopDisableOnExitBootServices
+
[Depex]
gEfiCpuArchProtocolGuid
Modified:
trunk/edk2/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/LcdGraphicsOutputDxe.c
===================================================================
---
trunk/edk2/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/LcdGraphicsOutputDxe.c
2013-09-23 09:39:40 UTC (rev 14701)
+++
trunk/edk2/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/LcdGraphicsOutputDxe.c
2013-09-23 09:40:27 UTC (rev 14702)
@@ -225,7 +225,13 @@
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 ();
+ }
}
/***************************************
Modified: trunk/edk2/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111Lcd.c
===================================================================
--- trunk/edk2/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111Lcd.c
2013-09-23 09:39:40 UTC (rev 14701)
+++ trunk/edk2/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111Lcd.c
2013-09-23 09:40:27 UTC (rev 14702)
@@ -99,8 +99,6 @@
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);
}
Modified:
trunk/edk2/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111LcdGraphicsOutputDxe.inf
===================================================================
---
trunk/edk2/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111LcdGraphicsOutputDxe.inf
2013-09-23 09:39:40 UTC (rev 14701)
+++
trunk/edk2/ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111LcdGraphicsOutputDxe.inf
2013-09-23 09:40:27 UTC (rev 14702)
@@ -52,5 +52,8 @@
[FixedPcd]
gArmPlatformTokenSpaceGuid.PcdPL111LcdBase
+[FeaturePcd]
+ gArmPlatformTokenSpaceGuid.PcdGopDisableOnExitBootServices
+
[Depex]
gEfiCpuArchProtocolGuid
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99!
1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint
2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack includes
Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13.
http://pubads.g.doubleclick.net/gampad/clk?id=58041151&iu=/4140/ostg.clktrk
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits