Denis Carikli (GNUtoo@no-log.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/2558
-gerrit
commit af92826e725296a7c4927f06057e7a8e6cda8433 Author: Denis 'GNUtoo' Carikli GNUtoo@no-log.org Date: Thu Feb 28 15:20:04 2013 +0100
i945, Lenovo ThinkPad X60: correct VGA init's physbase?
Change-Id: Ic1cc7a7ed8ef9f1b73125103a4c5e7b30f41fdc2 Signed-off-by: Denis 'GNUtoo' Carikli GNUtoo@no-log.org --- src/mainboard/lenovo/x60/i915.c | 8 +++++--- src/mainboard/lenovo/x60/i915io.c | 2 +- src/northbridge/intel/i945/gma.c | 7 ++++++- 3 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/src/mainboard/lenovo/x60/i915.c b/src/mainboard/lenovo/x60/i915.c index 073351e..420a9fe 100644 --- a/src/mainboard/lenovo/x60/i915.c +++ b/src/mainboard/lenovo/x60/i915.c @@ -87,6 +87,7 @@ static void io_i915_WRITE32(unsigned long val, unsigned long addr) 4250.00 PTEs */ + static void setgtt(int start, int end, unsigned long base, int inc) { @@ -245,10 +246,11 @@ int i915lightup(unsigned int pphysbase, } }
- setgtt(0, 4520, physbase, 4096); + setgtt(0, 8192, physbase, 1024); printk(BIOS_SPEW, "memset %p to 0xff for %d bytes\n", - (void *)graphics, 4520*4096); - memset((void *)graphics, 0xff, 4520*4096); + (void *)graphics, 8192*1024); + memset((void *)graphics, 0xff, 8192*1024); + printk(BIOS_SPEW, "%ld microseconds\n", globalmicroseconds()); i915_init_done = 1; oprom_is_loaded = 1; diff --git a/src/mainboard/lenovo/x60/i915io.c b/src/mainboard/lenovo/x60/i915io.c index 1f37972..4161693 100644 --- a/src/mainboard/lenovo/x60/i915io.c +++ b/src/mainboard/lenovo/x60/i915io.c @@ -20,7 +20,7 @@ #include "i915io.h"
struct iodef iodefs[] = { -{V,0,}, +{V,7,}, {M, 1, "Linux agpgart interface v0.103"}, {M, 1, "agpgart-intel 0000:00:00.0:Intel 945GM Chipset"}, {M, 1, "agpgart-intel 0000:00:00.0:detected gtt size:262144K total, 262144K mappable"}, diff --git a/src/northbridge/intel/i945/gma.c b/src/northbridge/intel/i945/gma.c index 9ef863c..d7d6ab3 100644 --- a/src/northbridge/intel/i945/gma.c +++ b/src/northbridge/intel/i945/gma.c @@ -34,6 +34,7 @@ static void gma_func0_init(struct device *dev) { u32 reg32; u32 graphics_base, graphics_size; + int tolud;
/* Unconditionally reset graphics */ pci_write_config8(dev, GDRST, 1); @@ -70,8 +71,12 @@ static void gma_func0_init(struct device *dev) u32 iobase, mmiobase, physbase; iobase = dev->resource_list[1].base; mmiobase = dev->resource_list[0].base; +#if 0 /* unreliable according to i915_stolen_to_phys in the linux driver */ physbase = pci_read_config32(dev, 0x5c) & ~0xf; - +#else + tolud = pci_read_config8(dev_find_slot(0, PCI_DEVFN(0,0)), TOLUD); + physbase = (tolud >> 3 << 27); +#endif int i915lightup(u32 physbase, u32 iobase, u32 mmiobase, u32 gfx); i915lightup(physbase, iobase, mmiobase, graphics_base); #endif