this code is for writing the mp table, so only execute it when
authorStefan Reinauer <stepan@openbios.org>
Wed, 19 Jul 2006 16:58:43 +0000 (16:58 +0000)
committerStefan Reinauer <stepan@openbios.org>
Wed, 19 Jul 2006 16:58:43 +0000 (16:58 +0000)
we actually have one.

git-svn-id: svn://svn.coreboot.org/coreboot/trunk@2343 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1

src/arch/i386/boot/tables.c
src/arch/i386/include/arch/smp/mpspec.h

index 8abac2b748e9357f59816c9ece429e8f8f8b7f23..e43d49d124942ab58c3e6c3073d5cf73628b2707 100644 (file)
@@ -69,6 +69,7 @@ struct lb_memory *write_tables(void)
        /* The smp table must be in 0-1K, 639K-640K, or 960K-1M */
        new_low_table_end = write_smp_table(low_table_end);
 
+#if HAVE_MP_TABLE==1
         /* Don't write anything in the traditional x86 BIOS data segment,
          * for example the linux kernel smp need to use 0x467 to pass reset vector
          */
@@ -93,6 +94,7 @@ struct lb_memory *write_tables(void)
                         low_table_end = 0x500 + mptable_size;
                 }
         }
+#endif 
 
        /* Don't write anything in the traditional x86 BIOS data segment */
        if (low_table_end < 0x500) {
index 32ed2d752acb4735c650a57337da080b646e067b..600a584514525ce319ae60c5950d0148bf18b36f 100644 (file)
@@ -264,6 +264,8 @@ void smp_write_compatibility_address_space(struct mp_config_table *mc,
        unsigned int range_list);
 unsigned char smp_compute_checksum(void *v, int len);
 void *smp_write_floating_table(unsigned long addr);
+void *smp_write_floating_table_physaddr(unsigned long addr, 
+               unsigned long mpf_physptr);
 unsigned long write_smp_table(unsigned long addr);
 
 #else /* HAVE_MP_TABLE */