From: BALATON Zoltan <balaton@eik.bme.hu>
To: "Philippe Mathieu-Daudé" <philmd@linaro.org>
Cc: qemu-devel@nongnu.org, qemu-ppc@nongnu.org,
Nicholas Piggin <npiggin@gmail.com>,
Richard Henderson <richard.henderson@linaro.org>
Subject: Re: TCG change broke MorphOS boot on sam460ex
Date: Thu, 21 Mar 2024 19:41:04 +0100 (CET) [thread overview]
Message-ID: <2a286d38-1fd7-d53a-d7db-e953e6aefbf2@eik.bme.hu> (raw)
In-Reply-To: <48e5e0b8-9b0a-4c9f-9f3e-c30e2fddc502@linaro.org>
[-- Attachment #1: Type: text/plain, Size: 7251 bytes --]
On 27/2/24 17:47, BALATON Zoltan wrote:
> Hello,
>
> Commit 18a536f1f8 (accel/tcg: Always require can_do_io) broke booting
> MorphOS on sam460ex (this was before 8.2.0 and I thought I've verified
> it before that release but apparently missed it back then). It can be
> reproduced with https://www.morphos-team.net/morphos-3.18.iso and
> following command:
>
> qemu-system-ppc -M sam460ex -serial stdio -d unimp,guest_errors \
> -drive if=none,id=cd,format=raw,file=morphos-3.18.iso \
> -device ide-cd,drive=cd,bus=ide.1
Although it breaks at the TCG change it may also be related to tlbwe
changes somehow but I don't really understand it. I've tried to get some
more debug info in case somebody can tell what's happening. With
18a536f1f8^ (the commit before the one it broke at and still works) I get:
----------------
IN:
ppcemb_tlb_check: TLB 0 address 00c01000 PID 0 <=> f0000000 f0000000 0 7f
mmubooke_check_tlb: TLB entry not found
ppcemb_tlb_check: TLB 1 address 00c01000 PID 0 <=> d0000000 f0000000 0 3b
mmubooke_check_tlb: TLB entry not found
ppcemb_tlb_check: TLB 2 address 00c01000 PID 0 <=> 80000000 f0000000 0 3b
mmubooke_check_tlb: TLB entry not found
ppcemb_tlb_check: TLB 3 address 00c01000 PID 0 <=> 90000000 f0000000 0 3b
mmubooke_check_tlb: TLB entry not found
ppcemb_tlb_check: TLB 4 address 00c01000 PID 0 <=> a0000000 f0000000 0 3b
mmubooke_check_tlb: TLB entry not found
ppcemb_tlb_check: TLB 5 address 00c01000 PID 0 <=> b0000000 f0000000 0 3b
mmubooke_check_tlb: TLB entry not found
ppcemb_tlb_check: TLB 6 address 00c01000 PID 0 <=> c0000000 f0000000 0 3b
mmubooke_check_tlb: TLB entry not found
ppcemb_tlb_check: TLB 7 address 00c01000 PID 0 <=> e0000000 ff000000 0 3b
mmubooke_check_tlb: TLB entry not found
ppcemb_tlb_check: TLB 8 address 00c01000 PID 0 <=> e1000000 ff000000 0 3b
mmubooke_check_tlb: TLB entry not found
ppcemb_tlb_check: TLB 9 address 00c01000 PID 0 <=> e3000000 fffffc00 0 3b
mmubooke_check_tlb: TLB entry not found
ppcemb_tlb_check: TLB 10 address 00c01000 PID 0 <=> e3001000 fffffc00 0 3b
mmubooke_check_tlb: TLB entry not found
ppcemb_tlb_check: TLB 11 address 00c01000 PID 0 <=> e4000000 ffffc000 0 3b
mmubooke_check_tlb: TLB entry not found
ppcemb_tlb_check: TLB 12 address 00c01000 PID 0 <=> e5000000 fff00000 0 7f
mmubooke_check_tlb: TLB entry not found
ppcemb_tlb_check: TLB 13 address 00c01000 PID 0 <=> ef000000 ff000000 0 7f
mmubooke_check_tlb: TLB entry not found
ppcemb_tlb_check: TLB 14 address 00c01000 PID 0 <=> e2000000 fff00000 0 7f
mmubooke_check_tlb: TLB entry not found
ppcemb_tlb_check: TLB 15 address 00c01000 PID 0 <=> 00000000 f0000000 0 7f
mmubooke_check_tlb: good TLB!
mmubooke_get_physical_address: access granted 00c01000 => 0000000000c01000 7 0
0x00c01354: 38c00040 li r6, 0x40
0x00c01358: 38e10204 addi r7, r1, 0x204
0x00c0135c: 39010104 addi r8, r1, 0x104
0x00c01360: 39410004 addi r10, r1, 4
0x00c01364: 39200000 li r9, 0
0x00c01368: 7cc903a6 mtctr r6
0x00c0136c: 84c70004 lwzu r6, 4(r7)
0x00c01370: 7cc907a4 tlbwehi r6, r9
0x00c01374: 84c80004 lwzu r6, 4(r8)
0x00c01378: 7cc90fa4 tlbwelo r6, r9
0x00c0137c: 84ca0004 lwzu r6, 4(r10)
0x00c01380: 7cc917a4 tlbwehi r6, r9
0x00c01384: 39290001 addi r9, r9, 1
0x00c01388: 4200ffe4 bdnz 0xc0136c
helper_440_tlbwe word 0 entry 0 value 00000290
ppcemb_tlb_check: TLB 0 address 0df6bfb0 PID 0 <=> 00000000 f0000000 0 7f
mmubooke_check_tlb: good TLB!
mmubooke_get_physical_address: access granted 0df6bfb0 => 00000004fdf6bfb0 7 0
Invalid read at addr 0x4FDF6BFB0, size 4, region '(null)', reason: rejected
helper_440_tlbwe word 1 entry 0 value 00000000
ppcemb_tlb_check: TLB 0 address 0df6beb0 PID 0 <=> 00000000 f0000000 0 7f
mmubooke_check_tlb: good TLB!
mmubooke_get_physical_address: access granted 0df6beb0 => 000000000df6beb0 7 0
helper_440_tlbwe word 2 entry 0 value 0000003f
ppcemb_tlb_check: TLB 0 address 00c0136c PID 0 <=> 00000000 f0000000 0 7f
mmubooke_check_tlb: good TLB!
mmubooke_get_physical_address: access granted 00c0136c => 0000000000c0136c 7 0
----------------
and with commit 18a536f1f8 this changes to
----------------
IN:
ppcemb_tlb_check: TLB 0 address 00c01000 PID 0 <=> f0000000 f0000000 0 7f
mmubooke_check_tlb: TLB entry not found
ppcemb_tlb_check: TLB 1 address 00c01000 PID 0 <=> d0000000 f0000000 0 3b
mmubooke_check_tlb: TLB entry not found
ppcemb_tlb_check: TLB 2 address 00c01000 PID 0 <=> 80000000 f0000000 0 3b
mmubooke_check_tlb: TLB entry not found
ppcemb_tlb_check: TLB 3 address 00c01000 PID 0 <=> 90000000 f0000000 0 3b
mmubooke_check_tlb: TLB entry not found
ppcemb_tlb_check: TLB 4 address 00c01000 PID 0 <=> a0000000 f0000000 0 3b
mmubooke_check_tlb: TLB entry not found
ppcemb_tlb_check: TLB 5 address 00c01000 PID 0 <=> b0000000 f0000000 0 3b
mmubooke_check_tlb: TLB entry not found
ppcemb_tlb_check: TLB 6 address 00c01000 PID 0 <=> c0000000 f0000000 0 3b
mmubooke_check_tlb: TLB entry not found
ppcemb_tlb_check: TLB 7 address 00c01000 PID 0 <=> e0000000 ff000000 0 3b
mmubooke_check_tlb: TLB entry not found
ppcemb_tlb_check: TLB 8 address 00c01000 PID 0 <=> e1000000 ff000000 0 3b
mmubooke_check_tlb: TLB entry not found
ppcemb_tlb_check: TLB 9 address 00c01000 PID 0 <=> e3000000 fffffc00 0 3b
mmubooke_check_tlb: TLB entry not found
ppcemb_tlb_check: TLB 10 address 00c01000 PID 0 <=> e3001000 fffffc00 0 3b
mmubooke_check_tlb: TLB entry not found
ppcemb_tlb_check: TLB 11 address 00c01000 PID 0 <=> e4000000 ffffc000 0 3b
mmubooke_check_tlb: TLB entry not found
ppcemb_tlb_check: TLB 12 address 00c01000 PID 0 <=> e5000000 fff00000 0 7f
mmubooke_check_tlb: TLB entry not found
ppcemb_tlb_check: TLB 13 address 00c01000 PID 0 <=> ef000000 ff000000 0 7f
mmubooke_check_tlb: TLB entry not found
ppcemb_tlb_check: TLB 14 address 00c01000 PID 0 <=> e2000000 fff00000 0 7f
mmubooke_check_tlb: TLB entry not found
ppcemb_tlb_check: TLB 15 address 00c01000 PID 0 <=> 00000000 f0000000 0 7f
mmubooke_check_tlb: good TLB!
mmubooke_get_physical_address: access granted 00c01000 => 0000000000c01000 7 0
0x00c01354: 38c00040 li r6, 0x40
0x00c01358: 38e10204 addi r7, r1, 0x204
0x00c0135c: 39010104 addi r8, r1, 0x104
0x00c01360: 39410004 addi r10, r1, 4
0x00c01364: 39200000 li r9, 0
0x00c01368: 7cc903a6 mtctr r6
0x00c0136c: 84c70004 lwzu r6, 4(r7)
0x00c01370: 7cc907a4 tlbwehi r6, r9
0x00c01374: 84c80004 lwzu r6, 4(r8)
0x00c01378: 7cc90fa4 tlbwelo r6, r9
0x00c0137c: 84ca0004 lwzu r6, 4(r10)
0x00c01380: 7cc917a4 tlbwehi r6, r9
0x00c01384: 39290001 addi r9, r9, 1
0x00c01388: 4200ffe4 bdnz 0xc0136c
helper_440_tlbwe word 0 entry 0 value 00000290
ppcemb_tlb_check: TLB 0 address 0df6bfb0 PID 0 <=> 00000000 f0000000 0 7f
mmubooke_check_tlb: good TLB!
mmubooke_get_physical_address: access granted 0df6bfb0 => 00000004fdf6bfb0 7 0
ppcemb_tlb_check: TLB 0 address 00c01374 PID 0 <=> 00000000 f0000000 0 7f
mmubooke_check_tlb: good TLB!
mmubooke_get_physical_address: access granted 00c01374 => 00000004f0c01374 7 0
Invalid read at addr 0x4F0C01374, size 4, region '(null)', reason: rejected
invalid/unsupported opcode: 00 - 00 - 00 - 00 (00000000) 00c01374
----------------
Any idea?
Regards,
BALATON Zoltan
next prev parent reply other threads:[~2024-03-21 18:42 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-27 16:47 TCG change broke MorphOS boot on sam460ex BALATON Zoltan
2024-02-27 18:15 ` Philippe Mathieu-Daudé
2024-02-27 19:48 ` BALATON Zoltan
2024-03-21 18:41 ` BALATON Zoltan [this message]
2024-04-02 11:32 ` BALATON Zoltan
2024-04-03 5:15 ` Nicholas Piggin
2024-04-03 22:23 ` BALATON Zoltan
2024-05-27 22:23 ` BALATON Zoltan
2024-05-27 22:55 ` BALATON Zoltan
2024-05-28 3:30 ` Nicholas Piggin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2a286d38-1fd7-d53a-d7db-e953e6aefbf2@eik.bme.hu \
--to=balaton@eik.bme.hu \
--cc=npiggin@gmail.com \
--cc=philmd@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=richard.henderson@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).