summaryrefslogtreecommitdiff
path: root/src/northbridge/intel/i945/ram_calc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/northbridge/intel/i945/ram_calc.c')
-rw-r--r--src/northbridge/intel/i945/ram_calc.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/northbridge/intel/i945/ram_calc.c b/src/northbridge/intel/i945/ram_calc.c
index b161431e15..4349d19ea7 100644
--- a/src/northbridge/intel/i945/ram_calc.c
+++ b/src/northbridge/intel/i945/ram_calc.c
@@ -19,6 +19,7 @@
#include <arch/io.h>
#include <cbmem.h>
#include "i945.h"
+#include <console/console.h>
static uintptr_t smm_region_start(void)
{
@@ -56,3 +57,15 @@ void *cbmem_top(void)
{
return (void *) smm_region_start();
}
+
+/** Decodes used Graphics Mode Select (GMS) to kilobytes. */
+u32 decode_igd_memory_size(const u32 gms)
+{
+ static const u16 ggc2uma[] = { 0, 1, 4, 8, 16, 32,
+ 48, 64 };
+
+ if (gms > ARRAY_SIZE(ggc2uma))
+ die("Bad Graphics Mode Select (GMS) setting.\n");
+
+ return ggc2uma[gms] << 10;
+}