[PATCH] bios: mtrr: remove unused VGA region check

Colin King colin.king at canonical.com
Fri Dec 7 00:09:13 UTC 2012


From: Colin Ian King <colin.king at canonical.com>

We've had the VGA region check disabled for a few releases now
and I really don't think it will ever be enabled, so I'm removing
this old unused code.

Signed-off-by: Colin Ian King <colin.king at canonical.com>
---
 src/bios/mtrr/mtrr.c | 148 ---------------------------------------------------
 1 file changed, 148 deletions(-)

diff --git a/src/bios/mtrr/mtrr.c b/src/bios/mtrr/mtrr.c
index 5f3e8d5..294e80b 100644
--- a/src/bios/mtrr/mtrr.c
+++ b/src/bios/mtrr/mtrr.c
@@ -23,8 +23,6 @@
 
 #ifdef FWTS_ARCH_INTEL
 
-#define FWTS_TEST_VGA_REGION	0
-
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
@@ -194,152 +192,6 @@ restart:
 	return type;
 }
 
-#if FWTS_TEST_VGA_REGION
-static fwts_list *get_klog_bios_mtrr(void)
-{
-	fwts_list *mtrr_bios_list;
-	fwts_list_link *item;
-	int scan = 0;
-
-	if ((mtrr_bios_list = fwts_list_new()) == NULL)
-		return NULL;
-
-	fwts_list_foreach(item, klog) {
-		char *str = fwts_text_list_text(item);
-
-		if (strstr(str, "MTRR variable ranges enabled")) {
-			scan = 1;
-			continue;
-		}
-
-		if (scan) {
-			char *base = strstr(str, "base");
-			char *disabled = strstr(str, "disabled");
-
-			if ((base == NULL) && (disabled == NULL))
-				scan = 0;
-
-			if (base) {
-				uint64_t start = strtoull(base+6, NULL, 16);
-				str = strstr(base, "mask");
-				if (str) {
-					struct mtrr_entry *mtrr;
-
-					mtrr = calloc(1, sizeof(struct mtrr_entry));
-					if (mtrr == NULL) {
-						fwts_list_free(mtrr_bios_list,
-							free);
-						return NULL;
-					}
-					mtrr->type = 0;
-
-					uint64_t mask =
-						strtoull(str+5, NULL, 16);
-					uint64_t pat = 0x8000000000000000ULL;
-					while ((mask & pat) == 0) {
-						mask |= pat;
-						pat >>= 1;
-					}
-
-					mtrr->start = start;
-					mtrr->end = start + ~mask;
-
-					fwts_list_append(mtrr_bios_list, mtrr);
-				}
-			}
-		}
-	}
-
-	return mtrr_bios_list;
-}
-#endif
-
-#if FWTS_TEST_VGA_REGION
-static int check_vga_controller_address(fwts_framework *fw)
-{
-	char line[4096];
-	fwts_list *lspci_output;
-	fwts_list_link *item;
-	fwts_list *mtrr_bios_list;
-	int vga = 0;
-	int found = 0;
-
-	memset(line,0,4096);
-
-	if ((mtrr_bios_list = get_klog_bios_mtrr()) == NULL) {
-		fwts_log_error("Out of memory fetching MTRR list.");
-		return FWTS_ERROR;
-	}
-
-	snprintf(line, sizeof(line), "%s -v", fw->lspci);
-	fwts_pipe_exec(line, &lspci_output);
-	if (lspci_output == NULL)
-		return FWTS_ERROR;
-
-	fwts_list_foreach(item, lspci_output) {
-		char *str = fwts_text_list_text(item);
-		if (strstr(str, "VGA compatible controller"))
-			vga = 1;
-		if (*str == '\0')
-			vga = 0;
-		if (vga) {
-			if ((str = strstr(str, "Memory at ")) != NULL) {
-				struct mtrr_entry *mtrr;
-				uint64_t start = strtoull(str+10, NULL, 16);
-				uint64_t size = 0;
-#if 0
-				int pref = 0;
-				if (strstr(str, "non-prefetchable"))
-					pref = 0;
-				else if (strstr(str, "(prefetchable"))
-					pref = 1;
-				else if (strstr(str, ", prefetchable"))
-					pref = 1;
-#endif
-				if ((str = strstr(str + 10, "size=")) != NULL) {
-					size = strtoull(str+5, NULL, 10);
-					if (strstr(str + 5, "K]"))
-						size *= 1024;
-					if (strstr(str + 5, "M]"))
-						size *= (1024*1024);
-					size--;
-				}
-
-				if (size > 1024*1024) {
-					fwts_list_link *mtrr_bios_item;
-
-					fwts_list_foreach(mtrr_bios_item, mtrr_bios_list) {
-						mtrr = fwts_list_data(struct mtrr_entry *, mtrr_bios_item);
-						if (start >= mtrr->start && (start+size)<= mtrr->end) {
-							found = 1;
-							fwts_passed(fw, "Found VGA memory region in BIOS initialised MTRR space: %" PRIx64 " - %" PRIx64 "\n",
-								mtrr->start,
-								mtrr->end);
-							break;
-						}
-					}
-				}
-			}
-		}
-	}
-
-	if (!found) {
-		fwts_failed(fw, LOG_LEVEL_LOW, "MTRRVGA", "Did not find a BIOS configured MTRR for VGA memory region. ");
-		fwts_advice(fw,
-			"The VGA memory region does not have a MTRR configured "
-			"by the BIOS. This means that bootloaders rendering to "
-			"a framebuffer will be rendering slowly and this will "
-			"slow the boot speed. It is probably worth asking the "
-			"BIOS vendor to map in the VGA write-combining "
-			"region.");
-	}
-	fwts_list_free(mtrr_bios_list, free);
-	fwts_list_free(lspci_output, free);
-
-	return FWTS_OK;
-}
-#endif
-
 static int is_prefetchable(fwts_framework *fw, char *device, uint64_t address)
 {
 	int pref = 0;
-- 
1.8.0




More information about the fwts-devel mailing list