the following patch was just integrated into master:
commit f5bde44df2ff954c8af9fd6ab50453f491983dab
Author: Edward O'Callaghan <eocallaghan(a)alterapraxis.com>
Date: Mon Jun 2 12:20:11 2014 +1000
superio/smsc/kbc1100: Virtually rewrite support and fix mainboards
1. Remove #include .c in romstage.
2. Make romstage component symbols linker-time.
3. Provide header guards and prototypes in superio romstage support.
4. Correct function type-signatures to be static/non-static where
appropriate, avoid 'pretend optimisations' by unnecessarily inlining
functions.
5. Separate out UART enable from various other PNP hard coding
Change-Id: I9b8dad7c02d802e97db73ddf2913d5c6bb33a419
Signed-off-by: Edward O'Callaghan <eocallaghan(a)alterapraxis.com>
Reviewed-on: http://review.coreboot.org/5916
Tested-by: build bot (Jenkins)
Reviewed-by: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
See http://review.coreboot.org/5916 for details.
-gerrit
the following patch was just integrated into master:
commit 4ba8ba4654aef66283db5a69e40586fb9e186b5a
Author: Edward O'Callaghan <eocallaghan(a)alterapraxis.com>
Date: Fri May 23 01:29:00 2014 +1000
build: Drop libgcc runtime wrapper in Clang builds
This GCC specific workaround of wrapping of libgcc runtime symbols with
gcc.c is not nessary with libcompiler-rt linkage.
Change-Id: I50a2bc99d97f68a2ad2b51a92ea0e7086bab35fe
Signed-off-by: Edward O'Callaghan <eocallaghan(a)alterapraxis.com>
Reviewed-on: http://review.coreboot.org/5812
Tested-by: build bot (Jenkins)
Reviewed-by: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
See http://review.coreboot.org/5812 for details.
-gerrit
Paul Menzel (paulepanter(a)users.sourceforge.net) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/5939
-gerrit
commit ca3f202edbea1b55b18473c2c3bab22228295c9d
Author: Paul Menzel <paulepanter(a)users.sourceforge.net>
Date: Thu Jun 5 22:27:24 2014 +0200
lenovo/x60/i915.c: Mask BSM register correctly
Base of Stolen Memory are (BSM) are bits 31:20.
This does make any difference as the bits 19:0 are read only and 0 by
default.
Change-Id: I82d087184a8550e95dca2ac2991ed48b06031536
Signed-off-by: Paul Menzel <paulepanter(a)users.sourceforge.net>
---
src/mainboard/lenovo/x60/i915.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/mainboard/lenovo/x60/i915.c b/src/mainboard/lenovo/x60/i915.c
index 12bcf5c..9300b2b 100644
--- a/src/mainboard/lenovo/x60/i915.c
+++ b/src/mainboard/lenovo/x60/i915.c
@@ -137,7 +137,7 @@ int gtt_setup(unsigned int mmiobase)
pgetbl_ctl = read32(mmiobase + PGETBL_CTL) & ~PGETBL_ENABLED;
pgetbl_ctl |= PGETBL_ENABLED;
- pgetbl_ctl |= pci_read_config32(dev_find_slot(0, PCI_DEVFN(2,0)), BSM) & 0xfffff000;
+ pgetbl_ctl |= pci_read_config32(dev_find_slot(0, PCI_DEVFN(2,0)), BSM) & 0xfff00000;
pgetbl_ctl |= 2; /* set GTT to 256kb */
write32(mmiobase + GFX_FLSH_CNTL, 0);
Paul Menzel (paulepanter(a)users.sourceforge.net) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/5938
-gerrit
commit b098ce008541cc1416e89d13e508d8761133a739
Author: Paul Menzel <paulepanter(a)users.sourceforge.net>
Date: Thu Jun 5 21:36:18 2014 +0200
lenovo/x60/i915.c: Use `FRAME_BUFFER_PAGES` in `set_gtt()`
The define FRAME_BUFFER_PAGES = (1024 * 768)/1024 is exactly the
amount of needed pages.
Change-Id: Ifae2a50080b0fbcdd0d3489c8da1535cbbb05eef
Signed-off-by: Paul Menzel <paulepanter(a)users.sourceforge.net>
---
src/mainboard/lenovo/x60/i915.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/mainboard/lenovo/x60/i915.c b/src/mainboard/lenovo/x60/i915.c
index 62a8252..12bcf5c 100644
--- a/src/mainboard/lenovo/x60/i915.c
+++ b/src/mainboard/lenovo/x60/i915.c
@@ -353,7 +353,7 @@ int i915lightup(unsigned int pphysbase, unsigned int piobase,
return 0;
}
- setgtt(0, 800, physbase, 4096);
+ setgtt(0, FRAME_BUFFER_PAGES, physbase, 4096);
temp = READ32(PGETLB_CTL);
printk(BIOS_INFO, "GTT PGETLB_CTL register: 0x%lx\n", temp);
Paul Menzel (paulepanter(a)users.sourceforge.net) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/5927
-gerrit
commit d57515f0acd9ea9081b2ace819f999abe3c08758
Author: Paul Menzel <paulepanter(a)users.sourceforge.net>
Date: Thu Jun 5 22:45:35 2014 +0200
lenovo/x60/i915.c: Place GTT below top of memory
PGETBL_CTL differs between Video BIOS (-) and native graphics init (+).
- PGETBL_CTL: 0x3ffc0001
+ PGETBL_CTL: 0x3f800001
Currently it is set above the base address of stolen memory. The
Video BIOS sets it below. The Linux Intel driver expects it to be
below top of memory so do it this way.
Also adapt setgtt() to use the new address.
There is still an error thrown but 3D works with Linux 3.12+.
Change-Id: I0a5b04c2c5300f5056cb48075aa5804984bc9948
Signed-off-by: Paul Menzel <paulepanter(a)users.sourceforge.net>
---
src/mainboard/lenovo/x60/i915.c | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/src/mainboard/lenovo/x60/i915.c b/src/mainboard/lenovo/x60/i915.c
index ba82423..bf266ad 100644
--- a/src/mainboard/lenovo/x60/i915.c
+++ b/src/mainboard/lenovo/x60/i915.c
@@ -140,11 +140,19 @@ int gtt_setup(unsigned int mmiobase);
int gtt_setup(unsigned int mmiobase)
{
unsigned long pgetbl_ctl;
+ unsigned long tom;
pgetbl_ctl = read32(mmiobase + PGETBL_CTL) & ~PGETBL_ENABLED;
pgetbl_ctl |= PGETBL_ENABLED;
- pgetbl_ctl |= pci_read_config32(dev_find_slot(0, PCI_DEVFN(2,0)), BSM) & 0xfff00000;
+ /* The Video BIOS places the GTT right below top of memory.
+ * It is not documented in the datasheet, but the Intel developers said
+ * that it is normally placed there.
+ *
+ * TODO: Add option table value to make the GTT size runtime configurable.
+ */
+ tom = pci_read_config8(dev_find_slot(0, PCI_DEVFN(0, 0)), TOLUD) << 24;
+ pgetbl_ctl |= tom - 256 * KiB;
pgetbl_ctl |= PGETBL_GTT_SIZE_256KB << 1; /* set GTT to 256kb */
write32(mmiobase + GFX_FLSH_CNTL, 0);
@@ -360,11 +368,11 @@ int i915lightup(unsigned int pphysbase, unsigned int piobase,
return 0;
}
- setgtt(0, FRAME_BUFFER_PAGES, physbase, 4096);
-
temp = READ32(PGETLB_CTL);
printk(BIOS_INFO, "GTT PGETLB_CTL register: 0x%lx\n", temp);
+ setgtt(0, FRAME_BUFFER_PAGES, temp & 0xfffff000, 4096);
+
if (temp & 1)
printk(BIOS_INFO, "GTT enabled.\n");
else