[coreboot-gerrit] Patch set updated for coreboot: northbridge/intel/sandybridge: support both Sandy&Ivy on one board
Iru Cai (mytbk920423@gmail.com)
gerrit at coreboot.org
Wed Oct 28 10:14:26 CET 2015
Iru Cai (mytbk920423 at gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/12087
-gerrit
commit 34f4d11bbf54f1d88067efa687584b40ae1f6aa4
Author: Iru Cai <mytbk920423 at gmail.com>
Date: Sun Oct 18 23:40:34 2015 +0800
northbridge/intel/sandybridge: support both Sandy&Ivy on one board
Sandy and Ivy Bridge processors use the same socket,
and a mainboard with the socket can support both types
of CPUs. However, they use different native graphics init
code and cause a crashing if running the wrong code.
So it needs a detecting, then selects the right code to run.
This patch will add some more code in ramstage (maybe we can add some
more flexible Kconfig settings).
Tested on a Lenovo T420 with i5-2520m or i7-3720qm
Needs testing: desktop/server platforms, 7 series chipset with SNB/IVB
Signed-off-by: Iru Cai <mytbk920423 at gmail.com>
Change-Id: I4624759f9c92d56d547db1ab4b9a1d611a182a91
---
src/northbridge/intel/sandybridge/Makefile.inc | 2 ++
src/northbridge/intel/sandybridge/gma.c | 15 +++++++++++++--
src/northbridge/intel/sandybridge/gma.h | 2 ++
src/northbridge/intel/sandybridge/gma_ivybridge_lvds.c | 4 ++--
4 files changed, 19 insertions(+), 4 deletions(-)
diff --git a/src/northbridge/intel/sandybridge/Makefile.inc b/src/northbridge/intel/sandybridge/Makefile.inc
index 49c0712..7c66269 100644
--- a/src/northbridge/intel/sandybridge/Makefile.inc
+++ b/src/northbridge/intel/sandybridge/Makefile.inc
@@ -23,6 +23,8 @@ ramstage-y += ram_calc.c
ramstage-y += northbridge.c
ramstage-y += gma.c
ramstage-$(CONFIG_IVYBRIDGE_LVDS) += gma_ivybridge_lvds.c
+ramstage-$(CONFIG_IVYBRIDGE_LVDS) += gma_sandybridge_lvds.c
+ramstage-$(CONFIG_SANDYBRIDGE_LVDS) += gma_ivybridge_lvds.c
ramstage-$(CONFIG_SANDYBRIDGE_LVDS) += gma_sandybridge_lvds.c
ramstage-y += acpi.c
diff --git a/src/northbridge/intel/sandybridge/gma.c b/src/northbridge/intel/sandybridge/gma.c
index d1779db..d859cc9 100644
--- a/src/northbridge/intel/sandybridge/gma.c
+++ b/src/northbridge/intel/sandybridge/gma.c
@@ -595,8 +595,19 @@ static void gma_func0_init(struct device *dev)
physbase = pci_read_config32(dev, 0x5c) & ~0xf;
graphics_base = dev->resource_list[1].base;
- int lightup_ok = i915lightup_sandy(&conf->gfx, physbase, iobase,
- mmiobase, graphics_base);
+ int lightup_ok;
+#if (IS_ENABLED(CONFIG_SANDYBRIDGE_LVDS) || IS_ENABLED(CONFIG_IVYBRIDGE_LVDS))
+ if ((bridge_silicon_revision() & BASE_REV_MASK) == BASE_REV_SNB) {
+ lightup_ok = i915lightup_sandy(&conf->gfx, physbase, iobase,
+ mmiobase, graphics_base);
+ } else {
+ lightup_ok = i915lightup_ivy(&conf->gfx, physbase, iobase,
+ mmiobase, graphics_base);
+ }
+#else
+ lightup_ok = i915lightup_ivy(&conf->gfx, physbase, iobase,
+ mmiobase, graphics_base);
+#endif
if (lightup_ok)
gfx_set_init_done(1);
}
diff --git a/src/northbridge/intel/sandybridge/gma.h b/src/northbridge/intel/sandybridge/gma.h
index d8e19e4..58e4957 100644
--- a/src/northbridge/intel/sandybridge/gma.h
+++ b/src/northbridge/intel/sandybridge/gma.h
@@ -118,3 +118,5 @@ struct i915_gpu_controller_info;
int i915lightup_sandy(const struct i915_gpu_controller_info *info,
u32 physbase, u16 pio, u8 *mmio, u32 lfb);
+int i915lightup_ivy(const struct i915_gpu_controller_info *info,
+ u32 phybase, u16 pio, u8 *mmio, u32 lfb);
diff --git a/src/northbridge/intel/sandybridge/gma_ivybridge_lvds.c b/src/northbridge/intel/sandybridge/gma_ivybridge_lvds.c
index c37959e..9a48549 100644
--- a/src/northbridge/intel/sandybridge/gma_ivybridge_lvds.c
+++ b/src/northbridge/intel/sandybridge/gma_ivybridge_lvds.c
@@ -157,8 +157,8 @@ static void enable_port(u8 *mmio)
read32(mmio + 0xc4000);
}
-int i915lightup_sandy(const struct i915_gpu_controller_info *info,
- u32 physbase, u16 piobase, u8 *mmio, u32 lfb)
+int i915lightup_ivy(const struct i915_gpu_controller_info *info,
+ u32 physbase, u16 piobase, u8 *mmio, u32 lfb)
{
int i;
u8 edid_data[128];
More information about the coreboot-gerrit
mailing list