From d65ff229882ef0e3dad27867125cab681c7b7aec Mon Sep 17 00:00:00 2001 From: Arthur Heymans Date: Tue, 13 Jun 2017 20:57:05 +0200 Subject: 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 Reviewed-on: https://review.coreboot.org/20194 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Rudolph Reviewed-by: Nico Huber --- src/northbridge/intel/gm45/igd.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'src/northbridge/intel/gm45') 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; -- cgit v1.2.3