summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArthur Heymans <arthur@aheymans.xyz>2017-06-13 20:57:05 +0200
committerNico Huber <nico.h@gmx.de>2017-06-15 00:35:35 +0200
commitd65ff229882ef0e3dad27867125cab681c7b7aec (patch)
tree13ec0c6574d6ccee4b958c52d924487a6e1cd542
parent660de34bbf0c9843120ffa2e861d26718e3205e3 (diff)
downloadcoreboot-d65ff229882ef0e3dad27867125cab681c7b7aec.tar.xz
nb/intel/gm45: Don't allow too low values for gfx_uma_size
Too low gfx_uma_size can result in problems if the framebuffer does not fit. This partially reverts: 7afcfe0 "gm45: enable setting all vram sizes from cmos" Change-Id: I485d24198cb784db5d2cfce0a8646e861a4a1695 Signed-off-by: Arthur Heymans <arthur@aheymans.xyz> Reviewed-on: https://review.coreboot.org/20194 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Patrick Rudolph <siro@das-labor.org> Reviewed-by: Nico Huber <nico.h@gmx.de>
-rw-r--r--src/mainboard/lenovo/t400/cmos.layout4
-rw-r--r--src/mainboard/lenovo/x200/cmos.layout4
-rw-r--r--src/mainboard/roda/rk9/cmos.layout4
-rw-r--r--src/northbridge/intel/gm45/igd.c13
4 files changed, 6 insertions, 19 deletions
diff --git a/src/mainboard/lenovo/t400/cmos.layout b/src/mainboard/lenovo/t400/cmos.layout
index 3b1e32a181..4f89e2d754 100644
--- a/src/mainboard/lenovo/t400/cmos.layout
+++ b/src/mainboard/lenovo/t400/cmos.layout
@@ -125,10 +125,6 @@ enumerations
9 1 Primary
10 0 AHCI
10 1 Compatible
-11 0 1M
-11 1 4M
-11 2 8M
-11 3 16M
11 4 32M
11 5 48M
11 6 64M
diff --git a/src/mainboard/lenovo/x200/cmos.layout b/src/mainboard/lenovo/x200/cmos.layout
index 59a1c6daf1..f3cfe70459 100644
--- a/src/mainboard/lenovo/x200/cmos.layout
+++ b/src/mainboard/lenovo/x200/cmos.layout
@@ -123,10 +123,6 @@ enumerations
9 1 Primary
10 0 AHCI
10 1 Compatible
-11 0 1M
-11 1 4M
-11 2 8M
-11 3 16M
11 4 32M
11 5 48M
11 6 64M
diff --git a/src/mainboard/roda/rk9/cmos.layout b/src/mainboard/roda/rk9/cmos.layout
index d9119b35f1..f775afe4c7 100644
--- a/src/mainboard/roda/rk9/cmos.layout
+++ b/src/mainboard/roda/rk9/cmos.layout
@@ -112,10 +112,6 @@ enumerations
8 1 Yes
9 0 AHCI
9 1 Compatible
-11 0 1M
-11 1 4M
-11 2 8M
-11 3 16M
11 4 32M
11 5 48M
11 6 64M
diff --git a/src/northbridge/intel/gm45/igd.c b/src/northbridge/intel/gm45/igd.c
index 1164339c8a..45144aae2e 100644
--- a/src/northbridge/intel/gm45/igd.c
+++ b/src/northbridge/intel/gm45/igd.c
@@ -153,17 +153,16 @@ void igd_compute_ggc(sysinfo_t *const sysinfo)
if (!sysinfo->enable_igd || (capid & (1 << (33 - 32))))
sysinfo->ggc = 0x0002;
else {
- u8 gfxsize;
+ /* 4 for 32MB, default if not set in cmos */
+ u8 gfxsize = 4;
/* Graphics Stolen Memory: 2MB GTT (0x0300) when VT-d disabled,
2MB GTT + 2MB shadow GTT (0x0b00) else. */
- if (get_option(&gfxsize, "gfx_uma_size") != CB_SUCCESS) {
- /* 4 for 32MB, default if not set in cmos */
- gfxsize = 4;
- }
+ get_option(&gfxsize, "gfx_uma_size");
/* Handle invalid cmos settings */
- if (gfxsize > 12)
- gfxsize = 4;
+ /* Only allow settings between 32MB and 352MB */
+ gfxsize = MIN(MAX(gfxsize, 4), 12);
+
sysinfo->ggc = 0x0300 | ((gfxsize + 1) << 4);
if (!(capid & (1 << (48 - 32))))
sysinfo->ggc |= 0x0800;