[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