PCI device locking and synchronization
[akaros.git] / kern / arch / x86 / mpacpi.c
index 7c72840..8548a4b 100644 (file)
@@ -1,4 +1,10 @@
-#define DEBUG
+/* This file is part of the UCB release of Plan 9. It is subject to the license
+ * terms in the LICENSE file found in the top-level directory of this
+ * distribution and at http://akaros.cs.berkeley.edu/files/Plan9License. No
+ * part of the UCB release of Plan 9, including this file, may be copied,
+ * modified, propagated, or distributed except according to the terms contained
+ * in the LICENSE file. */
+
 #include <vfs.h>
 #include <kfs.h>
 #include <slab.h>
@@ -25,7 +31,14 @@ int mpacpi(int ncleft)
        struct apic *apic;
        struct Apicst *st;
 
-       printk("mpacpi ncleft %d\n", ncleft);
+       /* If we don't have an mpisabusno yet, it's because the MP tables failed to
+        * parse.  So we'll just take the last one available.  I think we're
+        * supposed to parse the ACPI shit with the AML to figure out the buses and
+        * find a clear one, but fuck that.  Note this busno is just for our own
+        * RDT/Rbus bookkeeping. */
+       if (mpisabusno == -1)
+               mpisabusno = Nbus - 1;
+
        if (apics == NULL)
                return ncleft;
 
@@ -47,8 +60,6 @@ int mpacpi(int ncleft)
                                        already = "(mp)";
                                } else if (ncleft != 0) {
                                        ncleft--;
-                                       printk("apicinit(%d, %p, %d);\n", st->lapic.id,
-                                                  apics->lapicpa, bp);
                                        apicinit(st->lapic.id, apics->lapicpa, bp);
                                } else
                                        already = "(off)";
@@ -66,8 +77,6 @@ int mpacpi(int ncleft)
                                        already = "(mp)";
                                        goto pr1;
                                }
-                               printk("ioapicinit(%d, %p, %p);\n", st->lapic.id,
-                                          apics->lapicpa, st->ioapic.addr);
                                ioapicinit(st->ioapic.id, st->ioapic.ibase, st->ioapic.addr);
 pr1:
                                printd("ioapic %d ", st->ioapic.id);