aboutsummaryrefslogtreecommitdiff
path: root/resources/libreboot/patch/coreboot/36d405268f040208cd26902f3c0b5346f7d4d25b/seabios
diff options
context:
space:
mode:
authorPaul Kocialkowski <contact@paulk.fr>2016-12-23 14:13:48 +0100
committerLeah Rowe <info@minifree.org>2017-01-15 14:24:40 +0000
commit3d08effb91acf985bae9c4eb4386937ce7ed92a9 (patch)
tree9d890b07e4abf2f885cf9c494a9103bf4b96d891 /resources/libreboot/patch/coreboot/36d405268f040208cd26902f3c0b5346f7d4d25b/seabios
parent0698cb38d1e26495c953f01daf9604551b6ed7d5 (diff)
downloadlibrebootfr-3d08effb91acf985bae9c4eb4386937ce7ed92a9.tar.gz
librebootfr-3d08effb91acf985bae9c4eb4386937ce7ed92a9.zip
Current build system removal
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Diffstat (limited to 'resources/libreboot/patch/coreboot/36d405268f040208cd26902f3c0b5346f7d4d25b/seabios')
-rw-r--r--resources/libreboot/patch/coreboot/36d405268f040208cd26902f3c0b5346f7d4d25b/seabios/d945gclf/0001-mb-intel-d945gclf-Disable-combined-mode-to-fix-SATA.patch31
-rw-r--r--resources/libreboot/patch/coreboot/36d405268f040208cd26902f3c0b5346f7d4d25b/seabios/d945gclf/0001-move-DIV_ROUND-macros-to-commonlib.patch93
-rw-r--r--resources/libreboot/patch/coreboot/36d405268f040208cd26902f3c0b5346f7d4d25b/seabios/d945gclf/0002-i945-gma.c-use-latest-linux-code-to-calculate-diviso.patch171
-rw-r--r--resources/libreboot/patch/coreboot/36d405268f040208cd26902f3c0b5346f7d4d25b/seabios/d945gclf/0003-i945-gma.c-add-native-VGA-init.patch238
-rw-r--r--resources/libreboot/patch/coreboot/36d405268f040208cd26902f3c0b5346f7d4d25b/seabios/d945gclf/0004-mb-intel-d945gclf-Allow-use-of-native-graphic-init.patch40
-rw-r--r--resources/libreboot/patch/coreboot/36d405268f040208cd26902f3c0b5346f7d4d25b/seabios/d945gclf/0005-i945-gma.c-Only-init-LVDS-if-it-is-present-on-the-de.patch97
6 files changed, 0 insertions, 670 deletions
diff --git a/resources/libreboot/patch/coreboot/36d405268f040208cd26902f3c0b5346f7d4d25b/seabios/d945gclf/0001-mb-intel-d945gclf-Disable-combined-mode-to-fix-SATA.patch b/resources/libreboot/patch/coreboot/36d405268f040208cd26902f3c0b5346f7d4d25b/seabios/d945gclf/0001-mb-intel-d945gclf-Disable-combined-mode-to-fix-SATA.patch
deleted file mode 100644
index 4c75bcd5..00000000
--- a/resources/libreboot/patch/coreboot/36d405268f040208cd26902f3c0b5346f7d4d25b/seabios/d945gclf/0001-mb-intel-d945gclf-Disable-combined-mode-to-fix-SATA.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From b6b2f9a9775029305f88f927f93e95046594f9b9 Mon Sep 17 00:00:00 2001
-From: Arthur Heymans <arthur@aheymans.xyz>
-Date: Thu, 25 Aug 2016 09:24:15 +0200
-Subject: [PATCH] mb/intel/d945gclf: Disable combined mode to fix SATA
-
-Similarly to 2b2f465fcb1afe4960c613b8ca91e868c64592d4
-"mb/gigabyte/ga-g41m-es2l: Fix ACPI IRQ settings for SATA"
-SATA must function in "plain" mode because it does not work in
-"combined" mode.
-
-Tested on d945gclf
-
-Change-Id: I2e051a632a1341c4932cf86855006ae517dbf064
-Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
-
-diff --git a/src/mainboard/intel/d945gclf/devicetree.cb b/src/mainboard/intel/d945gclf/devicetree.cb
-index 823a240..aa8c441 100644
---- a/src/mainboard/intel/d945gclf/devicetree.cb
-+++ b/src/mainboard/intel/d945gclf/devicetree.cb
-@@ -45,7 +45,7 @@ chip northbridge/intel/i945
- register "gpi13_routing" = "1"
- register "gpe0_en" = "0x20000601"
-
-- register "ide_legacy_combined" = "0x1"
-+ register "ide_legacy_combined" = "0x0"
- register "ide_enable_primary" = "0x1"
- register "ide_enable_secondary" = "0x0"
- register "sata_ahci" = "0x0"
---
-2.9.3
-
diff --git a/resources/libreboot/patch/coreboot/36d405268f040208cd26902f3c0b5346f7d4d25b/seabios/d945gclf/0001-move-DIV_ROUND-macros-to-commonlib.patch b/resources/libreboot/patch/coreboot/36d405268f040208cd26902f3c0b5346f7d4d25b/seabios/d945gclf/0001-move-DIV_ROUND-macros-to-commonlib.patch
deleted file mode 100644
index ea4db001..00000000
--- a/resources/libreboot/patch/coreboot/36d405268f040208cd26902f3c0b5346f7d4d25b/seabios/d945gclf/0001-move-DIV_ROUND-macros-to-commonlib.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-From c82d4fa874322d70dec0e9d28c050e4c351de157 Mon Sep 17 00:00:00 2001
-From: Arthur Heymans <arthur@aheymans.xyz>
-Date: Fri, 2 Sep 2016 23:14:54 +0200
-Subject: [PATCH 1/5] move DIV_ROUND macros to commonlib
-
-DIV_ROUND_CLOSEST and DIV_ROUND_UP are useful macros for other
-architectures. This patch moves them from soc/nvidia/tegra/types.h
-to commonlib/include/commonlib/helpers.h .
-
-Change-Id: I54521d9b197934cef8e352f9a5c4823015d85f01
-Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
-
-diff --git a/src/commonlib/include/commonlib/helpers.h b/src/commonlib/include/commonlib/helpers.h
-index 0318e44..0b2395b 100644
---- a/src/commonlib/include/commonlib/helpers.h
-+++ b/src/commonlib/include/commonlib/helpers.h
-@@ -34,6 +34,22 @@
- #define ABS(a) (((a) < 0) ? (-(a)) : (a))
- #define CEIL_DIV(a, b) (((a) + (b) - 1) / (b))
- #define IS_POWER_OF_2(x) (((x) & ((x) - 1)) == 0)
-+#define DIV_ROUND_UP(x, y) (((x) + (y) - 1) / (y))
-+/*
-+ * Divide positive or negative dividend by positive divisor and round
-+ * to closest integer. Result is undefined for negative divisors and
-+ * for negative dividends if the divisor variable type is unsigned.
-+ */
-+#define DIV_ROUND_CLOSEST(x, divisor)( \
-+{ \
-+ typeof(x) __x = x; \
-+ typeof(divisor) __d = divisor; \
-+ (((typeof(x))-1) > 0 || \
-+ ((typeof(divisor))-1) > 0 || (__x) > 0) ? \
-+ (((__x) + ((__d) / 2)) / (__d)) : \
-+ (((__x) - ((__d) / 2)) / (__d)); \
-+} \
-+)
-
- /* Standard units. */
- #define KiB (1<<10)
-diff --git a/src/soc/nvidia/tegra/types.h b/src/soc/nvidia/tegra/types.h
-index dab474d..bfeebae 100644
---- a/src/soc/nvidia/tegra/types.h
-+++ b/src/soc/nvidia/tegra/types.h
-@@ -51,22 +51,4 @@
- (type *)( (char *)__mptr - offsetof(type,member) );})
- #endif
-
--#define DIV_ROUND_UP(x, y) (((x) + (y) - 1) / (y))
--
--/*
-- * Divide positive or negative dividend by positive divisor and round
-- * to closest integer. Result is undefined for negative divisors and
-- * for negative dividends if the divisor variable type is unsigned.
-- */
--#define DIV_ROUND_CLOSEST(x, divisor)( \
--{ \
-- typeof(x) __x = x; \
-- typeof(divisor) __d = divisor; \
-- (((typeof(x))-1) > 0 || \
-- ((typeof(divisor))-1) > 0 || (__x) > 0) ? \
-- (((__x) + ((__d) / 2)) / (__d)) : \
-- (((__x) - ((__d) / 2)) / (__d)); \
--} \
--)
--
- #endif /* __TEGRA_MISC_TYPES_H__ */
-diff --git a/src/soc/nvidia/tegra210/addressmap.c b/src/soc/nvidia/tegra210/addressmap.c
-index e803e1b..b47c5c5 100644
---- a/src/soc/nvidia/tegra210/addressmap.c
-+++ b/src/soc/nvidia/tegra210/addressmap.c
-@@ -23,6 +23,7 @@
- #include <stdlib.h>
- #include <symbols.h>
- #include <soc/nvidia/tegra/types.h>
-+#include <commonlib/helpers.h>
-
- static uintptr_t tz_base_mib;
- static const size_t tz_size_mib = CONFIG_TRUSTZONE_CARVEOUT_SIZE_MB;
-diff --git a/src/soc/nvidia/tegra210/dsi.c b/src/soc/nvidia/tegra210/dsi.c
-index 3b771c9..5504b4d 100644
---- a/src/soc/nvidia/tegra210/dsi.c
-+++ b/src/soc/nvidia/tegra210/dsi.c
-@@ -32,6 +32,7 @@
- #include <soc/tegra_dsi.h>
- #include <soc/mipi-phy.h>
- #include "jdi_25x18_display/panel-jdi-lpm102a188a.h"
-+#include <commonlib/helpers.h>
-
- struct tegra_mipi_device mipi_device_data[NUM_DSI];
-
---
-2.9.3
-
diff --git a/resources/libreboot/patch/coreboot/36d405268f040208cd26902f3c0b5346f7d4d25b/seabios/d945gclf/0002-i945-gma.c-use-latest-linux-code-to-calculate-diviso.patch b/resources/libreboot/patch/coreboot/36d405268f040208cd26902f3c0b5346f7d4d25b/seabios/d945gclf/0002-i945-gma.c-use-latest-linux-code-to-calculate-diviso.patch
deleted file mode 100644
index 6a8b9920..00000000
--- a/resources/libreboot/patch/coreboot/36d405268f040208cd26902f3c0b5346f7d4d25b/seabios/d945gclf/0002-i945-gma.c-use-latest-linux-code-to-calculate-diviso.patch
+++ /dev/null
@@ -1,171 +0,0 @@
-From f09ce5870025a98b6e497fd232adffde468c735a Mon Sep 17 00:00:00 2001
-From: Arthur Heymans <arthur@aheymans.xyz>
-Date: Fri, 2 Sep 2016 22:35:32 +0200
-Subject: [PATCH 2/5] i945/gma.c use latest linux code to calculate divisors.
-
-The code to compute n, m1, m2, p1 divisors is not correct in coreboot and
-on some targets hits a working mode at lower refresh rate, which is why
-display is working on some targets.
-This patch also fixes reference frequency.
-
-This patch reuses linux code to correctly compute divisors.
-
-The result is that some previously not working displays (Lenovo T60 with
-1024x786, 1400x1050, 2048x1536)
-
-TESTED on T60 with 1024x786.
-
-Change-Id: I2c7f3bb0024ac005029eaebe3ecdc70c38ac777e
-Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
-
-diff --git a/src/northbridge/intel/i945/gma.c b/src/northbridge/intel/i945/gma.c
-index 02caa0a..d1d68d4 100644
---- a/src/northbridge/intel/i945/gma.c
-+++ b/src/northbridge/intel/i945/gma.c
-@@ -26,6 +26,8 @@
- #include <string.h>
- #include <pc80/vga.h>
- #include <pc80/vga_io.h>
-+#include <commonlib/helpers.h>
-+
-
- #include "i945.h"
- #include "chip.h"
-@@ -43,7 +45,7 @@
- #define PGETBL_CTL 0x2020
- #define PGETBL_ENABLED 0x00000001
-
--#define BASE_FREQUENCY 120000
-+#define BASE_FREQUENCY 100000
-
- #if CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT
-
-@@ -85,10 +87,10 @@ static int intel_gma_init(struct northbridge_intel_i945_config *conf,
- u8 edid_data[128];
- unsigned long temp;
- int hpolarity, vpolarity;
-- u32 candp1, candn;
-- u32 best_delta = 0xffffffff;
-+ u32 err_most = 0xffffffff;
- u32 target_frequency;
- u32 pixel_p1 = 1;
-+ u32 pixel_p2;
- u32 pixel_n = 1;
- u32 pixel_m1 = 1;
- u32 pixel_m2 = 1;
-@@ -158,43 +160,37 @@ static int intel_gma_init(struct northbridge_intel_i945_config *conf,
- write32(pmmio + PORT_HOTPLUG_EN, conf->gpu_hotplug);
- write32(pmmio + INSTPM, 0x08000000 | INSTPM_AGPBUSY_DIS);
-
-- target_frequency = mode->lvds_dual_channel ? mode->pixel_clock
-- : (2 * mode->pixel_clock);
--
-- /* Find suitable divisors. */
-- for (candp1 = 1; candp1 <= 8; candp1++) {
-- for (candn = 5; candn <= 10; candn++) {
-- u32 cur_frequency;
-- u32 m; /* 77 - 131. */
-- u32 denom; /* 35 - 560. */
-- u32 current_delta;
--
-- denom = candn * candp1 * 7;
-- /* Doesnt overflow for up to
-- 5000000 kHz = 5 GHz. */
-- m = (target_frequency * denom
-- + BASE_FREQUENCY / 2) / BASE_FREQUENCY;
--
-- if (m < 77 || m > 131)
-- continue;
--
-- cur_frequency = (BASE_FREQUENCY * m) / denom;
-- if (target_frequency > cur_frequency)
-- current_delta = target_frequency - cur_frequency;
-- else
-- current_delta = cur_frequency - target_frequency;
--
-- if (best_delta > current_delta) {
-- best_delta = current_delta;
-- pixel_n = candn;
-- pixel_p1 = candp1;
-- pixel_m2 = ((m + 3) % 5) + 7;
-- pixel_m1 = (m - pixel_m2) / 5;
-+ pixel_p2 = mode->lvds_dual_channel ? 7 : 14;
-+ target_frequency = mode->pixel_clock;
-+
-+ /* Find suitable divisors, m1, m2, p1, n. */
-+ /* refclock * (5 * (m1 + 2) + (m1 + 2)) / (n + 2) / p1 / p2 */
-+ /* should be closest to target frequency as possible */
-+ u32 candn, candm1, candm2, candp1;
-+ for (candm1 = 8; candm1 <= 18; candm1++) {
-+ for (candm2 = 3; candm2 <= 7; candm2++) {
-+ for (candn = 1; candn <= 6; candn++) {
-+ for (candp1 = 1; candp1 <= 8; candp1++) {
-+ u32 m = 5 * (candm1 + 2) + (candm2 + 2);
-+ u32 p = candp1 * pixel_p2;
-+ u32 vco = DIV_ROUND_CLOSEST(BASE_FREQUENCY * m, candn + 2);
-+ u32 dot = DIV_ROUND_CLOSEST(vco, p);
-+ u32 this_err = ABS(dot - target_frequency);
-+ if ((m < 70) || (m > 120))
-+ continue;
-+ if (this_err < err_most) {
-+ err_most = this_err;
-+ pixel_n = candn;
-+ pixel_m1 = candm1;
-+ pixel_m2 = candm2;
-+ pixel_p1 = candp1;
-+ }
-+ }
- }
- }
- }
-
-- if (best_delta == 0xffffffff) {
-+ if (err_most == 0xffffffff) {
- printk (BIOS_ERR, "Couldn't find GFX clock divisors\n");
- return -1;
- }
-@@ -216,8 +212,8 @@ static int intel_gma_init(struct northbridge_intel_i945_config *conf,
- printk(BIOS_DEBUG, "Pixel N=%d, M1=%d, M2=%d, P1=%d\n",
- pixel_n, pixel_m1, pixel_m2, pixel_p1);
- printk(BIOS_DEBUG, "Pixel clock %d kHz\n",
-- BASE_FREQUENCY * (5 * pixel_m1 + pixel_m2) / pixel_n
-- / (pixel_p1 * 7));
-+ BASE_FREQUENCY * (5 * (pixel_m1 + 2) + (pixel_m2 + 2)) /
-+ (pixel_n + 2) / (pixel_p1 * pixel_p2));
-
- #if !IS_ENABLED(CONFIG_FRAMEBUFFER_KEEP_VESA_MODE)
- write32(pmmio + PF_WIN_SZ(0), vactive | (hactive << 16));
-@@ -242,8 +238,8 @@ static int intel_gma_init(struct northbridge_intel_i945_config *conf,
- write32(pmmio + PP_CONTROL, PANEL_UNLOCK_REGS
- | (read32(pmmio + PP_CONTROL) & ~PANEL_UNLOCK_MASK));
- write32(pmmio + FP0(1),
-- ((pixel_n - 2) << 16)
-- | ((pixel_m1 - 2) << 8) | pixel_m2);
-+ (pixel_n << 16)
-+ | (pixel_m1 << 8) | pixel_m2);
- write32(pmmio + DPLL(1),
- DPLL_VGA_MODE_DIS |
- DPLL_VCO_ENABLE | DPLLB_MODE_LVDS
-@@ -252,8 +248,7 @@ static int intel_gma_init(struct northbridge_intel_i945_config *conf,
- | (conf->gpu_lvds_use_spread_spectrum_clock
- ? DPLL_INTEGRATED_CLOCK_VLV | DPLL_INTEGRATED_CRI_CLK_VLV
- : 0)
-- | (pixel_p1 << 16)
-- | (pixel_p1));
-+ | (0x10000 << pixel_p1));
- mdelay(1);
- write32(pmmio + DPLL(1),
- DPLL_VGA_MODE_DIS |
-@@ -261,8 +256,7 @@ static int intel_gma_init(struct northbridge_intel_i945_config *conf,
- | (mode->lvds_dual_channel ? DPLLB_LVDS_P2_CLOCK_DIV_7
- : DPLLB_LVDS_P2_CLOCK_DIV_14)
- | ((conf->gpu_lvds_use_spread_spectrum_clock ? 3 : 0) << 13)
-- | (pixel_p1 << 16)
-- | (pixel_p1));
-+ | (0x10000 << pixel_p1));
- mdelay(1);
- write32(pmmio + HTOTAL(1),
- ((hactive + right_border + hblank - 1) << 16)
---
-2.9.3
-
diff --git a/resources/libreboot/patch/coreboot/36d405268f040208cd26902f3c0b5346f7d4d25b/seabios/d945gclf/0003-i945-gma.c-add-native-VGA-init.patch b/resources/libreboot/patch/coreboot/36d405268f040208cd26902f3c0b5346f7d4d25b/seabios/d945gclf/0003-i945-gma.c-add-native-VGA-init.patch
deleted file mode 100644
index 24a01442..00000000
--- a/resources/libreboot/patch/coreboot/36d405268f040208cd26902f3c0b5346f7d4d25b/seabios/d945gclf/0003-i945-gma.c-add-native-VGA-init.patch
+++ /dev/null
@@ -1,238 +0,0 @@
-From 09546d389511350d1b33b3c6bd9230de8bbbe317 Mon Sep 17 00:00:00 2001
-From: Arthur Heymans <arthur@aheymans.xyz>
-Date: Mon, 5 Sep 2016 22:46:11 +0200
-Subject: [PATCH 3/5] i945/gma.c: add native VGA init
-
-This reuses the intel pineview native graphic initialization
-to have output on the VGA connector of i945 devices.
-
-The behavior is the same as with the vbios blob.
-It uses the external VGA display if it is connected.
-
-Change-Id: I7eaee87d16df2e5c9ebeaaff01d36ec1aa4ea495
-Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
-
-diff --git a/src/northbridge/intel/i945/gma.c b/src/northbridge/intel/i945/gma.c
-index d1d68d4..37674d7 100644
---- a/src/northbridge/intel/i945/gma.c
-+++ b/src/northbridge/intel/i945/gma.c
-@@ -78,7 +78,7 @@ static int gtt_setup(void *mmiobase)
- return 0;
- }
-
--static int intel_gma_init(struct northbridge_intel_i945_config *conf,
-+static int intel_gma_init_lvds(struct northbridge_intel_i945_config *conf,
- unsigned int pphysbase, unsigned int piobase,
- void *pmmio, unsigned int pgfx)
- {
-@@ -382,6 +382,194 @@ static int intel_gma_init(struct northbridge_intel_i945_config *conf,
- #endif
- return 0;
- }
-+
-+static int intel_gma_init_vga(struct northbridge_intel_i945_config *conf,
-+ unsigned int pphysbase, unsigned int piobase,
-+ void *pmmio, unsigned int pgfx)
-+{
-+ int i;
-+ u32 hactive, vactive;
-+ u16 reg16;
-+ u32 uma_size;
-+
-+ printk(BIOS_SPEW, "pmmio %x addrport %x physbase %x\n",
-+ (u32)pmmio, piobase, pphysbase);
-+
-+ gtt_setup(pmmio);
-+
-+ /* Disable VGA. */
-+ write32(pmmio + VGACNTRL, VGA_DISP_DISABLE);
-+
-+ /* Disable pipes. */
-+ write32(pmmio + PIPECONF(0), 0);
-+ write32(pmmio + PIPECONF(1), 0);
-+
-+ write32(pmmio + INSTPM, 0x800);
-+
-+ vga_gr_write(0x18, 0);
-+
-+ write32(pmmio + VGA0, 0x200074);
-+ write32(pmmio + VGA1, 0x200074);
-+
-+ write32(pmmio + DSPFW3, 0x7f3f00c1 & ~PINEVIEW_SELF_REFRESH_EN);
-+ write32(pmmio + DSPCLK_GATE_D, 0);
-+ write32(pmmio + FW_BLC, 0x03060106);
-+ write32(pmmio + FW_BLC2, 0x00000306);
-+
-+ write32(pmmio + ADPA, ADPA_DAC_ENABLE
-+ | ADPA_PIPE_A_SELECT
-+ | ADPA_USE_VGA_HVPOLARITY
-+ | ADPA_VSYNC_CNTL_ENABLE
-+ | ADPA_HSYNC_CNTL_ENABLE
-+ | ADPA_DPMS_ON
-+ );
-+
-+ write32(pmmio + 0x7041c, 0x0);
-+
-+ write32(pmmio + DPLL_MD(0), 0x3);
-+ write32(pmmio + DPLL_MD(1), 0x3);
-+ write32(pmmio + DSPCNTR(1), 0x1000000);
-+ write32(pmmio + PIPESRC(1), 0x027f01df);
-+
-+ vga_misc_write(0x67);
-+ const u8 cr[] = { 0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
-+ 0x00, 0x4f, 0x0d, 0x0e, 0x00, 0x00, 0x00, 0x00,
-+ 0x9c, 0x8e, 0x8f, 0x28, 0x1f, 0x96, 0xb9, 0xa3,
-+ 0xff
-+ };
-+ vga_cr_write(0x11, 0);
-+
-+ for (i = 0; i <= 0x18; i++)
-+ vga_cr_write(i, cr[i]);
-+
-+ // Disable screen memory to prevent garbage from appearing.
-+ vga_sr_write(1, vga_sr_read(1) | 0x20);
-+ hactive = 640;
-+ vactive = 400;
-+
-+ mdelay(1);
-+ write32(pmmio + DPLL(0),
-+ DPLL_VCO_ENABLE | DPLLB_MODE_DAC_SERIAL
-+ | DPLL_VGA_MODE_DIS
-+ | DPLL_DAC_SERIAL_P2_CLOCK_DIV_10
-+ | 0x400601
-+ );
-+ mdelay(1);
-+ write32(pmmio + DPLL(0),
-+ DPLL_VCO_ENABLE | DPLLB_MODE_DAC_SERIAL
-+ | DPLL_VGA_MODE_DIS
-+ | DPLL_DAC_SERIAL_P2_CLOCK_DIV_10
-+ | 0x400601
-+ );
-+
-+ write32(pmmio + ADPA, ADPA_DAC_ENABLE
-+ | ADPA_PIPE_A_SELECT
-+ | ADPA_USE_VGA_HVPOLARITY
-+ | ADPA_VSYNC_CNTL_ENABLE
-+ | ADPA_HSYNC_CNTL_ENABLE
-+ | ADPA_DPMS_ON
-+ );
-+
-+ write32(pmmio + HTOTAL(0),
-+ ((hactive - 1) << 16)
-+ | (hactive - 1));
-+ write32(pmmio + HBLANK(0),
-+ ((hactive - 1) << 16)
-+ | (hactive - 1));
-+ write32(pmmio + HSYNC(0),
-+ ((hactive - 1) << 16)
-+ | (hactive - 1));
-+
-+ write32(pmmio + VTOTAL(0), ((vactive - 1) << 16)
-+ | (vactive - 1));
-+ write32(pmmio + VBLANK(0), ((vactive - 1) << 16)
-+ | (vactive - 1));
-+ write32(pmmio + VSYNC(0),
-+ ((vactive - 1) << 16)
-+ | (vactive - 1));
-+
-+ write32(pmmio + PF_WIN_POS(0), 0);
-+
-+ write32(pmmio + PIPESRC(0), (639 << 16) | 399);
-+ write32(pmmio + PF_CTL(0),PF_ENABLE | PF_FILTER_MED_3x3);
-+ write32(pmmio + PF_WIN_SZ(0), vactive | (hactive << 16));
-+ write32(pmmio + PFIT_CONTROL, 0x0);
-+
-+ mdelay(1);
-+
-+ write32(pmmio + FDI_RX_CTL(0), 0x00002040);
-+ mdelay(1);
-+ write32(pmmio + FDI_RX_CTL(0), 0x80002050);
-+ write32(pmmio + FDI_TX_CTL(0), 0x00044000);
-+ mdelay(1);
-+ write32(pmmio + FDI_TX_CTL(0), 0x80044000);
-+ write32(pmmio + PIPECONF(0), PIPECONF_ENABLE | PIPECONF_BPP_6 | PIPECONF_DITHER_EN);
-+
-+ write32(pmmio + VGACNTRL, 0x0);
-+ write32(pmmio + DSPCNTR(0), DISPLAY_PLANE_ENABLE | DISPPLANE_BGRX888);
-+ mdelay(1);
-+
-+ write32(pmmio + ADPA, ADPA_DAC_ENABLE
-+ | ADPA_PIPE_A_SELECT
-+ | ADPA_USE_VGA_HVPOLARITY
-+ | ADPA_VSYNC_CNTL_ENABLE
-+ | ADPA_HSYNC_CNTL_ENABLE
-+ | ADPA_DPMS_ON
-+ );
-+
-+ write32(pmmio + DSPFW3, 0x7f3f00c1);
-+ write32(pmmio + MI_MODE, 0x200 | VS_TIMER_DISPATCH);
-+ write32(pmmio + CACHE_MODE_0, (0x6820 | (1 << 9)) & ~(1 << 5));
-+ write32(pmmio + CACHE_MODE_1, 0x380 & ~(1 << 9));
-+
-+ /* Set up GTT. */
-+
-+ reg16 = pci_read_config16(dev_find_slot(0, PCI_DEVFN(0, 0)), GGC);
-+ uma_size = 0;
-+ if (!(reg16 & 2)) {
-+ uma_size = decode_igd_memory_size((reg16 >> 4) & 7);
-+ printk(BIOS_DEBUG, "%dM UMA\n", uma_size >> 10);
-+ }
-+
-+ for (i = 0; i < (uma_size - 256) / 4; i++)
-+ {
-+ outl((i << 2) | 1, piobase);
-+ outl(pphysbase + (i << 12) + 1, piobase + 4);
-+ }
-+
-+ /* Clear interrupts. */
-+ write32(pmmio + DEIIR, 0xffffffff);
-+ write32(pmmio + SDEIIR, 0xffffffff);
-+ write32(pmmio + IIR, 0xffffffff);
-+ write32(pmmio + IMR, 0xffffffff);
-+ write32(pmmio + EIR, 0xffffffff);
-+
-+ vga_textmode_init();
-+
-+ /* Enable screen memory. */
-+ vga_sr_write(1, vga_sr_read(1) & ~0x20);
-+
-+ return 0;
-+
-+}
-+
-+/* compare the header of the vga edid header */
-+/* if vga is not connected it should have a correct header */
-+static int vga_connected(u8 *pmmio) {
-+ u8 vga_edid[128];
-+ u8 header[8] = {0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00};
-+ intel_gmbus_read_edid(pmmio + GMBUS0, 2, 0x50, vga_edid, 128);
-+ intel_gmbus_stop(pmmio + GMBUS0);
-+ for (int i = 0; i < 8; i++) {
-+ if (vga_edid[i] != header[i]) {
-+ printk(BIOS_DEBUG, "VGA not connected. Using LVDS display\n");
-+ return 0;
-+ }
-+ }
-+ printk(BIOS_SPEW, "VGA display connected\n");
-+ return 1;
-+}
-+
- #endif
-
- static void gma_func0_init(struct device *dev)
-@@ -423,7 +611,11 @@ static void gma_func0_init(struct device *dev)
- );
-
- int err;
-- err = intel_gma_init(conf, pci_read_config32(dev, 0x5c) & ~0xf,
-+ if (vga_connected(mmiobase))
-+ err = intel_gma_init_vga(conf, pci_read_config32(dev, 0x5c) & ~0xf,
-+ iobase, mmiobase, graphics_base);
-+ else
-+ err = intel_gma_init_lvds(conf, pci_read_config32(dev, 0x5c) & ~0xf,
- iobase, mmiobase, graphics_base);
- if (err == 0)
- gfx_set_init_done(1);
---
-2.9.3
-
diff --git a/resources/libreboot/patch/coreboot/36d405268f040208cd26902f3c0b5346f7d4d25b/seabios/d945gclf/0004-mb-intel-d945gclf-Allow-use-of-native-graphic-init.patch b/resources/libreboot/patch/coreboot/36d405268f040208cd26902f3c0b5346f7d4d25b/seabios/d945gclf/0004-mb-intel-d945gclf-Allow-use-of-native-graphic-init.patch
deleted file mode 100644
index bda565f9..00000000
--- a/resources/libreboot/patch/coreboot/36d405268f040208cd26902f3c0b5346f7d4d25b/seabios/d945gclf/0004-mb-intel-d945gclf-Allow-use-of-native-graphic-init.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From d80a39744d7aad734e8d53f2b2d6cb6b5eeee834 Mon Sep 17 00:00:00 2001
-From: Arthur Heymans <arthur@aheymans.xyz>
-Date: Tue, 6 Sep 2016 23:03:04 +0200
-Subject: [PATCH 4/5] mb/intel/d945gclf: Allow use of native graphic init
-
-Adds pci device id to native graphic init and add a Native graphic init
-option in Kconfig.
-
-Change-Id: I136122daef70547830bcc87f568406be7162461f
-Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
-
-diff --git a/src/mainboard/intel/d945gclf/Kconfig b/src/mainboard/intel/d945gclf/Kconfig
-index 429a304..a83e613 100644
---- a/src/mainboard/intel/d945gclf/Kconfig
-+++ b/src/mainboard/intel/d945gclf/Kconfig
-@@ -29,6 +29,8 @@ config BOARD_SPECIFIC_OPTIONS # dummy
- select HAVE_ACPI_RESUME
- select BOARD_ROMSIZE_KB_512
- select CHANNEL_XOR_RANDOMIZATION
-+ select MAINBOARD_HAS_NATIVE_VGA_INIT
-+ select INTEL_EDID
-
- config MAINBOARD_DIR
- string
-diff --git a/src/northbridge/intel/i945/gma.c b/src/northbridge/intel/i945/gma.c
-index 37674d7..abe7dd6 100644
---- a/src/northbridge/intel/i945/gma.c
-+++ b/src/northbridge/intel/i945/gma.c
-@@ -716,7 +716,7 @@ static struct device_operations gma_func1_ops = {
- .ops_pci = &gma_pci_ops,
- };
-
--static const unsigned short pci_device_ids[] = { 0x27a2, 0x27ae, 0 };
-+static const unsigned short pci_device_ids[] = { 0x27a2, 0x27ae, 0x2772, 0 };
-
- static const struct pci_driver i945_gma_func0_driver __pci_driver = {
- .ops = &gma_func0_ops,
---
-2.9.3
-
diff --git a/resources/libreboot/patch/coreboot/36d405268f040208cd26902f3c0b5346f7d4d25b/seabios/d945gclf/0005-i945-gma.c-Only-init-LVDS-if-it-is-present-on-the-de.patch b/resources/libreboot/patch/coreboot/36d405268f040208cd26902f3c0b5346f7d4d25b/seabios/d945gclf/0005-i945-gma.c-Only-init-LVDS-if-it-is-present-on-the-de.patch
deleted file mode 100644
index 3155ef90..00000000
--- a/resources/libreboot/patch/coreboot/36d405268f040208cd26902f3c0b5346f7d4d25b/seabios/d945gclf/0005-i945-gma.c-Only-init-LVDS-if-it-is-present-on-the-de.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From 603387a7650a80c92f1064f17fbbf06d60c06f30 Mon Sep 17 00:00:00 2001
-From: Arthur Heymans <arthur@aheymans.xyz>
-Date: Tue, 6 Sep 2016 23:53:32 +0200
-Subject: [PATCH 5/5] i945/gma.c: Only init LVDS if it is present on the device
-
-Some devices have no LVDS output but if no VGA is connected or
-no edid can be found, it will try to init LVDS.
-
-This patch makes sure only devices that have an LVDS connector can use LVDS
-graphic initialisation.
-
-Change-Id: Ie15631514535bab6c881c1f52e9edbfb8aaa5db7
-Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
-
-diff --git a/src/mainboard/apple/macbook21/Kconfig b/src/mainboard/apple/macbook21/Kconfig
-index e653c08..8ba3d77 100644
---- a/src/mainboard/apple/macbook21/Kconfig
-+++ b/src/mainboard/apple/macbook21/Kconfig
-@@ -35,6 +35,10 @@ config DCACHE_RAM_SIZE
- hex
- default 0x8000
-
-+config HAS_LVDS
-+ bool
-+ default y
-+
- if BOARD_APPLE_MACBOOK21
-
- config MAINBOARD_PART_NUMBER
-diff --git a/src/mainboard/getac/p470/Kconfig b/src/mainboard/getac/p470/Kconfig
-index ea68bed..e74b70c 100644
---- a/src/mainboard/getac/p470/Kconfig
-+++ b/src/mainboard/getac/p470/Kconfig
-@@ -64,4 +64,8 @@ config VGA_BIOS_FILE
- string
- default "getac-pci8086,27a2.rom"
-
-+config HAS_LVDS
-+ bool
-+ default y
-+
- endif # BOARD_GETAC_P470
-diff --git a/src/mainboard/lenovo/t60/Kconfig b/src/mainboard/lenovo/t60/Kconfig
-index 52eeda3..e5a7554 100644
---- a/src/mainboard/lenovo/t60/Kconfig
-+++ b/src/mainboard/lenovo/t60/Kconfig
-@@ -54,4 +54,8 @@ config SEABIOS_PS2_TIMEOUT
- int
- default 3000
-
-+config HAS_LVDS
-+ bool
-+ default y
-+
- endif
-diff --git a/src/mainboard/lenovo/x60/Kconfig b/src/mainboard/lenovo/x60/Kconfig
-index ab4b58e..152e6b2 100644
---- a/src/mainboard/lenovo/x60/Kconfig
-+++ b/src/mainboard/lenovo/x60/Kconfig
-@@ -61,4 +61,8 @@ config SEABIOS_PS2_TIMEOUT
- int
- default 3000
-
-+config HAS_LVDS
-+ bool
-+ default y
-+
- endif
-diff --git a/src/northbridge/intel/i945/Kconfig b/src/northbridge/intel/i945/Kconfig
-index 6e8d35b..ae7961f 100644
---- a/src/northbridge/intel/i945/Kconfig
-+++ b/src/northbridge/intel/i945/Kconfig
-@@ -71,4 +71,8 @@ config CHECK_SLFRCS_ON_RESUME
- On other boards the check always creates a false positive,
- effectively making it impossible to resume.
-
-+config HAS_LVDS
-+ bool
-+ default n
-+
- endif
-diff --git a/src/northbridge/intel/i945/gma.c b/src/northbridge/intel/i945/gma.c
-index abe7dd6..be299f4 100644
---- a/src/northbridge/intel/i945/gma.c
-+++ b/src/northbridge/intel/i945/gma.c
-@@ -611,7 +611,7 @@ static void gma_func0_init(struct device *dev)
- );
-
- int err;
-- if (vga_connected(mmiobase))
-+ if (!CONFIG_HAS_LVDS || vga_connected(mmiobase))
- err = intel_gma_init_vga(conf, pci_read_config32(dev, 0x5c) & ~0xf,
- iobase, mmiobase, graphics_base);
- else
---
-2.9.3
-