* [Qemu-devel] ppc64 target broken
@ 2009-11-10 18:04 Alexander Graf
2009-11-10 21:00 ` [Qemu-devel] " Blue Swirl
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Alexander Graf @ 2009-11-10 18:04 UTC (permalink / raw)
To: qemu-devel; +Cc: Blue Swirl
Hi list,
For quite some time the PPC64 target (-M mac99 -cpu 970fx) is broken
in early init code:
<6>OF: ** translation for device /pci@f2000000/pci@d/mac-io@10/
interrupt-controller@40000 **
<6>OF: bus is default (na=1, ns=1) on /pci@f2000000/pci@d/mac-io@10
<4>OF: translating address: 00040000
<6>OF: parent bus is pci (na=3, ns=2) on /pci@f2000000/pci@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 /pci@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 /pci@5800/mac-io@f/interrupt-
controller@40000 **
<6>OF: bus is default (na=1, ns=1) on /pci@5800/mac-io@f
<4>OF: translating address: 00040000
<6>OF: parent bus is pci (na=3, ns=2) on /pci@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 pci@f2000000 device though:
http://imagebin.org/71215
So I'm really puzzled on this. When removing the "ranges" property of
the pci@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?
Thanks!
Alex
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Qemu-devel] Re: ppc64 target broken
2009-11-10 18:04 [Qemu-devel] ppc64 target broken Alexander Graf
@ 2009-11-10 21:00 ` Blue Swirl
2009-11-11 13:17 ` [Qemu-devel] " Laurent Vivier
2009-11-14 20:51 ` [Qemu-devel] " Blue Swirl
2 siblings, 0 replies; 5+ messages in thread
From: Blue Swirl @ 2009-11-10 21:00 UTC (permalink / raw)
To: Alexander Graf; +Cc: qemu-devel
On Tue, Nov 10, 2009 at 8:04 PM, Alexander Graf <agraf@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
> /pci@f2000000/pci@d/mac-io@10/interrupt-controller@40000 **
> <6>OF: bus is default (na=1, ns=1) on /pci@f2000000/pci@d/mac-io@10
> <4>OF: translating address: 00040000
> <6>OF: parent bus is pci (na=3, ns=2) on /pci@f2000000/pci@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 /pci@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
> /pci@5800/mac-io@f/interrupt-controller@40000 **
> <6>OF: bus is default (na=1, ns=1) on /pci@5800/mac-io@f
> <4>OF: translating address: 00040000
> <6>OF: parent bus is pci (na=3, ns=2) on /pci@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 pci@f2000000 device though:
>
> http://imagebin.org/71215
>
>
> So I'm really puzzled on this. When removing the "ranges" property of the
> pci@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?
Maybe macio device (106b:0022, not converted to qdev yet) is broken,
the mapped address is different.
Host bridge is somehow now 106b:001f vs. 106b:0020 in the old one and
VGA has a BAR6, but those could be OK. I kept the OpenBIOS version
fixed so only QEMU changes.
QEMU 0.10.0 monitor - type 'help' for more information
(qemu) info pci
Bus 0, device 11, function 0:
Host bridge: PCI device 106b:0020
Bus 0, device 12, function 0:
VGA controller: PCI device 1234:1111
BAR0: 32 bit memory at 0x80000000 [0x807fffff].
Bus 0, device 13, function 0:
Ethernet controller: PCI device 10ec:8029
IRQ 9.
BAR0: I/O at 0x0400 [0x04ff].
Bus 0, device 14, function 0:
IDE controller: PCI device 1095:0646
IRQ 10.
BAR0: I/O at 0x0500 [0x0507].
BAR1: I/O at 0x0580 [0x0583].
BAR2: I/O at 0x0600 [0x0607].
BAR3: I/O at 0x0680 [0x0683].
BAR4: I/O at 0x0700 [0x070f].
Bus 0, device 15, function 0:
Class ff00: PCI device 106b:0022
IRQ 11.
BAR0: 32 bit memory at 0x80800000 [0x8087ffff].
Bus 0, device 16, function 0:
USB controller: PCI device 106b:003f
IRQ 8.
BAR0: 32 bit memory at 0x80880000 [0x808800ff].
QEMU 0.11.50 monitor - type 'help' for more information
(qemu) info pci
Bus 0, device 11, function 0:
Host bridge: PCI device 106b:001f
id ""
Bus 0, device 12, function 0:
VGA controller: PCI device 1234:1111
BAR0: 32 bit prefetchable memory at 0x80000000 [0x807fffff].
BAR6: 32 bit prefetchable memory at 0xffffffffffffffff [0x0ffffffe].
id ""
Bus 0, device 13, function 0:
Host bridge: PCI device 106b:0020
id ""
Bus 0, device 14, function 0:
Ethernet controller: PCI device 10ec:8029
IRQ 10.
BAR0: I/O at 0x0400 [0x04ff].
id ""
Bus 0, device 15, function 0:
IDE controller: PCI device 1095:0646
IRQ 11.
BAR0: I/O at 0x0500 [0x0507].
BAR1: I/O at 0x0580 [0x0583].
BAR2: I/O at 0x0600 [0x0607].
BAR3: I/O at 0x0680 [0x0683].
BAR4: I/O at 0x0700 [0x070f].
id ""
Bus 0, device 16, function 0:
Class ff00: PCI device 106b:0022
IRQ 8.
BAR0: 32 bit memory at 0xa0000000 [0xa007ffff].
id ""
Bus 0, device 17, function 0:
USB controller: PCI device 106b:003f
IRQ 9.
BAR0: 32 bit memory at 0xa0080000 [0xa00800ff].
id ""
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] ppc64 target broken
2009-11-10 18:04 [Qemu-devel] ppc64 target broken Alexander Graf
2009-11-10 21:00 ` [Qemu-devel] " Blue Swirl
@ 2009-11-11 13:17 ` Laurent Vivier
2009-11-13 18:07 ` Blue Swirl
2009-11-14 20:51 ` [Qemu-devel] " Blue Swirl
2 siblings, 1 reply; 5+ messages in thread
From: Laurent Vivier @ 2009-11-11 13:17 UTC (permalink / raw)
To: Alexander Graf; +Cc: Blue Swirl, qemu-devel
qemu-system-ppc is also broken.
A bisect gives me:
c169998802505c244b8bcad562633f29de7d74a4 is first bad commit
commit c169998802505c244b8bcad562633f29de7d74a4
Author: Glauber Costa <glommer@redhat.com>
Date: Thu Nov 5 16:05:15 2009 -0200
v3: don't call reset functions on cpu initialization
There is absolutely no need to call reset functions when initializing
devices. Since we are already registering them, calling qemu_system_reset()
should suffice. Actually, it is what happens when we reboot the machine,
and using the same process instead of a special case semantics will even
allow us to find bugs easier.
Furthermore, the fact that we initialize things like the cpu quite early,
leads to the need to introduce synchronization stuff like qemu_system_cond.
This patch removes it entirely. All we need to do is call qemu_system_reset()
only when we're already sure the system is up and running
I tested it with qemu (with and without io-thread) and qemu-kvm, and it
seems to be doing okay - although qemu-kvm uses a slightly different patch.
[ v2: user mode still needs cpu_reset, so put it in ifdef. ]
[ v3: leave qemu_system_cond for now. ]
Signed-off-by: Glauber Costa <glommer@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
:040000 040000 0eb9d44c103057883acd6dcd76c306795bec4cca 8bd8c30125188ad9d346c953ccf2e56b1c289ebc M hw
:040000 040000 24f0e2cb42ae95c248fb6874797fa53fbc2b1cba 6dffa9f36e0350fd48fc5f4a5d4191c5a5cc6e26 M target-i386
:100644 100644 e57f58fea0df3ab4ade42fce4cf86d9d2a60a1e2 9031911c513eb2fc15564ec3cd37e8b274c65cc8 M vl.c
Le mardi 10 novembre 2009 à 19:04 +0100, Alexander Graf a écrit :
> Hi list,
>
> For quite some time the PPC64 target (-M mac99 -cpu 970fx) is broken
> in early init code:
>
> <6>OF: ** translation for device /pci@f2000000/pci@d/mac-io@10/
> interrupt-controller@40000 **
> <6>OF: bus is default (na=1, ns=1) on /pci@f2000000/pci@d/mac-io@10
> <4>OF: translating address: 00040000
> <6>OF: parent bus is pci (na=3, ns=2) on /pci@f2000000/pci@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 /pci@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 /pci@5800/mac-io@f/interrupt-
> controller@40000 **
> <6>OF: bus is default (na=1, ns=1) on /pci@5800/mac-io@f
> <4>OF: translating address: 00040000
> <6>OF: parent bus is pci (na=3, ns=2) on /pci@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 pci@f2000000 device though:
>
> http://imagebin.org/71215
>
>
> So I'm really puzzled on this. When removing the "ranges" property of
> the pci@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?
>
>
> Thanks!
>
> Alex
>
>
--
--------------------- laurent@vivier.eu ----------------------
"Tout ce qui est impossible reste à accomplir" Jules Verne
"Things are only impossible until they're not" Jean-Luc Picard
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] ppc64 target broken
2009-11-11 13:17 ` [Qemu-devel] " Laurent Vivier
@ 2009-11-13 18:07 ` Blue Swirl
0 siblings, 0 replies; 5+ messages in thread
From: Blue Swirl @ 2009-11-13 18:07 UTC (permalink / raw)
To: Laurent Vivier; +Cc: Alexander Graf, qemu-devel
[-- Attachment #1: Type: text/plain, Size: 421 bytes --]
On Wed, Nov 11, 2009 at 3:17 PM, Laurent Vivier <Laurent@vivier.eu> wrote:
> qemu-system-ppc is also broken.
>
> A bisect gives me:
>
> c169998802505c244b8bcad562633f29de7d74a4 is first bad commit
> commit c169998802505c244b8bcad562633f29de7d74a4
> Author: Glauber Costa <glommer@redhat.com>
> Date: Thu Nov 5 16:05:15 2009 -0200
This patch "fixes" PPC (not PPC64). How it fixes the bug, I don't know yet.
[-- Attachment #2: 0001--Fix-PPC-crash.patch --]
[-- Type: application/mbox, Size: 638 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Qemu-devel] Re: ppc64 target broken
2009-11-10 18:04 [Qemu-devel] ppc64 target broken Alexander Graf
2009-11-10 21:00 ` [Qemu-devel] " Blue Swirl
2009-11-11 13:17 ` [Qemu-devel] " Laurent Vivier
@ 2009-11-14 20:51 ` Blue Swirl
2 siblings, 0 replies; 5+ messages in thread
From: Blue Swirl @ 2009-11-14 20:51 UTC (permalink / raw)
To: Alexander Graf; +Cc: qemu-devel
On Tue, Nov 10, 2009 at 8:04 PM, Alexander Graf <agraf@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
> /pci@f2000000/pci@d/mac-io@10/interrupt-controller@40000 **
> <6>OF: bus is default (na=1, ns=1) on /pci@f2000000/pci@d/mac-io@10
> <4>OF: translating address: 00040000
> <6>OF: parent bus is pci (na=3, ns=2) on /pci@f2000000/pci@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 /pci@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
> /pci@5800/mac-io@f/interrupt-controller@40000 **
> <6>OF: bus is default (na=1, ns=1) on /pci@5800/mac-io@f
> <4>OF: translating address: 00040000
> <6>OF: parent bus is pci (na=3, ns=2) on /pci@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 pci@f2000000 device though:
>
> http://imagebin.org/71215
>
>
> So I'm really puzzled on this. When removing the "ranges" property of the
> pci@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.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2009-11-14 20:51 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-11-10 18:04 [Qemu-devel] ppc64 target broken Alexander Graf
2009-11-10 21:00 ` [Qemu-devel] " Blue Swirl
2009-11-11 13:17 ` [Qemu-devel] " Laurent Vivier
2009-11-13 18:07 ` Blue Swirl
2009-11-14 20:51 ` [Qemu-devel] " Blue Swirl
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.