remove_logical_cpus need call get_option
[coreboot.git] / src / arch / i386 / boot / tables.c
index 513167188cbb08c589a139c0517d6d0be21d833c..08bb7a34014231d44f759272ddc51de6e45126df 100644 (file)
@@ -5,6 +5,8 @@
 #include <boot/linuxbios_tables.h>
 #include <arch/pirq_routing.h>
 #include <arch/smp/mpspec.h>
+#include <arch/acpi.h>
+#include <pc80/mc146818rtc.h>
 #include "linuxbios_table.h"
 
 #if CONFIG_SMP && CONFIG_MAX_PHYSICAL_CPUS && (CONFIG_MAX_PHYSICAL_CPUS < CONFIG_MAX_CPUS)
@@ -45,7 +47,7 @@ struct lb_memory *write_tables(struct mem_range *mem, unsigned long *processor_m
        low_table_end = 16;
 
        post_code(0x9a);
-       check_pirq_routing_table();
+
        /* This table must be betweeen 0xf0000 & 0x100000 */
        rom_table_end = copy_pirq_routing_table(rom_table_end);
        rom_table_end = (rom_table_end + 1023) & ~1023;
@@ -57,10 +59,14 @@ struct lb_memory *write_tables(struct mem_range *mem, unsigned long *processor_m
        remove_logical_cpus(processor_map);
        low_table_end = write_smp_table(low_table_end, processor_map);
 
+       /* Write ACPI tables */
+       low_table_end = write_acpi_tables(low_table_end);
+       
        /* Don't write anything in the traditional x86 BIOS data segment */
        if (low_table_end < 0x500) {
                low_table_end = 0x500;
        }
+
        /* The linuxbios table must be in 0-4K or 960K-1M */
        write_linuxbios_table(processor_map, mem,
                              low_table_start, low_table_end,