From 3c7f46b42215502ecaee54c85f6d08dce9e21279 Mon Sep 17 00:00:00 2001 From: Stefan Reinauer Date: Fri, 27 Feb 2009 23:09:55 +0000 Subject: Generic approach of putting BIOS tables at the end of memory (in addition to their low locations) This adds the kontron 986LCD-M and the i945 as a sample. Signed-off-by: Stefan Reinauer Acked-by: Myles Watson git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3960 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- src/mainboard/kontron/986lcd-m/Options.lb | 4 ++++ src/mainboard/kontron/986lcd-m/acpi_tables.c | 5 +++++ src/mainboard/kontron/986lcd-m/mainboard.c | 22 ++++++++++++++++++++++ 3 files changed, 31 insertions(+) (limited to 'src/mainboard/kontron') diff --git a/src/mainboard/kontron/986lcd-m/Options.lb b/src/mainboard/kontron/986lcd-m/Options.lb index dbf21d5801..40a8a796fb 100644 --- a/src/mainboard/kontron/986lcd-m/Options.lb +++ b/src/mainboard/kontron/986lcd-m/Options.lb @@ -29,6 +29,8 @@ uses LB_CKS_RANGE_START uses LB_CKS_RANGE_END uses LB_CKS_LOC uses HAVE_ACPI_TABLES +uses HAVE_MAINBOARD_RESOURCES +uses HAVE_HIGH_TABLES # SMP uses CONFIG_SMP uses CONFIG_LOGICAL_CPUS @@ -160,6 +162,8 @@ default HAVE_MP_TABLE=1 ## Build code to provide ACPI support ## default HAVE_ACPI_TABLES=1 +default HAVE_MAINBOARD_RESOURCES=1 +default HAVE_HIGH_TABLES=0 ## ## Build code to export a CMOS option table diff --git a/src/mainboard/kontron/986lcd-m/acpi_tables.c b/src/mainboard/kontron/986lcd-m/acpi_tables.c index 2e1b0b4346..16e5bd9b7e 100644 --- a/src/mainboard/kontron/986lcd-m/acpi_tables.c +++ b/src/mainboard/kontron/986lcd-m/acpi_tables.c @@ -289,6 +289,11 @@ unsigned long write_acpi_tables(unsigned long start) printk_debug("ACPI: * DMI (Linux workaround)\n"); memcpy((void *)0xfff80, dmi_table, DMI_TABLE_SIZE); +#if HAVE_HIGH_TABLES == 1 + memcpy((void *)current, dmi_table, DMI_TABLE_SIZE); + current += DMI_TABLE_SIZE; + ALIGN_CURRENT; +#endif printk_info("ACPI: done.\n"); return current; diff --git a/src/mainboard/kontron/986lcd-m/mainboard.c b/src/mainboard/kontron/986lcd-m/mainboard.c index e66777cc96..cec477318f 100644 --- a/src/mainboard/kontron/986lcd-m/mainboard.c +++ b/src/mainboard/kontron/986lcd-m/mainboard.c @@ -21,8 +21,30 @@ #include +#include +#include #include "chip.h" +/* in arch/i386/boot/tables.c */ +extern uint64_t high_tables_base, high_tables_size; + +/* in northbridge/intel/i945/northbridge.c */ +extern uint64_t uma_memory_base, uma_memory_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 + printk_debug("Adding UMA memory area\n"); + lb_add_memory_range(mem, LB_MEM_RESERVED, + uma_memory_base, uma_memory_size); + + return 0; +} + struct chip_operations mainboard_ops = { CHIP_NAME("Kontron 986LCD-M Mainboard") }; -- cgit v1.2.3