gma: Add procedure to power up legacy VGA block
Calling this is necessary for VGA text mode on at least Skylake, where
the legacy VGA registers are inaccessible otherwise.
Change-Id: I48ba1738bcc7babd4e666e5266f775dcd06b2a3f
Signed-off-by: Nico Huber <nico.huber@secunet.com>
Reviewed-on: https://review.coreboot.org/21323
Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
Tested-by: Nico Huber <nico.h@gmx.de>
diff --git a/common/hw-gfx-gma.adb b/common/hw-gfx-gma.adb
index 99a1276..6bc6fea 100644
--- a/common/hw-gfx-gma.adb
+++ b/common/hw-gfx-gma.adb
@@ -438,6 +438,23 @@
----------------------------------------------------------------------------
+ procedure Power_Up_VGA
+ is
+ Fake_Config : constant Pipe_Configs :=
+ (Primary =>
+ (Port => Analog,
+ Framebuffer => HW.GFX.Default_FB,
+ Mode => HW.GFX.Invalid_Mode),
+ others =>
+ (Port => Disabled,
+ Framebuffer => HW.GFX.Default_FB,
+ Mode => HW.GFX.Invalid_Mode));
+ begin
+ Power_And_Clocks.Power_Up (Cur_Configs, Fake_Config);
+ end Power_Up_VGA;
+
+ ----------------------------------------------------------------------------
+
function FB_First_Page (FB : Framebuffer_Type) return Natural is
(Natural (FB.Offset / GTT_Page_Size));
function FB_Pages (FB : Framebuffer_Type) return Natural is
diff --git a/common/hw-gfx-gma.ads b/common/hw-gfx-gma.ads
index 3771804..cd992b8 100644
--- a/common/hw-gfx-gma.ads
+++ b/common/hw-gfx-gma.ads
@@ -80,6 +80,12 @@
Global => (Input => Init_State);
pragma Warnings (GNATprove, On, "unused variable ""Write_Delay""");
+ pragma Warnings (GNATprove, Off, "subprogram ""Power_Up_VGA"" has no effect",
+ Reason => "Effect depends on the platform compiled for");
+ procedure Power_Up_VGA
+ with
+ Pre => Is_Initialized;
+
procedure Update_Outputs (Configs : Pipe_Configs);
pragma Warnings (GNATprove, Off, "subprogram ""Dump_Configs"" has no effect",