Nico Huber has submitted this change and it was merged. ( https://review.coreboot.org/c/libgfxinit/+/27051 )
Change subject: gma config: Introduce Has_New_FDI_(Sink|Source) ......................................................................
gma config: Introduce Has_New_FDI_(Sink|Source)
Change-Id: Ib9a5951abf62ed01583ad028bc944c0135744457 Signed-off-by: Nico Huber nico.h@gmx.de Reviewed-on: https://review.coreboot.org/c/libgfxinit/+/27051 Reviewed-by: Arthur Heymans arthur@aheymans.xyz --- M common/hw-gfx-gma-config.ads.template M common/hw-gfx-gma-pch-fdi.adb M common/hw-gfx-gma-pch.ads M common/ironlake/hw-gfx-gma-connectors-fdi.adb 4 files changed, 6 insertions(+), 10 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 398b340..c6af93a 100644 --- a/common/hw-gfx-gma-config.ads.template +++ b/common/hw-gfx-gma-config.ads.template @@ -87,6 +87,8 @@ Has_DPLL_SEL : constant Boolean := CPU in Ironlake .. Ivybridge; Has_FDI_BPC : constant Boolean := CPU in Ironlake .. Ivybridge; Has_FDI_Composite_Sel : constant Boolean := CPU = Ivybridge; + Has_New_FDI_Sink : constant Boolean := CPU >= Sandybridge; + Has_New_FDI_Source : constant Boolean := CPU >= Ivybridge; Has_Trans_DP_Ctl : constant Boolean := CPU in Sandybridge .. Ivybridge; Has_FDI_C : constant Boolean := CPU = Ivybridge; diff --git a/common/hw-gfx-gma-pch-fdi.adb b/common/hw-gfx-gma-pch-fdi.adb index 95bc19f..53756e2 100644 --- a/common/hw-gfx-gma-pch-fdi.adb +++ b/common/hw-gfx-gma-pch-fdi.adb @@ -30,7 +30,7 @@ FDI_RX_CTL_RAWCLK_TO_PCDCLK_SEL_RAWCLK : constant := 0 * 2 ** 4; FDI_RX_CTL_RAWCLK_TO_PCDCLK_SEL_PCDCLK : constant := 1 * 2 ** 4;
- TP_SHIFT : constant := (if Config.CPU = Ironlake then 28 else 8); + TP_SHIFT : constant := (if Config.Has_New_FDI_Sink then 8 else 28); FDI_RX_CTL_TRAINING_PATTERN_MASK : constant := 3 * 2 ** TP_SHIFT;
type TP_Array is array (Training_Pattern) of Word32; diff --git a/common/hw-gfx-gma-pch.ads b/common/hw-gfx-gma-pch.ads index 106d2e8..0acc852 100644 --- a/common/hw-gfx-gma-pch.ads +++ b/common/hw-gfx-gma-pch.ads @@ -23,16 +23,10 @@ -- common to all PCH outputs
PCH_TRANSCODER_SELECT_SHIFT : constant := - (case Config.CPU is - when Ironlake => 30, - when Sandybridge | Ivybridge => 29, - when others => 0); + (if Config.Has_New_FDI_Sink then 29 else 30);
PCH_TRANSCODER_SELECT_MASK : constant := - (case Config.CPU is - when Ironlake => 1 * 2 ** 30, - when Sandybridge | Ivybridge => 3 * 2 ** 29, - when others => 0); + (if Config.Has_New_FDI_Sink then 3 * 2 ** 29 else 1 * 2 ** 30);
type PCH_TRANSCODER_SELECT_Array is array (FDI_Port_Type) of Word32; PCH_TRANSCODER_SELECT : constant PCH_TRANSCODER_SELECT_Array := diff --git a/common/ironlake/hw-gfx-gma-connectors-fdi.adb b/common/ironlake/hw-gfx-gma-connectors-fdi.adb index f38c135..4eec9c9 100644 --- a/common/ironlake/hw-gfx-gma-connectors-fdi.adb +++ b/common/ironlake/hw-gfx-gma-connectors-fdi.adb @@ -40,7 +40,7 @@ FDI_TX_CTL_AUTO_TRAIN_ENABLE : constant := 1 * 2 ** 10; FDI_TX_CTL_AUTO_TRAIN_DONE : constant := 1 * 2 ** 1;
- TP_SHIFT : constant := (if Config.CPU <= Sandybridge then 28 else 8); + TP_SHIFT : constant := (if Config.Has_New_FDI_Source then 8 else 28); FDI_TX_CTL_TRAINING_PATTERN_MASK : constant := 3 * 2 ** TP_SHIFT; FDI_TX_CTL_TRAINING_PATTERN_1 : constant := 0 * 2 ** TP_SHIFT; FDI_TX_CTL_TRAINING_PATTERN_2 : constant := 1 * 2 ** TP_SHIFT;