diff --git a/common/broxton/Makefile.inc b/common/broxton/Makefile.inc index 90241b2f20..0197c6aba0 100644 --- a/common/broxton/Makefile.inc +++ b/common/broxton/Makefile.inc @@ -1,3 +1,4 @@ +gfxinit-y += hw-gfx-gma-connectors-ddi-buffers.ads gfxinit-y += hw-gfx-gma-ddi_phy.adb gfxinit-y += hw-gfx-gma-ddi_phy.ads gfxinit-y += hw-gfx-gma-plls.adb diff --git a/common/broxton/hw-gfx-gma-connectors-ddi-buffers.ads b/common/broxton/hw-gfx-gma-connectors-ddi-buffers.ads new file mode 100644 index 0000000000..499226aaa2 --- /dev/null +++ b/common/broxton/hw-gfx-gma-connectors-ddi-buffers.ads @@ -0,0 +1,21 @@ +-- +-- Copyright (C) 2017 secunet Security Networks AG +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- + +private package HW.GFX.GMA.Connectors.DDI.Buffers +is + + procedure Translations (Trans : out Buf_Trans_Array; Port : Digital_Port) + is null; + +end HW.GFX.GMA.Connectors.DDI.Buffers; diff --git a/common/haswell/Makefile.inc b/common/haswell/Makefile.inc index 7ba430e6d6..dda1fc96ee 100644 --- a/common/haswell/Makefile.inc +++ b/common/haswell/Makefile.inc @@ -1,3 +1,4 @@ +gfxinit-y += hw-gfx-gma-connectors-ddi-buffers.ads gfxinit-y += hw-gfx-gma-ddi_phy.ads gfxinit-y += hw-gfx-gma-plls-lcpll.ads gfxinit-y += hw-gfx-gma-plls-wrpll.adb diff --git a/common/haswell/hw-gfx-gma-connectors-ddi-buffers.ads b/common/haswell/hw-gfx-gma-connectors-ddi-buffers.ads new file mode 100644 index 0000000000..499226aaa2 --- /dev/null +++ b/common/haswell/hw-gfx-gma-connectors-ddi-buffers.ads @@ -0,0 +1,21 @@ +-- +-- Copyright (C) 2017 secunet Security Networks AG +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- + +private package HW.GFX.GMA.Connectors.DDI.Buffers +is + + procedure Translations (Trans : out Buf_Trans_Array; Port : Digital_Port) + is null; + +end HW.GFX.GMA.Connectors.DDI.Buffers; diff --git a/common/haswell_shared/hw-gfx-gma-connectors-ddi.adb b/common/haswell_shared/hw-gfx-gma-connectors-ddi.adb index a7c1b9ec06..091f36db96 100644 --- a/common/haswell_shared/hw-gfx-gma-connectors-ddi.adb +++ b/common/haswell_shared/hw-gfx-gma-connectors-ddi.adb @@ -1,5 +1,5 @@ -- --- Copyright (C) 2015-2016 secunet Security Networks AG +-- Copyright (C) 2015-2017 secunet Security Networks AG -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -22,6 +22,7 @@ with HW.GFX.GMA.DP_Info; with HW.GFX.GMA.DP_Aux_Ch; with HW.GFX.GMA.SPLL; with HW.GFX.GMA.DDI_Phy; +with HW.GFX.GMA.Connectors.DDI.Buffers; with HW.Debug; with GNAT.Source_Info; @@ -94,8 +95,12 @@ package body HW.GFX.GMA.Connectors.DDI is HW.GFX.DP_Bandwidth_2_7 => PORT_CLK_SEL_LCPLL1350, HW.GFX.DP_Bandwidth_5_4 => PORT_CLK_SEL_LCPLL2700); + type DDI_Buf_Trans_Regs_Array + is array (Buf_Trans_Range) of Registers.Registers_Index; + type DDI_Registers is record BUF_CTL : Registers.Registers_Index; + BUF_TRANS : DDI_Buf_Trans_Regs_Array; DP_TP_CTL : Registers.Registers_Index; DP_TP_STATUS : Registers.Registers_Invalid_Index; PORT_CLK_SEL : Registers.Registers_Index; @@ -106,26 +111,131 @@ package body HW.GFX.GMA.Connectors.DDI is DDI_Regs : constant DDI_Registers_Array := DDI_Registers_Array' (DIGI_A => DDI_Registers' (BUF_CTL => Registers.DDI_BUF_CTL_A, + BUF_TRANS => DDI_Buf_Trans_Regs_Array' + (Registers.DDI_BUF_TRANS_A_S0T1, + Registers.DDI_BUF_TRANS_A_S0T2, + Registers.DDI_BUF_TRANS_A_S1T1, + Registers.DDI_BUF_TRANS_A_S1T2, + Registers.DDI_BUF_TRANS_A_S2T1, + Registers.DDI_BUF_TRANS_A_S2T2, + Registers.DDI_BUF_TRANS_A_S3T1, + Registers.DDI_BUF_TRANS_A_S3T2, + Registers.DDI_BUF_TRANS_A_S4T1, + Registers.DDI_BUF_TRANS_A_S4T2, + Registers.DDI_BUF_TRANS_A_S5T1, + Registers.DDI_BUF_TRANS_A_S5T2, + Registers.DDI_BUF_TRANS_A_S6T1, + Registers.DDI_BUF_TRANS_A_S6T2, + Registers.DDI_BUF_TRANS_A_S7T1, + Registers.DDI_BUF_TRANS_A_S7T2, + Registers.DDI_BUF_TRANS_A_S8T1, + Registers.DDI_BUF_TRANS_A_S8T2, + Registers.DDI_BUF_TRANS_A_S9T1, + Registers.DDI_BUF_TRANS_A_S9T2), DP_TP_CTL => Registers.DP_TP_CTL_A, DP_TP_STATUS => Registers.Invalid_Register, PORT_CLK_SEL => Registers.PORT_CLK_SEL_DDIA), DIGI_B => DDI_Registers' (BUF_CTL => Registers.DDI_BUF_CTL_B, + BUF_TRANS => DDI_Buf_Trans_Regs_Array' + (Registers.DDI_BUF_TRANS_B_S0T1, + Registers.DDI_BUF_TRANS_B_S0T2, + Registers.DDI_BUF_TRANS_B_S1T1, + Registers.DDI_BUF_TRANS_B_S1T2, + Registers.DDI_BUF_TRANS_B_S2T1, + Registers.DDI_BUF_TRANS_B_S2T2, + Registers.DDI_BUF_TRANS_B_S3T1, + Registers.DDI_BUF_TRANS_B_S3T2, + Registers.DDI_BUF_TRANS_B_S4T1, + Registers.DDI_BUF_TRANS_B_S4T2, + Registers.DDI_BUF_TRANS_B_S5T1, + Registers.DDI_BUF_TRANS_B_S5T2, + Registers.DDI_BUF_TRANS_B_S6T1, + Registers.DDI_BUF_TRANS_B_S6T2, + Registers.DDI_BUF_TRANS_B_S7T1, + Registers.DDI_BUF_TRANS_B_S7T2, + Registers.DDI_BUF_TRANS_B_S8T1, + Registers.DDI_BUF_TRANS_B_S8T2, + Registers.DDI_BUF_TRANS_B_S9T1, + Registers.DDI_BUF_TRANS_B_S9T2), DP_TP_CTL => Registers.DP_TP_CTL_B, DP_TP_STATUS => Registers.DP_TP_STATUS_B, PORT_CLK_SEL => Registers.PORT_CLK_SEL_DDIB), DIGI_C => DDI_Registers' (BUF_CTL => Registers.DDI_BUF_CTL_C, + BUF_TRANS => DDI_Buf_Trans_Regs_Array' + (Registers.DDI_BUF_TRANS_C_S0T1, + Registers.DDI_BUF_TRANS_C_S0T2, + Registers.DDI_BUF_TRANS_C_S1T1, + Registers.DDI_BUF_TRANS_C_S1T2, + Registers.DDI_BUF_TRANS_C_S2T1, + Registers.DDI_BUF_TRANS_C_S2T2, + Registers.DDI_BUF_TRANS_C_S3T1, + Registers.DDI_BUF_TRANS_C_S3T2, + Registers.DDI_BUF_TRANS_C_S4T1, + Registers.DDI_BUF_TRANS_C_S4T2, + Registers.DDI_BUF_TRANS_C_S5T1, + Registers.DDI_BUF_TRANS_C_S5T2, + Registers.DDI_BUF_TRANS_C_S6T1, + Registers.DDI_BUF_TRANS_C_S6T2, + Registers.DDI_BUF_TRANS_C_S7T1, + Registers.DDI_BUF_TRANS_C_S7T2, + Registers.DDI_BUF_TRANS_C_S8T1, + Registers.DDI_BUF_TRANS_C_S8T2, + Registers.DDI_BUF_TRANS_C_S9T1, + Registers.DDI_BUF_TRANS_C_S9T2), DP_TP_CTL => Registers.DP_TP_CTL_C, DP_TP_STATUS => Registers.DP_TP_STATUS_C, PORT_CLK_SEL => Registers.PORT_CLK_SEL_DDIC), DIGI_D => DDI_Registers' (BUF_CTL => Registers.DDI_BUF_CTL_D, + BUF_TRANS => DDI_Buf_Trans_Regs_Array' + (Registers.DDI_BUF_TRANS_D_S0T1, + Registers.DDI_BUF_TRANS_D_S0T2, + Registers.DDI_BUF_TRANS_D_S1T1, + Registers.DDI_BUF_TRANS_D_S1T2, + Registers.DDI_BUF_TRANS_D_S2T1, + Registers.DDI_BUF_TRANS_D_S2T2, + Registers.DDI_BUF_TRANS_D_S3T1, + Registers.DDI_BUF_TRANS_D_S3T2, + Registers.DDI_BUF_TRANS_D_S4T1, + Registers.DDI_BUF_TRANS_D_S4T2, + Registers.DDI_BUF_TRANS_D_S5T1, + Registers.DDI_BUF_TRANS_D_S5T2, + Registers.DDI_BUF_TRANS_D_S6T1, + Registers.DDI_BUF_TRANS_D_S6T2, + Registers.DDI_BUF_TRANS_D_S7T1, + Registers.DDI_BUF_TRANS_D_S7T2, + Registers.DDI_BUF_TRANS_D_S8T1, + Registers.DDI_BUF_TRANS_D_S8T2, + Registers.DDI_BUF_TRANS_D_S9T1, + Registers.DDI_BUF_TRANS_D_S9T2), DP_TP_CTL => Registers.DP_TP_CTL_D, DP_TP_STATUS => Registers.DP_TP_STATUS_D, PORT_CLK_SEL => Registers.PORT_CLK_SEL_DDID), DIGI_E => DDI_Registers' (BUF_CTL => Registers.DDI_BUF_CTL_E, + BUF_TRANS => DDI_Buf_Trans_Regs_Array' + (Registers.DDI_BUF_TRANS_E_S0T1, + Registers.DDI_BUF_TRANS_E_S0T2, + Registers.DDI_BUF_TRANS_E_S1T1, + Registers.DDI_BUF_TRANS_E_S1T2, + Registers.DDI_BUF_TRANS_E_S2T1, + Registers.DDI_BUF_TRANS_E_S2T2, + Registers.DDI_BUF_TRANS_E_S3T1, + Registers.DDI_BUF_TRANS_E_S3T2, + Registers.DDI_BUF_TRANS_E_S4T1, + Registers.DDI_BUF_TRANS_E_S4T2, + Registers.DDI_BUF_TRANS_E_S5T1, + Registers.DDI_BUF_TRANS_E_S5T2, + Registers.DDI_BUF_TRANS_E_S6T1, + Registers.DDI_BUF_TRANS_E_S6T2, + Registers.DDI_BUF_TRANS_E_S7T1, + Registers.DDI_BUF_TRANS_E_S7T2, + Registers.DDI_BUF_TRANS_E_S8T1, + Registers.DDI_BUF_TRANS_E_S8T2, + Registers.DDI_BUF_TRANS_E_S9T1, + Registers.DDI_BUF_TRANS_E_S9T2), DP_TP_CTL => Registers.DP_TP_CTL_E, DP_TP_STATUS => Registers.DP_TP_STATUS_E, PORT_CLK_SEL => Registers.PORT_CLK_SEL_DDIE)); @@ -174,6 +284,33 @@ package body HW.GFX.GMA.Connectors.DDI is ---------------------------------------------------------------------------- + procedure Program_Buffer_Translations (Port : Digital_Port) + is + Buffer_Translations : Buf_Trans_Array; + begin + Buffers.Translations (Buffer_Translations, Port); + for I in Buf_Trans_Range loop + Registers.Write + (Register => DDI_Regs (Port).BUF_TRANS (I), + Value => Buffer_Translations (I)); + end loop; + end Program_Buffer_Translations; + + procedure Initialize + is + begin + if Config.Has_DDI_Buffer_Trans then + for Port in Digital_Port range DIGI_A .. Config.Last_Digital_Port loop + Program_Buffer_Translations (Port); + end loop; + if Config.Is_FDI_Port (Analog) then + Program_Buffer_Translations (DIGI_E); + end if; + end if; + end Initialize; + + ---------------------------------------------------------------------------- + function Max_V_Swing (Port : Digital_Port) return DP_Info.DP_Voltage_Swing diff --git a/common/haswell_shared/hw-gfx-gma-connectors-ddi.ads b/common/haswell_shared/hw-gfx-gma-connectors-ddi.ads index 465e7eb075..4ccd995804 100644 --- a/common/haswell_shared/hw-gfx-gma-connectors-ddi.ads +++ b/common/haswell_shared/hw-gfx-gma-connectors-ddi.ads @@ -1,5 +1,5 @@ -- --- Copyright (C) 2015 secunet Security Networks AG +-- Copyright (C) 2015-2017 secunet Security Networks AG -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -17,6 +17,8 @@ with HW.GFX.GMA.Registers; private package HW.GFX.GMA.Connectors.DDI is + procedure Initialize; + procedure Pre_On (Port_Cfg : in Port_Config; PLL_Hint : in Word32; @@ -26,4 +28,8 @@ is procedure Off (Port : Digital_Port); +private + type Buf_Trans_Range is range 0 .. 19; + type Buf_Trans_Array is array (Buf_Trans_Range) of Word32; + end HW.GFX.GMA.Connectors.DDI; diff --git a/common/haswell_shared/hw-gfx-gma-connectors.adb b/common/haswell_shared/hw-gfx-gma-connectors.adb index 1af86ac430..f5e2e016a2 100644 --- a/common/haswell_shared/hw-gfx-gma-connectors.adb +++ b/common/haswell_shared/hw-gfx-gma-connectors.adb @@ -1,5 +1,5 @@ -- --- Copyright (C) 2015-2016 secunet Security Networks AG +-- Copyright (C) 2015-2017 secunet Security Networks AG -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -24,7 +24,7 @@ package body HW.GFX.GMA.Connectors is procedure Initialize is begin - null; + DDI.Initialize; end Initialize; procedure Pre_On diff --git a/common/hw-gfx-gma-config.ads.template b/common/hw-gfx-gma-config.ads.template index 7d6806a4d6..f9fe429820 100644 --- a/common/hw-gfx-gma-config.ads.template +++ b/common/hw-gfx-gma-config.ads.template @@ -1,5 +1,5 @@ -- --- Copyright (C) 2015-2016 secunet Security Networks AG +-- Copyright (C) 2015-2017 secunet Security Networks AG -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -92,6 +92,7 @@ is and CPU_Var = Normal) or CPU >= Skylake; + Has_DDI_Buffer_Trans : constant Boolean := False; Has_Low_Voltage_Swing : constant Boolean := CPU >= Broxton; Need_DP_Aux_Mutex : constant Boolean := False; -- Skylake & (PSR | GTC) diff --git a/common/hw-gfx-gma-registers.ads b/common/hw-gfx-gma-registers.ads index 70c27ccf2d..ef257705e9 100644 --- a/common/hw-gfx-gma-registers.ads +++ b/common/hw-gfx-gma-registers.ads @@ -1,5 +1,5 @@ -- --- Copyright (C) 2015-2016 secunet Security Networks AG +-- Copyright (C) 2015-2017 secunet Security Networks AG -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -220,6 +220,106 @@ is BXT_PHY_CTL_C, BXT_PHY_CTL_FAM_EDP, BXT_PHY_CTL_FAM_DDI, + DDI_BUF_TRANS_A_S0T1, + DDI_BUF_TRANS_A_S0T2, + DDI_BUF_TRANS_A_S1T1, + DDI_BUF_TRANS_A_S1T2, + DDI_BUF_TRANS_A_S2T1, + DDI_BUF_TRANS_A_S2T2, + DDI_BUF_TRANS_A_S3T1, + DDI_BUF_TRANS_A_S3T2, + DDI_BUF_TRANS_A_S4T1, + DDI_BUF_TRANS_A_S4T2, + DDI_BUF_TRANS_A_S5T1, + DDI_BUF_TRANS_A_S5T2, + DDI_BUF_TRANS_A_S6T1, + DDI_BUF_TRANS_A_S6T2, + DDI_BUF_TRANS_A_S7T1, + DDI_BUF_TRANS_A_S7T2, + DDI_BUF_TRANS_A_S8T1, + DDI_BUF_TRANS_A_S8T2, + DDI_BUF_TRANS_A_S9T1, + DDI_BUF_TRANS_A_S9T2, + DDI_BUF_TRANS_B_S0T1, + DDI_BUF_TRANS_B_S0T2, + DDI_BUF_TRANS_B_S1T1, + DDI_BUF_TRANS_B_S1T2, + DDI_BUF_TRANS_B_S2T1, + DDI_BUF_TRANS_B_S2T2, + DDI_BUF_TRANS_B_S3T1, + DDI_BUF_TRANS_B_S3T2, + DDI_BUF_TRANS_B_S4T1, + DDI_BUF_TRANS_B_S4T2, + DDI_BUF_TRANS_B_S5T1, + DDI_BUF_TRANS_B_S5T2, + DDI_BUF_TRANS_B_S6T1, + DDI_BUF_TRANS_B_S6T2, + DDI_BUF_TRANS_B_S7T1, + DDI_BUF_TRANS_B_S7T2, + DDI_BUF_TRANS_B_S8T1, + DDI_BUF_TRANS_B_S8T2, + DDI_BUF_TRANS_B_S9T1, + DDI_BUF_TRANS_B_S9T2, + DDI_BUF_TRANS_C_S0T1, + DDI_BUF_TRANS_C_S0T2, + DDI_BUF_TRANS_C_S1T1, + DDI_BUF_TRANS_C_S1T2, + DDI_BUF_TRANS_C_S2T1, + DDI_BUF_TRANS_C_S2T2, + DDI_BUF_TRANS_C_S3T1, + DDI_BUF_TRANS_C_S3T2, + DDI_BUF_TRANS_C_S4T1, + DDI_BUF_TRANS_C_S4T2, + DDI_BUF_TRANS_C_S5T1, + DDI_BUF_TRANS_C_S5T2, + DDI_BUF_TRANS_C_S6T1, + DDI_BUF_TRANS_C_S6T2, + DDI_BUF_TRANS_C_S7T1, + DDI_BUF_TRANS_C_S7T2, + DDI_BUF_TRANS_C_S8T1, + DDI_BUF_TRANS_C_S8T2, + DDI_BUF_TRANS_C_S9T1, + DDI_BUF_TRANS_C_S9T2, + DDI_BUF_TRANS_D_S0T1, + DDI_BUF_TRANS_D_S0T2, + DDI_BUF_TRANS_D_S1T1, + DDI_BUF_TRANS_D_S1T2, + DDI_BUF_TRANS_D_S2T1, + DDI_BUF_TRANS_D_S2T2, + DDI_BUF_TRANS_D_S3T1, + DDI_BUF_TRANS_D_S3T2, + DDI_BUF_TRANS_D_S4T1, + DDI_BUF_TRANS_D_S4T2, + DDI_BUF_TRANS_D_S5T1, + DDI_BUF_TRANS_D_S5T2, + DDI_BUF_TRANS_D_S6T1, + DDI_BUF_TRANS_D_S6T2, + DDI_BUF_TRANS_D_S7T1, + DDI_BUF_TRANS_D_S7T2, + DDI_BUF_TRANS_D_S8T1, + DDI_BUF_TRANS_D_S8T2, + DDI_BUF_TRANS_D_S9T1, + DDI_BUF_TRANS_D_S9T2, + DDI_BUF_TRANS_E_S0T1, + DDI_BUF_TRANS_E_S0T2, + DDI_BUF_TRANS_E_S1T1, + DDI_BUF_TRANS_E_S1T2, + DDI_BUF_TRANS_E_S2T1, + DDI_BUF_TRANS_E_S2T2, + DDI_BUF_TRANS_E_S3T1, + DDI_BUF_TRANS_E_S3T2, + DDI_BUF_TRANS_E_S4T1, + DDI_BUF_TRANS_E_S4T2, + DDI_BUF_TRANS_E_S5T1, + DDI_BUF_TRANS_E_S5T2, + DDI_BUF_TRANS_E_S6T1, + DDI_BUF_TRANS_E_S6T2, + DDI_BUF_TRANS_E_S7T1, + DDI_BUF_TRANS_E_S7T2, + DDI_BUF_TRANS_E_S8T1, + DDI_BUF_TRANS_E_S8T2, + DDI_BUF_TRANS_E_S9T1, + DDI_BUF_TRANS_E_S9T2, AUD_VID_DID, PFA_WIN_POS, PFA_WIN_SZ, @@ -858,6 +958,26 @@ is -- DDI registers DDI_BUF_CTL_A => 16#06_4000# / Register_Width, -- aliased by DP_CTL_A + DDI_BUF_TRANS_A_S0T1 => 16#06_4e00# / Register_Width, + DDI_BUF_TRANS_A_S0T2 => 16#06_4e04# / Register_Width, + DDI_BUF_TRANS_A_S1T1 => 16#06_4e08# / Register_Width, + DDI_BUF_TRANS_A_S1T2 => 16#06_4e0c# / Register_Width, + DDI_BUF_TRANS_A_S2T1 => 16#06_4e10# / Register_Width, + DDI_BUF_TRANS_A_S2T2 => 16#06_4e14# / Register_Width, + DDI_BUF_TRANS_A_S3T1 => 16#06_4e18# / Register_Width, + DDI_BUF_TRANS_A_S3T2 => 16#06_4e1c# / Register_Width, + DDI_BUF_TRANS_A_S4T1 => 16#06_4e20# / Register_Width, + DDI_BUF_TRANS_A_S4T2 => 16#06_4e24# / Register_Width, + DDI_BUF_TRANS_A_S5T1 => 16#06_4e28# / Register_Width, + DDI_BUF_TRANS_A_S5T2 => 16#06_4e2c# / Register_Width, + DDI_BUF_TRANS_A_S6T1 => 16#06_4e30# / Register_Width, + DDI_BUF_TRANS_A_S6T2 => 16#06_4e34# / Register_Width, + DDI_BUF_TRANS_A_S7T1 => 16#06_4e38# / Register_Width, + DDI_BUF_TRANS_A_S7T2 => 16#06_4e3c# / Register_Width, + DDI_BUF_TRANS_A_S8T1 => 16#06_4e40# / Register_Width, + DDI_BUF_TRANS_A_S8T2 => 16#06_4e44# / Register_Width, + DDI_BUF_TRANS_A_S9T1 => 16#06_4e48# / Register_Width, + DDI_BUF_TRANS_A_S9T2 => 16#06_4e4c# / Register_Width, DDI_AUX_CTL_A => 16#06_4010# / Register_Width, -- aliased by DP_AUX_CTL_A DDI_AUX_DATA_A_1 => 16#06_4014# / Register_Width, -- aliased by DP_AUX_DATA_A_1 DDI_AUX_DATA_A_2 => 16#06_4018# / Register_Width, -- aliased by DP_AUX_DATA_A_2 @@ -865,7 +985,28 @@ is DDI_AUX_DATA_A_4 => 16#06_4020# / Register_Width, -- aliased by DP_AUX_DATA_A_4 DDI_AUX_DATA_A_5 => 16#06_4024# / Register_Width, -- aliased by DP_AUX_DATA_A_5 DDI_AUX_MUTEX_A => 16#06_402c# / Register_Width, + DDI_BUF_CTL_B => 16#06_4100# / Register_Width, + DDI_BUF_TRANS_B_S0T1 => 16#06_4e60# / Register_Width, + DDI_BUF_TRANS_B_S0T2 => 16#06_4e64# / Register_Width, + DDI_BUF_TRANS_B_S1T1 => 16#06_4e68# / Register_Width, + DDI_BUF_TRANS_B_S1T2 => 16#06_4e6c# / Register_Width, + DDI_BUF_TRANS_B_S2T1 => 16#06_4e70# / Register_Width, + DDI_BUF_TRANS_B_S2T2 => 16#06_4e74# / Register_Width, + DDI_BUF_TRANS_B_S3T1 => 16#06_4e78# / Register_Width, + DDI_BUF_TRANS_B_S3T2 => 16#06_4e7c# / Register_Width, + DDI_BUF_TRANS_B_S4T1 => 16#06_4e80# / Register_Width, + DDI_BUF_TRANS_B_S4T2 => 16#06_4e84# / Register_Width, + DDI_BUF_TRANS_B_S5T1 => 16#06_4e88# / Register_Width, + DDI_BUF_TRANS_B_S5T2 => 16#06_4e8c# / Register_Width, + DDI_BUF_TRANS_B_S6T1 => 16#06_4e90# / Register_Width, + DDI_BUF_TRANS_B_S6T2 => 16#06_4e94# / Register_Width, + DDI_BUF_TRANS_B_S7T1 => 16#06_4e98# / Register_Width, + DDI_BUF_TRANS_B_S7T2 => 16#06_4e9c# / Register_Width, + DDI_BUF_TRANS_B_S8T1 => 16#06_4ea0# / Register_Width, + DDI_BUF_TRANS_B_S8T2 => 16#06_4ea4# / Register_Width, + DDI_BUF_TRANS_B_S9T1 => 16#06_4ea8# / Register_Width, + DDI_BUF_TRANS_B_S9T2 => 16#06_4eac# / Register_Width, DDI_AUX_CTL_B => 16#06_4110# / Register_Width, DDI_AUX_DATA_B_1 => 16#06_4114# / Register_Width, DDI_AUX_DATA_B_2 => 16#06_4118# / Register_Width, @@ -873,7 +1014,28 @@ is DDI_AUX_DATA_B_4 => 16#06_4120# / Register_Width, DDI_AUX_DATA_B_5 => 16#06_4124# / Register_Width, DDI_AUX_MUTEX_B => 16#06_412c# / Register_Width, + DDI_BUF_CTL_C => 16#06_4200# / Register_Width, + DDI_BUF_TRANS_C_S0T1 => 16#06_4ec0# / Register_Width, + DDI_BUF_TRANS_C_S0T2 => 16#06_4ec4# / Register_Width, + DDI_BUF_TRANS_C_S1T1 => 16#06_4ec8# / Register_Width, + DDI_BUF_TRANS_C_S1T2 => 16#06_4ecc# / Register_Width, + DDI_BUF_TRANS_C_S2T1 => 16#06_4ed0# / Register_Width, + DDI_BUF_TRANS_C_S2T2 => 16#06_4ed4# / Register_Width, + DDI_BUF_TRANS_C_S3T1 => 16#06_4ed8# / Register_Width, + DDI_BUF_TRANS_C_S3T2 => 16#06_4edc# / Register_Width, + DDI_BUF_TRANS_C_S4T1 => 16#06_4ee0# / Register_Width, + DDI_BUF_TRANS_C_S4T2 => 16#06_4ee4# / Register_Width, + DDI_BUF_TRANS_C_S5T1 => 16#06_4ee8# / Register_Width, + DDI_BUF_TRANS_C_S5T2 => 16#06_4eec# / Register_Width, + DDI_BUF_TRANS_C_S6T1 => 16#06_4ef0# / Register_Width, + DDI_BUF_TRANS_C_S6T2 => 16#06_4ef4# / Register_Width, + DDI_BUF_TRANS_C_S7T1 => 16#06_4ef8# / Register_Width, + DDI_BUF_TRANS_C_S7T2 => 16#06_4efc# / Register_Width, + DDI_BUF_TRANS_C_S8T1 => 16#06_4f00# / Register_Width, + DDI_BUF_TRANS_C_S8T2 => 16#06_4f04# / Register_Width, + DDI_BUF_TRANS_C_S9T1 => 16#06_4f08# / Register_Width, + DDI_BUF_TRANS_C_S9T2 => 16#06_4f0c# / Register_Width, DDI_AUX_CTL_C => 16#06_4210# / Register_Width, DDI_AUX_DATA_C_1 => 16#06_4214# / Register_Width, DDI_AUX_DATA_C_2 => 16#06_4218# / Register_Width, @@ -881,7 +1043,28 @@ is DDI_AUX_DATA_C_4 => 16#06_4220# / Register_Width, DDI_AUX_DATA_C_5 => 16#06_4224# / Register_Width, DDI_AUX_MUTEX_C => 16#06_422c# / Register_Width, + DDI_BUF_CTL_D => 16#06_4300# / Register_Width, + DDI_BUF_TRANS_D_S0T1 => 16#06_4f20# / Register_Width, + DDI_BUF_TRANS_D_S0T2 => 16#06_4f24# / Register_Width, + DDI_BUF_TRANS_D_S1T1 => 16#06_4f28# / Register_Width, + DDI_BUF_TRANS_D_S1T2 => 16#06_4f2c# / Register_Width, + DDI_BUF_TRANS_D_S2T1 => 16#06_4f30# / Register_Width, + DDI_BUF_TRANS_D_S2T2 => 16#06_4f34# / Register_Width, + DDI_BUF_TRANS_D_S3T1 => 16#06_4f38# / Register_Width, + DDI_BUF_TRANS_D_S3T2 => 16#06_4f3c# / Register_Width, + DDI_BUF_TRANS_D_S4T1 => 16#06_4f40# / Register_Width, + DDI_BUF_TRANS_D_S4T2 => 16#06_4f44# / Register_Width, + DDI_BUF_TRANS_D_S5T1 => 16#06_4f48# / Register_Width, + DDI_BUF_TRANS_D_S5T2 => 16#06_4f4c# / Register_Width, + DDI_BUF_TRANS_D_S6T1 => 16#06_4f50# / Register_Width, + DDI_BUF_TRANS_D_S6T2 => 16#06_4f54# / Register_Width, + DDI_BUF_TRANS_D_S7T1 => 16#06_4f58# / Register_Width, + DDI_BUF_TRANS_D_S7T2 => 16#06_4f5c# / Register_Width, + DDI_BUF_TRANS_D_S8T1 => 16#06_4f60# / Register_Width, + DDI_BUF_TRANS_D_S8T2 => 16#06_4f64# / Register_Width, + DDI_BUF_TRANS_D_S9T1 => 16#06_4f68# / Register_Width, + DDI_BUF_TRANS_D_S9T2 => 16#06_4f6c# / Register_Width, DDI_AUX_CTL_D => 16#06_4310# / Register_Width, DDI_AUX_DATA_D_1 => 16#06_4314# / Register_Width, DDI_AUX_DATA_D_2 => 16#06_4318# / Register_Width, @@ -889,7 +1072,28 @@ is DDI_AUX_DATA_D_4 => 16#06_4320# / Register_Width, DDI_AUX_DATA_D_5 => 16#06_4324# / Register_Width, DDI_AUX_MUTEX_D => 16#06_432c# / Register_Width, + DDI_BUF_CTL_E => 16#06_4400# / Register_Width, + DDI_BUF_TRANS_E_S0T1 => 16#06_4f80# / Register_Width, + DDI_BUF_TRANS_E_S0T2 => 16#06_4f84# / Register_Width, + DDI_BUF_TRANS_E_S1T1 => 16#06_4f88# / Register_Width, + DDI_BUF_TRANS_E_S1T2 => 16#06_4f8c# / Register_Width, + DDI_BUF_TRANS_E_S2T1 => 16#06_4f90# / Register_Width, + DDI_BUF_TRANS_E_S2T2 => 16#06_4f94# / Register_Width, + DDI_BUF_TRANS_E_S3T1 => 16#06_4f98# / Register_Width, + DDI_BUF_TRANS_E_S3T2 => 16#06_4f9c# / Register_Width, + DDI_BUF_TRANS_E_S4T1 => 16#06_4fa0# / Register_Width, + DDI_BUF_TRANS_E_S4T2 => 16#06_4fa4# / Register_Width, + DDI_BUF_TRANS_E_S5T1 => 16#06_4fa8# / Register_Width, + DDI_BUF_TRANS_E_S5T2 => 16#06_4fac# / Register_Width, + DDI_BUF_TRANS_E_S6T1 => 16#06_4fb0# / Register_Width, + DDI_BUF_TRANS_E_S6T2 => 16#06_4fb4# / Register_Width, + DDI_BUF_TRANS_E_S7T1 => 16#06_4fb8# / Register_Width, + DDI_BUF_TRANS_E_S7T2 => 16#06_4fbc# / Register_Width, + DDI_BUF_TRANS_E_S8T1 => 16#06_4fc0# / Register_Width, + DDI_BUF_TRANS_E_S8T2 => 16#06_4fc4# / Register_Width, + DDI_BUF_TRANS_E_S9T1 => 16#06_4fc8# / Register_Width, + DDI_BUF_TRANS_E_S9T2 => 16#06_4fcc# / Register_Width, DP_TP_CTL_A => 16#06_4040# / Register_Width, DP_TP_CTL_B => 16#06_4140# / Register_Width, DP_TP_CTL_C => 16#06_4240# / Register_Width, diff --git a/common/skylake/Makefile.inc b/common/skylake/Makefile.inc index 36e4e0d50c..c59ab8e538 100644 --- a/common/skylake/Makefile.inc +++ b/common/skylake/Makefile.inc @@ -1,3 +1,4 @@ +gfxinit-y += hw-gfx-gma-connectors-ddi-buffers.ads gfxinit-y += hw-gfx-gma-ddi_phy.ads gfxinit-y += hw-gfx-gma-plls-dpll.adb gfxinit-y += hw-gfx-gma-plls-dpll.ads diff --git a/common/skylake/hw-gfx-gma-connectors-ddi-buffers.ads b/common/skylake/hw-gfx-gma-connectors-ddi-buffers.ads new file mode 100644 index 0000000000..499226aaa2 --- /dev/null +++ b/common/skylake/hw-gfx-gma-connectors-ddi-buffers.ads @@ -0,0 +1,21 @@ +-- +-- Copyright (C) 2017 secunet Security Networks AG +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- + +private package HW.GFX.GMA.Connectors.DDI.Buffers +is + + procedure Translations (Trans : out Buf_Trans_Array; Port : Digital_Port) + is null; + +end HW.GFX.GMA.Connectors.DDI.Buffers;