PERFORCE change 81419 for review

John Baldwin jhb at FreeBSD.org
Thu Aug 4 13:45:05 GMT 2005


On Wednesday 03 August 2005 06:29 pm, Peter Wemm wrote:
> 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)

Actually, I'm not sure that amd64 should have this as it's only a workaround 
for some old p3-based hardware, though it probably doesn't hurt to have it I 
guess.

> 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)

-- 
John Baldwin <jhb at FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve"  =  http://www.FreeBSD.org


More information about the p4-projects mailing list