Re: 5.1 panics on a Challenge S
George Harvey <[email protected]> Tue, 15 Feb 2011 21:47:45 +0000
| Newsgroups | gmane.os.netbsd.ports.sgimips |
|---|---|
| Message-ID | <[email protected]> |
On Tue, 15 Feb 2011 10:49:14 -0500 Michael <[email protected]> wrote: > that should come from hpc3_devices[].hd_irq, I don't really see how > that could end up being bogus unless something else stomps all over > hpc3_devices or something buggered up the hpc_attach_args panel gets > ( looking at -current but the relevant bits are identical ) > The panel driver doesn't do much in terms of attach logic, it relies > on hpc.c doing The Right Thing(tm). I added a printf into the for loop in hpc_attach that iterates through the hpc3_devices table: printf("hpc_attach: %s: irq=%d\n", ha.ha_name, ha.ha_irq); The results suggest that it may be tripping over the non-existant haltwo device, the debug output seems to be in the wrong order after that. Here's what it looks like on my Indy: hpc_attach: wdsc: irq=1 wdsc0 at hpc0 offset 0x44000int_intr_establish: level=1 : WD33C93B (20.0 MHz clock, BURST DMA, SCSI ID 0) wdsc0: microcode revision 0x0d, Fast SCSI scsibus0 at wdsc0: 8 targets, 8 luns per target hpc_attach: dsclock: irq=-1 dsclock0 at hpc0 offset 0x60000 hpc_attach: haltwo: irq=12 haltwo0 at hpc0 offset 0x58000int_intr_establish: level=12 : HAL2 revision 4.1.0 audio0 at haltwo0: half duplex, playback, capture hpc_attach: pi1ppc: irq=-1 pi1ppc0 at hpc0 offset 0x59800 pi1ppc0: capabilities=8<PS2> ppbus0 at pi1ppc0 ppbus0: No IEEE1284 device found. lpt0 at ppbus0: port mode = 1<COMPATIBLE> hpc_attach: panel: irq=9 panel0 at hpc0 offset 0x59850 int_intr_establish: level=9 And here's is what it looks like on my Challenge S: hpc_attach: wdsc: irq=1 wdsc0 at hpc0 offset 0x44000int_intr_establish: level=1 : WD33C93B (20.0 MHz clock, BURST DMA, SCSI ID 0) wdsc0: microcode revision 0x0d, Fast SCSI scsibus0 at wdsc0: 8 targets, 8 luns per target hpc_attach: dsclock: irq=-1 dsclock0 at hpc0 offset 0x60000 hpc_attach: haltwo: irq=12 /* haltwo doesn't exist */ pi1ppc0 at hpc0 offset 0x58000 pi1ppc0: capabilities=8<PS2> ppbus0 at pi1ppc0 ppbus0: No IEEE1284 device found. hpc_attach: pi1ppc: irq=-1 /* message out-of-order */ panel0 at hpc0 offset 0x59800 int_intr_establish: level=-1 panic: invalid interrupt level The panel code seems to be getting a -1 irq level from the pi1ppc table entry but I can't work out how that is happening. George