Nico Huber has submitted this change and it was merged. ( https://review.coreboot.org/c/libgfxinit/+/27066 )
Change subject: gma config: Initialize stateful configs late ......................................................................
gma config: Initialize stateful configs late
Defer initialization of config variables until GMA.Initialize().
Change-Id: I9192c9a7c4d67e4af7f3e26659489f58998ae832 Signed-off-by: Nico Huber nico.h@gmx.de Reviewed-on: https://review.coreboot.org/c/libgfxinit/+/27066 Reviewed-by: Arthur Heymans arthur@aheymans.xyz --- M common/hw-gfx-gma-config.ads.template M common/hw-gfx-gma.adb M common/hw-gfx-gma.ads 3 files changed, 13 insertions(+), 19 deletions(-)
Approvals: Nico Huber: Verified Arthur Heymans: Looks good to me, approved
diff --git a/common/hw-gfx-gma-config.ads.template b/common/hw-gfx-gma-config.ads.template index ea42443..d12a9f1 100644 --- a/common/hw-gfx-gma-config.ads.template +++ b/common/hw-gfx-gma-config.ads.template @@ -12,10 +12,7 @@ -- GNU General Public License for more details. --
-private package HW.GFX.GMA.Config -with - Initializes => Variable -is +private package HW.GFX.GMA.Config is
Gen : constant Generation := <<GEN>>;
@@ -64,11 +61,11 @@ Raw_Clock : Frequency_Type; end record;
- Variable : Variable_Config := + Initial_Settings : constant Variable_Config := (Valid_Port => (others => False), - Raw_Clock => Frequency_Type'First) - with - Part_Of => GMA.Config_State; + Raw_Clock => Frequency_Type'First); + + Variable : Variable_Config with Part_Of => GMA.Config_State;
Valid_Port : Valid_Port_Array renames Variable.Valid_Port; Raw_Clock : Frequency_Type renames Variable.Raw_Clock; diff --git a/common/hw-gfx-gma.adb b/common/hw-gfx-gma.adb index b62ebce..1d97adb 100644 --- a/common/hw-gfx-gma.adb +++ b/common/hw-gfx-gma.adb @@ -370,13 +370,11 @@ Success : out Boolean) with Refined_Global => - (In_Out => - (Config.Variable, Dev.PCI_State, - Registers.Register_State, Port_IO.State), - Input => - (Time.State), + (Input => (Time.State), + In_Out => (Dev.PCI_State, Registers.Register_State, Port_IO.State), Output => - (Dev.Address_State, + (Config.Variable, + Dev.Address_State, Registers.Address_State, PLLs.State, Panel.Panel_State, Cur_Configs, Allocated_PLLs, @@ -444,6 +442,7 @@ Framebuffer => HW.GFX.Default_FB, Cursor => Default_Cursor, Mode => HW.GFX.Invalid_Mode)); + Config.Variable := Config.Initial_Settings; PLLs.Initialize;
Dev.Initialize (Success); diff --git a/common/hw-gfx-gma.ads b/common/hw-gfx-gma.ads index db7f2bf..7c40dd9 100644 --- a/common/hw-gfx-gma.ads +++ b/common/hw-gfx-gma.ads @@ -25,9 +25,7 @@ Init_State, Config_State, (Device_State with External)), - Initializes => - (Init_State, - Config_State) + Initializes => Init_State is
GTT_Page_Size : constant := 4096; @@ -101,8 +99,8 @@ Success : out Boolean) with Global => - (In_Out => (Config_State, Device_State, Port_IO.State), - Output => (State, Init_State), + (In_Out => (Device_State, Port_IO.State), + Output => (State, Init_State, Config_State), Input => (Time.State)), Post => Success = Is_Initialized; function Is_Initialized return Boolean