Remove incorrect IOAPIC lines from some mptable.c files.
[coreboot.git] / util / mptable / mptable.c
index fea99ac87749eb61137fb15deff8d443e53b6efa..ce775dd71277540bf9f7e7a85d2178d5e45ef7b9 100644 (file)
@@ -300,33 +300,18 @@ int       noisy = 0;
 char *preamble[] = {
 "#include <console/console.h>",
 "#include <arch/smp/mpspec.h>",
+"#include <arch/ioapic.h>",
 "#include <device/pci.h>",
 "#include <string.h>",
 "#include <stdint.h>",
 "",
 "static void *smp_write_config_table(void *v)",
 "{",
-"        static const char sig[4] = \"PCMP\";",
-"        static const char oem[8] = \"LNXI    \";",
-"        static const char productid[12] = \"P4DPE       \";",
 "        struct mp_config_table *mc;",
 "",
 "        mc = (void *)(((char *)v) + SMP_FLOATING_TABLE_LEN);",
-"        memset(mc, 0, sizeof(*mc));",
 "",
-"        memcpy(mc->mpc_signature, sig, sizeof(sig));",
-"        mc->mpc_length = sizeof(*mc); /* initially just the header */",
-"        mc->mpc_spec = 0x04;",
-"        mc->mpc_checksum = 0; /* not yet computed */",
-"        memcpy(mc->mpc_oem, oem, sizeof(oem));",
-"        memcpy(mc->mpc_productid, productid, sizeof(productid));",
-"        mc->mpc_oemptr = 0;",
-"        mc->mpc_oemsize = 0;",
-"        mc->mpc_entry_count = 0; /* No entries yet... */",
-"        mc->mpc_lapic = LAPIC_ADDR;",
-"        mc->mpe_length = 0;",
-"        mc->mpe_checksum = 0;",
-"        mc->reserved = 0;",
+"        mptable_init(mc, \"TODO        \", LAPIC_ADDR);",
 "",
 "        smp_write_processors(mc);",
 "",
@@ -335,9 +320,7 @@ char *preamble[] = {
 };
 
 char *postamble[] = {
-"      /* There is no extension information... */",
-"",
-"      /* Compute the checksums */",
+"      /* Compute the checksums. */",
 "      mc->mpe_checksum = smp_compute_checksum(smp_next_mpc_entry(mc), mc->mpe_length);",
 "      mc->mpc_checksum = smp_compute_checksum(mc, mc->mpc_length);",
 "      printk(BIOS_DEBUG, \"Wrote the mp table end at: %p - %p\\n\",",
@@ -355,39 +338,8 @@ char *postamble[] = {
 };
 
 char *ioapic_code[] = {
-"      smp_write_ioapic(mc, 2, 0x20, 0xfec00000);",
-"      {",
-"              device_t dev;",
-"              struct resource *res;",
-"              dev = dev_find_slot(1, PCI_DEVFN(0x1e,0));",
-"              if (dev) {",
-"                      res = find_resource(dev, PCI_BASE_ADDRESS_0);",
-"                      if (res) {",
-"                              smp_write_ioapic(mc, 3, 0x20, res->base);",
-"                      }",
-"              }",
-"              dev = dev_find_slot(1, PCI_DEVFN(0x1c,0));",
-"              if (dev) {",
-"                      res = find_resource(dev, PCI_BASE_ADDRESS_0);",
-"                      if (res) {",
-"                              smp_write_ioapic(mc, 4, 0x20, res->base);",
-"                      }",
-"              }",
-"                dev = dev_find_slot(4, PCI_DEVFN(0x1e,0));",
-"                if (dev) {",
-"                      res = find_resource(dev, PCI_BASE_ADDRESS_0);",
-"                      if (res) {",
-"                              smp_write_ioapic(mc, 5, 0x20, res->base);",
-"                      }",
-"                }",
-"                dev = dev_find_slot(4, PCI_DEVFN(0x1c,0));",
-"                if (dev) {",
-"                      res = find_resource(dev, PCI_BASE_ADDRESS_0);",
-"                      if (res) {",
-"                              smp_write_ioapic(mc, 8, 0x20, res->base);",
-"                      }",
-"                }",
-"      }",
+"      smp_write_ioapic(mc, 2, 0x20, IO_APIC_ADDR);",
+"      /* TODO: If you have multiple IOAPICs, add them here. */",
 0
 };
 static void
@@ -1194,7 +1146,7 @@ lintEntry( void )
     printf( "\t %6d", (int)entry.dstApicID );
     printf( "\t %3d\n", (int)entry.dstApicINT );
     }
-    printf("\tsmp_write_intsrc(mc, %s, %s|%s, 0x%x, 0x%x, MP_APIC_ALL, 0x%x);\n",
+    printf("\tsmp_write_lintsrc(mc, %s, %s|%s, 0x%x, 0x%x, MP_APIC_ALL, 0x%x);\n",
           intTypes[ (int)entry.intType ],
           triggerMode[ ((int)entry.intFlags >> 2) & 0x03 ] ,
           polarityMode[ (int)entry.intFlags & 0x03 ],