Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 26 Nov 1998 13:58:41 -0600 (CST)
From:      Joe Greco <jgreco@solaria.sol.net>
To:        Tor.Egge@fast.no
Cc:        freebsd-smp@FreeBSD.ORG
Subject:   Re: Help, cannot make HP Vectra XU work
Message-ID:  <199811262000.OAA02448@aurora.sol.net>
In-Reply-To: <199811251645.RAA19467@midten.fast.no> from "Tor.Egge@fast.no" at "Nov 25, 98 05:45:08 pm"

next in thread | previous in thread | raw e-mail | index | archive | help
> > I/O Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN#
> > 		INT	 conforms    conforms	     1	   1	    255	   1
> 								    ^^^
> 
> Try this patch:
> 
> Index: sys/i386/i386/mp_machdep.c
> ===================================================================
> RCS file: /home/ncvs/src/sys/i386/i386/mp_machdep.c,v
> retrieving revision 1.83
> diff -u -r1.83 mp_machdep.c
> --- mp_machdep.c	1998/10/10 13:37:16	1.83
> +++ mp_machdep.c	1998/11/25 16:39:29
> @@ -1197,11 +1197,26 @@
>  static int
>  int_entry(int_entry_ptr entry, int intr)
>  {
> +	int apic;
> +
>  	io_apic_ints[intr].int_type = entry->int_type;
>  	io_apic_ints[intr].int_flags = entry->int_flags;
>  	io_apic_ints[intr].src_bus_id = entry->src_bus_id;
>  	io_apic_ints[intr].src_bus_irq = entry->src_bus_irq;
> -	io_apic_ints[intr].dst_apic_id = entry->dst_apic_id;
> +	if (entry->dst_apic_id == 255) {
> +		/* This signal goes to all IO APICS.  Select an IO APIC
> +		   with sufficient number of interrupt pins */
> +		for (apic = 0; apic < mp_napics; apic++)
> +			if (((io_apic_read(apic, IOAPIC_VER) & 
> +			      IOART_VER_MAXREDIR) >> MAXREDIRSHIFT) >= 
> +			    entry->dst_apic_int)
> +				break;
> +		if (apic < mp_napics)
> +			io_apic_ints[intr].dst_apic_id = IO_TO_ID(apic);
> +		else
> +			io_apic_ints[intr].dst_apic_id = entry->dst_apic_id;
> +	} else
> +		io_apic_ints[intr].dst_apic_id = entry->dst_apic_id;
>  	io_apic_ints[intr].dst_apic_int = entry->dst_apic_int;
>  
>  	return 1;

Woohoo!!  Thank you!  My gamers thank you too, even though they probably
don't know what FreeBSD is.  ;-)

Is this a patch likely to make it into FreeBSD, or should I archive this
separately for future upgrades?

Thank you very much,

... Joe

-------------------------------------------------------------------------------
Joe Greco - Systems Administrator			      jgreco@ns.sol.net
Solaria Public Access UNIX - Milwaukee, WI			   414/342-4847


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-smp" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199811262000.OAA02448>