On Tue, Nov 10, 2009 at 8:04 PM, Alexander Graf <ag...@suse.de> wrote: > Hi list, > > For quite some time the PPC64 target (-M mac99 -cpu 970fx) is broken in > early init code: > > <6>OF: ** translation for device > /p...@f2000000/p...@d/mac...@10/interrupt-control...@40000 ** > <6>OF: bus is default (na=1, ns=1) on /p...@f2000000/p...@d/mac...@10 > <4>OF: translating address: 00040000 > <6>OF: parent bus is pci (na=3, ns=2) on /p...@f2000000/p...@d > <6>OF: walking ranges... > <6>OF: default map, cp=0, s=80000, da=40000 > <4>OF: parent translation for: 82008010 00000000 c0000000 > <6>OF: with offset: 40000 > <4>OF: one level translation: 82008010 00000000 c0040000 > <6>OF: parent bus is pci (na=3, ns=2) on /p...@f2000000 > <6>OF: no ranges, 1:1 translation > <4>OF: parent translation for: 00000000 00000000 00000000 > <6>OF: with offset: c0040000 > <4>OF: one level translation: 00000000 00000000 c0040000 > <6>OF: parent bus is default (na=1, ns=1) on / > <6>OF: walking ranges... > <6>OF: not found ! > <0>------------[ cut here ]------------ > <2>kernel BUG at arch/powerpc/platforms/powermac/pic.c:530! > <4>Oops: Exception in kernel mode, sig: 5 [#1] > <4>SMP NR_CPUS=1024 NUMA PowerMac > <4>Modules linked in: > <4>Supported: Yes > <4>NIP: c0000000007449a8 LR: c0000000007449a0 CTR: 0000000000000000 > <4>REGS: c0000000009a3b40 TRAP: 0700 Not tainted (2.6.27.7-kvm) > <4>MSR: 8000000000021032 <ME,IR,DR> CR: 22000088 XER: 20000000 > <4>TASK = c0000000008e83c0[0] 'swapper' THREAD: c0000000009a0000 CPU: 0 > <6>GPR00: c0000000007449a0 c0000000009a3dc0 c0000000009952c0 > 0000000000000001 > <6>GPR04: c00000000092fd20 ffffffffffffffff 0000000000000010 > d000080080107230 > <6>GPR08: c0000000008c4488 c00000000fffc400 0000000000000000 > 0000000000000f72 > <6>GPR12: 0000000022000082 c000000000a62c80 c000000000773638 > c00000000068b9b0 > <6>GPR16: 0000000001773570 0000000000000000 c000000000773570 > 000000000f7fff20 > <6>GPR20: c000000000773588 c00000000068d02a c0000000007787d4 > 000000000f7fff20 > <6>GPR24: 0000000005483224 00000000000000bb c000000000ae77a8 > c000000000694bef > <6>GPR28: c00000000fffebd0 0000000000000000 c000000000914868 > 0000000000000000 > <4>NIP [c0000000007449a8] .pmac_pic_init+0xec/0x1a8 > <4>LR [c0000000007449a0] .pmac_pic_init+0xe4/0x1a8 > <4>Call Trace: > <4>[c0000000009a3dc0] [c0000000007449a0] .pmac_pic_init+0xe4/0x1a8 > (unreliable) > <4>[c0000000009a3e60] [c00000000073503c] .init_IRQ+0x3c/0x54 > <4>[c0000000009a3ee0] [c000000000730a00] .start_kernel+0x254/0x554 > <4>[c0000000009a3f90] [c000000000008568] .start_here_common+0x3c/0x54 > > > > > So the problem seems to be the "ranges" property or the address of the MPIC > device. I'm not sure. One previously working revision > (9d479c119b42b8a548f8d79a8e5a1c1ce2932d91) gives the following guest trace: > > <6>OF: ** translation for device > /p...@5800/mac...@f/interrupt-control...@40000 ** > <6>OF: bus is default (na=1, ns=1) on /p...@5800/mac...@f > <4>OF: translating address: 00040000 > <6>OF: parent bus is pci (na=3, ns=2) on /p...@5800 > <6>OF: walking ranges... > <6>OF: default map, cp=0, s=80000, da=40000 > <4>OF: parent translation for: 82007810 00000000 80880000 > <6>OF: with offset: 40000 > <4>OF: one level translation: 82007810 00000000 808c0000 > <6>OF: parent bus is default (na=1, ns=1) on / > <6>OF: no ranges, 1:1 translation > <4>OF: parent translation for: 00000000 > <6>OF: with offset: 808c0000 > <4>OF: one level translation: 808c0000 > <6>OF: reached root node > > As you can see there is only one pci host device. > I don't see how the old offset would have matched the new "ranges" > parameters of the p...@f2000000 device though: > > http://imagebin.org/71215 > > > So I'm really puzzled on this. When removing the "ranges" property of the > p...@f20000000 (so we're on 1:1 translation) Linux breaks in the PCI > detection code. > > The first commit where the mac99 worked with again at all is blue swirl's > qdev conversion, so maybe he's got an idea?
FYI: 9391e4b8828a6ebcde843a2012f0fae4b601b302 was the last working commit.