the following patch was just integrated into master:
commit 3eb65eca69e3be6af54342e5581f6761f63e39d1
Author: Martin Roth <martinroth(a)chromium.org>
Date: Tue Aug 30 16:21:53 2016 -0600
Kconfig: Add option for microcode filenames
Hardcoding the microcode filenames into the makefiles is great when
the microcode is in the blobs directory. When the microcode isn't
posted to the blobs directory, we need some method of supplying the
microcode binary into the build. This can of course be done manually
after the build has completed, as can be done with everything that
we're including in the ROM image. Instead of making life hard for
everyone though, let's just add a way to specify where the microcode
rom comes from.
BUG=chrome-os-partner:53013
Change-Id: I7c5127234809e8515906efa56c04af6005eecf0b
Signed-off-by: Martin Roth <martinroth(a)chromium.org>
Reviewed-on: https://review.coreboot.org/16386
Tested-by: build bot (Jenkins)
Reviewed-by: Paul Menzel <paulepanter(a)users.sourceforge.net>
Reviewed-by: Omar Pakker
Reviewed-by: Aaron Durbin <adurbin(a)chromium.org>
See https://review.coreboot.org/16386 for details.
-gerrit
Arthur Heymans (arthur(a)aheymans.xyz) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/16530
-gerrit
commit bce67d19b6bf8e17ce148e8c4814757d51371aff
Author: Arthur Heymans <arthur(a)aheymans.xyz>
Date: Wed Sep 7 22:10:57 2016 +0200
i945/gma.c: generate fake VBT
This generates a fake VBT for the Intel i945 graphic device.
i945 supports both the mobile chipset 945gm (calistoga)
and the desktop chipset 945gc (lakeport),
which is why a VBT with a different id string
needs to be created for each target.
The VBT id string is obtained from the vbios blob in the following way:
"strings vbios.bin | grep VBT".
Change-Id: I8245b12b16a4426efbe1f584d4163fc257231a98
Signed-off-by: Arthur Heymans <arthur(a)aheymans.xyz>
---
src/northbridge/intel/i945/gma.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/src/northbridge/intel/i945/gma.c b/src/northbridge/intel/i945/gma.c
index 17e0d70..0f829f1 100644
--- a/src/northbridge/intel/i945/gma.c
+++ b/src/northbridge/intel/i945/gma.c
@@ -623,6 +623,15 @@ static void gma_func0_init(struct device *dev)
iobase, mmiobase, graphics_base);
if (err == 0)
gfx_set_init_done(1);
+ /* Linux relies on VBT for panel info. */
+ if (CONFIG_NORTHBRIDGE_INTEL_SUBTYPE_I945GM) {
+ generate_fake_intel_oprom(&conf->gfx, dev,
+ "$VBT CALISTOGA");
+ }
+ if (CONFIG_NORTHBRIDGE_INTEL_SUBTYPE_I945GC) {
+ generate_fake_intel_oprom(&conf->gfx, dev,
+ "$VBT LAKEPORT-G");
+ }
#endif
}
Arthur Heymans (arthur(a)aheymans.xyz) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/16513
-gerrit
commit 8e72c18c2a73a4069b1274e77f200a0f7c55552a
Author: Arthur Heymans <arthur(a)aheymans.xyz>
Date: Tue Sep 6 23:53:32 2016 +0200
i945/gma.c: Only init LVDS if it is detected
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 patches detects the presence of an LVDS panel and
makes sure only that only VGA is initialised in the absence of an LVDS panel.
Change-Id: Ie15631514535bab6c881c1f52e9edbfb8aaa5db7
Signed-off-by: Arthur Heymans <arthur(a)aheymans.xyz>
---
src/northbridge/intel/i945/gma.c | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/src/northbridge/intel/i945/gma.c b/src/northbridge/intel/i945/gma.c
index cef1349..17e0d70 100644
--- a/src/northbridge/intel/i945/gma.c
+++ b/src/northbridge/intel/i945/gma.c
@@ -555,18 +555,20 @@ static int intel_gma_init_vga(struct northbridge_intel_i945_config *conf,
/* 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) {
+static int probe_edid(u8 *pmmio, u8 slave)
+{
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_read_edid(pmmio + GMBUS0, slave, 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");
+ printk(BIOS_DEBUG, "Slave %d is not connected\n",
+ slave);
return 0;
}
}
- printk(BIOS_SPEW, "VGA display connected\n");
+ printk(BIOS_SPEW, "Slave %d is connected\n", slave);
return 1;
}
@@ -611,7 +613,9 @@ static void gma_func0_init(struct device *dev)
);
int err;
- if (vga_connected(mmiobase))
+ /* probe if VGA is connected and alway run */
+ /* VGA init if no LVDS is connected */
+ if (!probe_edid(mmiobase, 3) || probe_edid(mmiobase, 2))
err = intel_gma_init_vga(conf, pci_read_config32(dev, 0x5c) & ~0xf,
iobase, mmiobase, graphics_base);
else