atom feed3 messages in org.freebsd.freebsd-smpRe: Help, cannot make HP Vectra XU work
FromSent OnAttachments
Joe GrecoNov 24, 1998 12:31 pm 
Joe GrecoNov 25, 1998 8:03 am 
Joe GrecoNov 26, 1998 11:58 am 
Subject:Re: Help, cannot make HP Vectra XU work
From:Joe Greco (jgr@solaria.sol.net)
Date:Nov 26, 1998 11:58:20 am
List:org.freebsd.freebsd-smp

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

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