Messages in this thread Patch in this message | | | Date | Sat, 2 May 1998 18:00:08 +0200 (CEST) | From | MOLNAR Ingo <> | Subject | Re: floppy in 2.1.99 |
| |
On Sat, 2 May 1998, Charles Shannon Hendrix wrote:
> My system dies booting 2.1.99 right after the floppy init message. > I thought that was fixed in 2.1.99?
your system has one known MP-BIOS bug, the BIOS creates such IRQ MP-table entries on your board:
I/O Ints: Type Polarity Trigger Bus ID IRQ INT active-hi level 1 6
such 'active-hi+level' IRQs are illegal, the only allowed combinations are these:
INT active-hi edge 1 1 [ISA IRQ] INT active-lo level 0 7:D [PCI IRQ]
io-apic-patch-2.1.97-A (attached) works this around (without affecting working boards), but it's not included in 2.1.99 yet. Yes it generates some nasty flood of bootup messages, but the problem is nasty too ...
[i think this is the only known outstanding problem with your system, can you confirm that this fixes the floppy hang?]
-- mingo
--- linux/arch/i386/kernel/io_apic.c.orig Sat Apr 25 04:30:53 1998 +++ linux/arch/i386/kernel/io_apic.c Sat Apr 25 04:46:18 1998 @@ -361,6 +361,21 @@ } } + /* + * There are broken mptables which register ISA+high-active+level IRQs, + * these are illegal and are converted here to ISA+high-active+edge + * IRQ sources. Careful, ISA+low-active+level is another broken entry + * type, it represents PCI IRQs 'embedded into an ISA bus', they have + * to be accepted. Yes, ugh. + */ + if ( (mp_bus_id_to_type[bus] == MP_BUS_ISA) && + (entry.polarity == 0) /* active-high */ && + (entry.trigger == 1) /* level */ ) + { + printk("broken BIOS, changing pin %d to edge\n", i); + entry.trigger = 0; + } + io_apic_write(0x10+2*i, *(((int *)&entry)+0)); io_apic_write(0x11+2*i, *(((int *)&entry)+1)); }
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu
| |