summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRudolf Marek <r.marek@assembler.cz>2009-07-23 08:10:51 +0000
committerRudolf Marek <r.marek@assembler.cz>2009-07-23 08:10:51 +0000
commitb2bd9963a5ceb4fc6751f2303dab5bfea43d4293 (patch)
tree53ffcc006636025b97de3e8b1dc538996c9b206f
parent8dee52d7a86d905b1aae4590a1f53dd4c6d2f6f4 (diff)
downloadcoreboot-b2bd9963a5ceb4fc6751f2303dab5bfea43d4293.tar.xz
We did together some patch which makes finally a MMCONFIG workable in
linux out of the box. There were two problems. First was that the mmconfig ACPI structure was empty because of cut and paste (PCI ID of K8M890 is different). Second problem is now nicely solvable by add_region. Linux expects that the mmconfig region is found as reserved memory. Otherwise it does not trust it. Signed-off-by: Rudolf Marek <r.marek@assembler.cz> Acked-by: Luc Verhaegen <libv@skynet.be> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4464 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
-rw-r--r--src/mainboard/asus/m2v-mx_se/acpi_tables.c2
-rw-r--r--src/mainboard/asus/m2v-mx_se/mainboard.c13
2 files changed, 14 insertions, 1 deletions
diff --git a/src/mainboard/asus/m2v-mx_se/acpi_tables.c b/src/mainboard/asus/m2v-mx_se/acpi_tables.c
index 606321791e..ca1327af51 100644
--- a/src/mainboard/asus/m2v-mx_se/acpi_tables.c
+++ b/src/mainboard/asus/m2v-mx_se/acpi_tables.c
@@ -40,7 +40,7 @@ unsigned long acpi_fill_mcfg(unsigned long current)
device_t dev;
struct resource *res;
- dev = dev_find_device(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_K8T890CE_5, 0);
+ dev = dev_find_device(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_K8M890CE_5, 0);
if (!dev)
return current;
diff --git a/src/mainboard/asus/m2v-mx_se/mainboard.c b/src/mainboard/asus/m2v-mx_se/mainboard.c
index c68fe6174b..d25a8edf04 100644
--- a/src/mainboard/asus/m2v-mx_se/mainboard.c
+++ b/src/mainboard/asus/m2v-mx_se/mainboard.c
@@ -22,9 +22,22 @@
#include <device/pci_ids.h>
#include <boot/tables.h>
#include "chip.h"
+#include <../../../southbridge/via/k8t890/k8t890.h>
int add_mainboard_resources(struct lb_memory *mem)
{
+ device_t dev;
+
+ dev = dev_find_device(PCI_VENDOR_ID_VIA,
+ PCI_DEVICE_ID_VIA_K8M890CE_5, 0);
+ if (dev) {
+ struct resource *res =
+ find_resource(dev, K8T890_MMCONFIG_MBAR);
+ if (res)
+ lb_add_memory_range(mem, LB_MEM_RESERVED, res->base,
+ res->size);
+ }
+
#if CONFIG_HAVE_ACPI_RESUME == 1
lb_add_memory_range(mem, LB_MEM_RESERVED,
CONFIG_RAMBASE, ((CONFIG_LB_MEM_TOPK<<10) - CONFIG_RAMBASE));