summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mainboard/asus/m2v-mx_se/Config.lb3
-rw-r--r--src/mainboard/asus/m2v-mx_se/mainboard.c14
-rw-r--r--src/southbridge/via/k8t890/k8t890_dram.c11
3 files changed, 27 insertions, 1 deletions
diff --git a/src/mainboard/asus/m2v-mx_se/Config.lb b/src/mainboard/asus/m2v-mx_se/Config.lb
index 50b8ddbf99..a1f291fd33 100644
--- a/src/mainboard/asus/m2v-mx_se/Config.lb
+++ b/src/mainboard/asus/m2v-mx_se/Config.lb
@@ -34,7 +34,8 @@ default CONFIG_ROM_PAYLOAD = 1
default _ROMBASE = (CONFIG_ROM_PAYLOAD_START + PAYLOAD_SIZE)
##WARNING enable caching of whole ROM during CAR
-default XIP_ROM_SIZE = ROM_SIZE
+##for 512KB flash
+default XIP_ROM_SIZE = 0x80000
default XIP_ROM_BASE = 0xffffffff + 1 - XIP_ROM_SIZE
arch i386 end
diff --git a/src/mainboard/asus/m2v-mx_se/mainboard.c b/src/mainboard/asus/m2v-mx_se/mainboard.c
index 2a5910b3a3..4735d7c851 100644
--- a/src/mainboard/asus/m2v-mx_se/mainboard.c
+++ b/src/mainboard/asus/m2v-mx_se/mainboard.c
@@ -21,8 +21,22 @@
#include <device/device.h>
#include <device/pci.h>
#include <device/pci_ids.h>
+#include <boot/tables.h>
#include "chip.h"
+/* in arch/i386/boot/tables.c */
+extern uint64_t high_tables_base, high_tables_size;
+
+int add_mainboard_resources(struct lb_memory *mem)
+{
+#if HAVE_HIGH_TABLES == 1
+ printk_debug("Adding high table area\n");
+ lb_add_memory_range(mem, LB_MEM_TABLE,
+ high_tables_base, high_tables_size);
+#endif
+ return 0;
+}
+
#if CONFIG_CHIP_NAME == 1
struct chip_operations mainboard_ops = {
CHIP_NAME("ASUS M2V-MX SE Mainboard")
diff --git a/src/southbridge/via/k8t890/k8t890_dram.c b/src/southbridge/via/k8t890/k8t890_dram.c
index 1c60a78a13..5339257743 100644
--- a/src/southbridge/via/k8t890/k8t890_dram.c
+++ b/src/southbridge/via/k8t890/k8t890_dram.c
@@ -91,6 +91,17 @@ static void get_memres(void *gp, struct device *dev, struct resource *res)
(proposed_base < ((uint64_t) 0xffffffff) )) {
resmax = res;
}
+#if HAVE_HIGH_TABLES==1
+/* in arch/i386/boot/tables.c */
+extern uint64_t high_tables_base, high_tables_size;
+
+ if ((high_tables_base) && ((high_tables_base > proposed_base) &&
+ (high_tables_base < (res->base + res->size)))) {
+ high_tables_base = proposed_base - high_tables_size;
+ printk_debug("Moving the high_tables_base pointer to "
+ "new base %llx\n", high_tables_base);
+ }
+#endif
}