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