PERFORCE change 41290 for review

Peter Wemm peter at FreeBSD.org
Mon Nov 3 16:45:23 PST 2003


http://perforce.freebsd.org/chv.cgi?CH=41290

Change 41290 by peter at peter_daintree on 2003/11/03 16:45:10

	integrate -I smp_hammer @41229 (jhb's sync prior to commits)

Affected files ...

.. //depot/projects/hammer/sys/amd64/acpica/madt.c#10 integrate
.. //depot/projects/hammer/sys/amd64/amd64/io_apic.c#11 integrate
.. //depot/projects/hammer/sys/amd64/amd64/local_apic.c#14 integrate
.. //depot/projects/hammer/sys/amd64/amd64/mptable.c#6 integrate
.. //depot/projects/hammer/sys/amd64/amd64/mptable_pci.c#2 integrate
.. //depot/projects/hammer/sys/amd64/isa/atpic.c#10 integrate
.. //depot/projects/hammer/sys/jhb_notes#8 integrate

Differences ...

==== //depot/projects/hammer/sys/amd64/acpica/madt.c#10 (text+ko) ====

@@ -10,6 +10,9 @@
  * 2. Redistributions in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in the
  *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the author nor the names of any co-contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
  *
  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@@ -22,10 +25,11 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- *
- * $FreeBSD$
  */
 
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/bus.h>
@@ -643,7 +647,7 @@
 				break;
 			}
 		}
-		if (pc->pc_acpi_id == -1)
+		if (j == NLAPICS + 1)
 			panic("Unable to find ACPI ID for CPU %d", i);
 	}
 }

==== //depot/projects/hammer/sys/amd64/amd64/io_apic.c#11 (text+ko) ====

@@ -25,10 +25,11 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- *
- * $FreeBSD$
  */
 
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
 #include "opt_isa.h"
 #include "opt_no_mixed_mode.h"
 

==== //depot/projects/hammer/sys/amd64/amd64/local_apic.c#14 (text+ko) ====

@@ -10,6 +10,9 @@
  *    notice, this list of conditions and the following disclaimer.
  * 2. The name of the developer may NOT be used to endorse or promote products
  *    derived from this software without specific prior written permission.
+ * 3. Neither the name of the author nor the names of any co-contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
  *
  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@@ -22,14 +25,15 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- *
- * $FreeBSD: src/sys/i386/i386/mpapic.c,v 1.60 2002/09/21 19:03:42 markm Exp $
  */
 
 /*
  * Local APIC support on Pentium and later processors.
  */
 
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/bus.h>

==== //depot/projects/hammer/sys/amd64/amd64/mptable.c#6 (text+ko) ====

@@ -22,10 +22,11 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- *
- * $FreeBSD: src/sys/i386/i386/mp_machdep.c,v 1.208 2003/05/15 05:12:24 alc Exp $
  */
 
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/bus.h>

==== //depot/projects/hammer/sys/amd64/amd64/mptable_pci.c#2 (text+ko) ====

@@ -25,8 +25,6 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- *
- * $FreeBSD$
  */
 
 /*

==== //depot/projects/hammer/sys/amd64/isa/atpic.c#10 (text+ko) ====

@@ -25,14 +25,15 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- *
- * $FreeBSD$
  */
 
 /*
  * PIC driver for the 8259A Master and Slave PICs in PC/AT machines.
  */
 
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
 #include "opt_auto_eoi.h"
 #include "opt_isa.h"
 
@@ -45,9 +46,10 @@
 #include <sys/mutex.h>
 
 #include <machine/cpufunc.h>
+#include <machine/frame.h>
 #include <machine/intr_machdep.h>
-#include <machine/frame.h>
 #include <machine/md_var.h>
+#include <machine/resource.h>
 #include <machine/segments.h>
 
 #include <amd64/isa/isa.h>
@@ -303,6 +305,70 @@
 
 #ifdef DEV_ISA
 /*
+ * Bus attachment for the ISA PIC.
+ */
+static struct isa_pnp_id atpic_ids[] = {
+	{ 0x0000d041 /* PNP0000 */, "AT interrupt controller" },
+	{ 0 }
+};
+
+static int
+atpic_probe(device_t dev)
+{
+	int result;
+	
+	result = ISA_PNP_PROBE(device_get_parent(dev), dev, atpic_ids);
+	if (result <= 0)
+		device_quiet(dev);
+	return (result);
+}
+
+/*
+ * We might be granted IRQ 2, as this is typically consumed by chaining
+ * between the two PIC components.  If we're using the APIC, however,
+ * this may not be the case, and as such we should free the resource.
+ * (XXX untested)
+ *
+ * The generic ISA attachment code will handle allocating any other resources
+ * that we don't explicitly claim here.
+ */
+static int
+atpic_attach(device_t dev)
+{
+	struct resource *res;
+	int rid;
+
+	/* Try to allocate our IRQ and then free it. */
+	rid = 0;
+	res = bus_alloc_resource(dev, SYS_RES_IRQ, &rid, 0, ~0, 1, 0);
+	if (res != NULL)
+		bus_release_resource(dev, SYS_RES_IRQ, rid, res);
+	return (0);
+}
+
+static device_method_t atpic_methods[] = {
+	/* Device interface */
+	DEVMETHOD(device_probe,		atpic_probe),
+	DEVMETHOD(device_attach,	atpic_attach),
+	DEVMETHOD(device_detach,	bus_generic_detach),
+	DEVMETHOD(device_shutdown,	bus_generic_shutdown),
+	DEVMETHOD(device_suspend,	bus_generic_suspend),
+	DEVMETHOD(device_resume,	bus_generic_resume),
+	{ 0, 0 }
+};
+
+static driver_t atpic_driver = {
+	"atpic",
+	atpic_methods,
+	1,		/* no softc */
+};
+
+static devclass_t atpic_devclass;
+
+DRIVER_MODULE(atpic, isa, atpic_driver, atpic_devclass, 0, 0);
+DRIVER_MODULE(atpic, acpi, atpic_driver, atpic_devclass, 0, 0);
+
+/*
  * Return a bitmap of the current interrupt requests.  This is 8259-specific
  * and is only suitable for use at probe time.
  */
@@ -316,5 +382,4 @@
 	irr2 = inb(IO_ICU2);
 	return ((irr2 << 8) | irr1);
 }
-#endif
-
+#endif /* DEV_ISA */

==== //depot/projects/hammer/sys/jhb_notes#8 (text+ko) ====

@@ -9,6 +9,7 @@
 - isa/intr_machdep.h -> include/intr_machdep.h (sort of)
 
 New files:
+- acpica/madt.c
 - i386/local_apic.c
 - i386/io_apic.c
 - i386/mptable.c  (from mp_machdep.c)
@@ -28,6 +29,15 @@
 - isa/ithread.c
 - isa/vector.s
 
+Repocopies needed:
+- include/apic.h -> include/apicreg.h
+- isa/apic_vector.s -> i386/apic_vector.s
+- isa/icu_vector.s -> isa/atpic_vector.s
+- isa/intr_machdep.c -> isa/atpic.c (nothing will be kept)
+- isa/intr_machdep.c -> isa/nmi.c
+- i386/mp_machdep.c -> include/mptable.h
+- i386/mp_machdep.c -> i386/mptable.c
+
 Todo:
 - DDB
   + Add APIC ID to show pcpu


More information about the p4-projects mailing list