mc = (void *)(((char *)v) + SMP_FLOATING_TABLE_LEN);
- mptable_init(mc, "MAHOGANY ", LAPIC_ADDR);
+ mptable_init(mc, LAPIC_ADDR);
smp_write_processors(mc);
#define PCI_INT(bus, dev, fn, pin)
#endif
+ /* changes added to match acpi tables */
+ PCI_INT(0x0, 0x02, 0x0, 0x12);
+ PCI_INT(0x0, 0x03, 0x0, 0x13);
+ PCI_INT(0x0, 0x04, 0x0, 0x10);
+ PCI_INT(0x0, 0x09, 0x0, 0x11);
+ PCI_INT(0x0, 0x0A, 0x0, 0x12);
+ PCI_INT(0x0, 0x12, 0x2, 0x12);
+ PCI_INT(0x0, 0x12, 0x3, 0x13);
+ PCI_INT(0x0, 0x13, 0x2, 0x10);
+ PCI_INT(0x0, 0x13, 0x2, 0x11);
+ PCI_INT(0x0, 0x14, 0x1, 0x11);
+ PCI_INT(0x0, 0x14, 0x3, 0x13);
+ PCI_INT(0x1, 0x05, 0x2, 0x10);
+ PCI_INT(0x1, 0x05, 0x3, 0x11);
+ PCI_INT(0x2, 0x00, 0x0, 0x12);
+ PCI_INT(0x2, 0x00, 0x1, 0x13);
+ PCI_INT(0x2, 0x00, 0x2, 0x10);
+ PCI_INT(0x2, 0x00, 0x3, 0x11);
+
+ /* RS780 PCI to PCI bridge (PCIE port 4) */
+ PCI_INT(0x0, 0x09, 0x0, 0x11);
+
/* usb */
- PCI_INT(0x0, 0x12, 0x0, 0x10); /* USB */
+ PCI_INT(0x0, 0x12, 0x0, 0x10); /* USB */
PCI_INT(0x0, 0x12, 0x1, 0x11);
PCI_INT(0x0, 0x13, 0x0, 0x12);
PCI_INT(0x0, 0x13, 0x1, 0x13);
PCI_INT(0x0, 0x11, 0x0, 0x16);
/* HD Audio: b0:d20:f1:reg63 should be 0. */
- /* PCI_INT(0x0, 0x14, 0x2, 0x12); */
+ PCI_INT(0x0, 0x14, 0x2, 0x12);
/* on board NIC & Slot PCIE. */
/* PCI_INT(bus_rs780[0x1], 0x5, 0x0, 0x12); */
-/* PCI_INT(bus_rs780[0x1], 0x5, 0x1, 0x13); */
- PCI_INT(bus_rs780[0x2], 0x0, 0x0, 0x12); /* Dev 2, external GFX */
+ /* PCI_INT(bus_rs780[0x1], 0x5, 0x1, 0x13); */
+ PCI_INT(0x1, 0x5, 0x0, 0x12); /* VGA */
+ PCI_INT(0x1, 0x5, 0x1, 0x13); /* Audio */
+ /* PCI_INT(bus_rs780[0x2], 0x0, 0x0, 0x12); *//* Dev 2, external GFX */
/* PCI_INT(bus_rs780[0x3], 0x0, 0x0, 0x13); */
- PCI_INT(bus_rs780[0x4], 0x0, 0x0, 0x10);
+ /* PCI_INT(bus_rs780[0x4], 0x0, 0x0, 0x10); */
/* configuration B doesnt need dev 5,6,7 */
/*
* PCI_INT(bus_rs780[0x5], 0x0, 0x0, 0x11);
* PCI_INT(bus_rs780[0x6], 0x0, 0x0, 0x12);
* PCI_INT(bus_rs780[0x7], 0x0, 0x0, 0x13);
*/
- PCI_INT(bus_rs780[0x9], 0x0, 0x0, 0x11);
- PCI_INT(bus_rs780[0xA], 0x0, 0x0, 0x12); /* NIC */
+ /* PCI_INT(bus_rs780[0x9], 0x0, 0x0, 0x11); */
+ PCI_INT(0x3, 0x0, 0x0, 0x11); /* NIC */
+ /* PCI_INT(bus_rs780[0xA], 0x0, 0x0, 0x12); NIC */
/* PCI slots */
/* PCI_SLOT 0. */
/* There is no extension information... */
/* 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",
- mc, smp_next_mpe_entry(mc));
- return smp_next_mpe_entry(mc);
+ return mptable_finalize(mc);
}
unsigned long write_smp_table(unsigned long addr)
{
void *v;
- v = smp_write_floating_table(addr);
+ v = smp_write_floating_table(addr, 0);
return (unsigned long)smp_write_config_table(v);
}