PERFORCE change 81419 for review

Peter Wemm peter at FreeBSD.org
Wed Aug 3 22:29:28 GMT 2005


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

Change 81419 by peter at peter_overcee on 2005/08/03 22:29:12

	Integ -b i386_hammer (extint stuff)

Affected files ...

.. //depot/projects/hammer/sys/amd64/amd64/db_trace.c#30 integrate
.. //depot/projects/hammer/sys/amd64/amd64/io_apic.c#40 integrate

Differences ...

==== //depot/projects/hammer/sys/amd64/amd64/db_trace.c#30 (text+ko) ====


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

@@ -40,6 +40,7 @@
 #include <sys/malloc.h>
 #include <sys/lock.h>
 #include <sys/mutex.h>
+#include <sys/sysctl.h>
 
 #include <vm/vm.h>
 #include <vm/pmap.h>
@@ -130,6 +131,12 @@
 static int bsp_id, current_cluster, logical_clusters, next_ioapic_base;
 static u_int next_id, program_logical_dest;
 
+SYSCTL_NODE(_hw, OID_AUTO, apic, CTLFLAG_RD, 0, "APIC options");
+static int enable_extint;
+SYSCTL_INT(_hw_apic, OID_AUTO, enable_extint, CTLFLAG_RDTUN, &enable_extint, 0,
+    "Enable the ExtINT pin in the first I/O APIC");
+TUNABLE_INT("hw.apic.enable_extint", &enable_extint);
+
 static __inline void
 _ioapic_eoi_source(struct intsrc *isrc)
 {
@@ -287,7 +294,7 @@
 	switch (intpin->io_vector) {
 	case VECTOR_EXTINT:
 		KASSERT(intpin->io_edgetrigger,
-		    ("EXTINT not edge triggered"));
+		    ("ExtINT not edge triggered"));
 		low |= IOART_DELEXINT;
 		break;
 	case VECTOR_NMI:
@@ -681,7 +688,10 @@
 		return (EINVAL);
 	io->io_pins[pin].io_bus = APIC_BUS_UNKNOWN;
 	io->io_pins[pin].io_vector = VECTOR_EXTINT;
-	io->io_pins[pin].io_masked = 1;
+	if (enable_extint)
+		io->io_pins[pin].io_masked = 0;
+	else
+		io->io_pins[pin].io_masked = 1;
 	io->io_pins[pin].io_edgetrigger = 1;
 	io->io_pins[pin].io_activehi = 1;
 	if (bootverbose)


More information about the p4-projects mailing list