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.


Reply via email to