Subject: apic problem with i386 cpu #2
To: None <current-users@netbsd.org>
From: john heasley <heas@shrubbery.net>
List: current-users
Date: 12/04/2003 12:11:58
I'm trying to move my MP (Tyan Athlon) from 1.6L to current.  With options
MPACPI and _SCANPCI, it is panics when trying to attach the second cpu.

cpu0: idle pcb at 0xe4abc000, idle sp at 0xe4abff98
cpu1 at mainbus0: apid 0 (application processor)
cpu1: starting
cpu1: AMD Athlon (686-class), 1200.05 MHz, id 0x662
	...
cpu1: kstack at 0xe4ac8000 for 16384 bytes
cpu1: idle pcb at 0xe4ac8000, idle sp at 0xe4acbf98
ioapic0 at mainbus0 apid 2 (I/O APIC)
ioapic0: pa 0xfec00000, virtual wire mode, version 11, 24 pins
cpu2 at mainbus0panic: cpu2: running cpu is at apic 1 instead of at expected 0
Stopped in pid 0.1 (swapper) at netbsd:cpu_Debugger+0x4:        leave
db{1}> tra
cpu_Debugger(0,0,c26efb80,c01d898a,c02ed78a) at netbsd:cpu_Debugger+0x4
panic(c0329ca0,c26efb9c,1,0,c034308c) at netbsd:panic+0xb8
cpu_attach(c26e8f80,c26efb80,c041ce64,c01d2791,c26efb80) at netbsd:cpu_attach+0x
96
config_attach(c26e8f80,c0342db4,c041ce64,c0263d30,c26e8f80) at netbsd:config_att
ach+0x2d9

I don't know enough about how this is supposed to map the interrupts or
what the consquences of cpu2 being at apic 1 are.  If the APIC gods would
like me to try anything, it can be arranged.

Booting with a single cpu version of that kernel appears to muck-up the
interrupt routing, because the viaide on-board controller starts missing
interrupts and eventually hangs.  [ I have not collected the ACPIVERBOSE;
connected through a weasel, it is difficult to collect. ]

viaide0:0:1: lost interrupt
        type: ata tc_bcount: 512 tc_skip: 0
viaide0:0:1: lost interrupt
        type: ata tc_bcount: 512 tc_skip: 0
	...

Using MPBIOS instead of MPACPI does work, at least as well as it did under
1.6L.  dmesg here: http://www.shrubbery.net/~heas/tyan.dmesg