* 2.2 and AMD-760MP I/O APIC
@ 2001-03-16 1:34 Johannes Erdfelt
2001-03-16 7:15 ` Gregory Maxwell
0 siblings, 1 reply; 2+ messages in thread
From: Johannes Erdfelt @ 2001-03-16 1:34 UTC (permalink / raw)
To: alan; +Cc: linux-kernel
The I/O APIC code for 2.2 contains a little trick which sets the destination
to 0 to disable an I/O APIC entry. This apparently trips up the I/O APIC
on AMD-760MP systems causing a lockup during boot.
This patch removes that trick in favor of doing what 2.4 does, masking out
the entries.
This patch is relative to 2.2.18, but should apply cleanly to 2.2.19-pre
since -pre17 doesn't touch this code at all.
JE
--- linux-2.2.18.orig/arch/i386/kernel/io_apic.c Mon Sep 4 13:39:16 2000
+++ linux-2.2.18/arch/i386/kernel/io_apic.c Thu Mar 15 17:23:46 2001
@@ -200,8 +200,6 @@
* We disable IO-APIC IRQs by setting their 'destination CPU mask' to
* zero. Trick by Ramesh Nalluri.
*/
-DO_ACTION( disable, 1, &= 0x00ffffff, io_apic_sync(entry->apic))/* destination = 0x00 */
-DO_ACTION( enable, 1, |= 0xff000000, ) /* destination = 0xff */
DO_ACTION( mask, 0, |= 0x00010000, io_apic_sync(entry->apic))/* mask = 1 */
DO_ACTION( unmask, 0, &= 0xfffeffff, ) /* mask = 0 */
@@ -612,7 +610,7 @@
entry.delivery_mode = dest_LowestPrio;
entry.dest_mode = 1; /* logical delivery */
entry.mask = 0; /* enable IRQ */
- entry.dest.logical.logical_dest = 0; /* but no route */
+ entry.dest.logical.logical_dest = 0xff; /* but no route */
idx = find_irq_entry(apic,pin,mp_INT);
if (idx == -1) {
@@ -1017,13 +1015,10 @@
static void enable_edge_ioapic_irq(unsigned int irq)
{
self_IPI(irq);
- enable_IO_APIC_irq(irq);
+ unmask_IO_APIC_irq(irq);
}
-static void disable_edge_ioapic_irq(unsigned int irq)
-{
- disable_IO_APIC_irq(irq);
-}
+static void disable_edge_ioapic_irq(unsigned int irq) { /* nothing */ }
/*
* Starting up a edge-triggered IO-APIC interrupt is
@@ -1239,7 +1234,7 @@
pin1 = find_timer_pin(mp_INT);
pin2 = find_timer_pin(mp_ExtINT);
- enable_IO_APIC_irq(0);
+ unmask_IO_APIC_irq(0);
if (!timer_irq_works()) {
if (pin1 != -1)
^ permalink raw reply [flat|nested] 2+ messages in thread* Re: 2.2 and AMD-760MP I/O APIC
2001-03-16 1:34 2.2 and AMD-760MP I/O APIC Johannes Erdfelt
@ 2001-03-16 7:15 ` Gregory Maxwell
0 siblings, 0 replies; 2+ messages in thread
From: Gregory Maxwell @ 2001-03-16 7:15 UTC (permalink / raw)
To: Johannes Erdfelt; +Cc: alan, linux-kernel
On Thu, Mar 15, 2001 at 05:34:18PM -0800, Johannes Erdfelt wrote:
> The I/O APIC code for 2.2 contains a little trick which sets the destination
> to 0 to disable an I/O APIC entry. This apparently trips up the I/O APIC
> on AMD-760MP systems causing a lockup during boot.
[snip]
I'd love you test your patch! What does it take to become equipt with such a
motherboard? <snicker>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2001-03-16 7:16 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-03-16 1:34 2.2 and AMD-760MP I/O APIC Johannes Erdfelt
2001-03-16 7:15 ` Gregory Maxwell
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox